Java 安装
安装路径:
解压压缩文件到 `~/workspace/` 下
修改环境变量:
配置生效:
验证安装:
Hadoop 安装
解压压缩文件到 ~
下
修改环境变量
|
|
配置生效:
修改 Hadoop 配置
配置文件在 ~/hadoop-2.7.1/etc/hadoop/
core-site.xml
123456789101112$vim `core-site.xml`<configuration><property><name>fs.defaultFS</name><value>hdfs://h16:9000/</value></property><property><name>hadoop.tmp.dir</name><value>file:/home/hadoop/hadoop-2.7.1/tmp</value></property></configuration>slaves
1234$ vim slavesh16h17h18hdfs-site.xml
123456789101112131415161718<configuration><property><name>dfs.namenode.secondary.http-address</name><value>h16:9001</value></property><property><name>dfs.namenode.name.dir</name><value>file:/home/hadoop/hadoop-2.7.1/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/home/hadoop/hadoop-2.7.1/dfs/data</value></property><property><name>dfs.replication</name><value>2</value></property></configuration>mapred-site.xml
123456<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property></configuration>yarn-site.xml
12345678910111213141516171819202122232425262728293031<configuration><!-- Site specific YARN configuration properties --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</value></property><property><name>yarn.resourcemanager.address</name><value>h16:8032</value></property><property><name>yarn.resourcemanager.scheduler.address</name><value>h16:8030</value></property><property><name>yarn.resourcemanager.resource-tracker.address</name><value>h16:8035</value></property><property><name>yarn.resourcemanager.admin.address</name><value>h16:8033</value></property><property><name>yarn.resourcemanager.webapp.address</name><value>h16:8088</value></property></configuration>将 .bashrc 和 hadoop-2.7.1 分发到各个 slave 服务器上:
1234scp ~/.bashrc h17:/home/hadoopscp ~/.bashrc h18:/home/hadoopscp -r ~/hadoop-2.7.1 h17:/home/hadoopscp -r ~/hadoop-2.7.1 h18:/home/hadoop
提示: replication 是数据副本数量,默认为3, salve少于3台就会报错
Hadoop 启动
在 master(h16) 上启动 hadoop
格式化 namenode:
1bin/hadoop namenode -format启动 dfs:
1sbin/start-dfs.sh启动 yarn:
1sbin/start-yarn.sh验证启动情况:
在 namenode 服务器上查看12345jps # h1613971 NameNode14326 SecondaryNameNode31036 Jps14519 ResourceManager在 datanode 服务器上查看
1234jps # h1614642 NodeManager14123 DataNode31036 Jps
在 浏览器上打开 h16:8088, 可以查看 hadoop on yarn 的管理状态.
遇到问题
jps
查看进程都存在, 但是在 hadoop 管理界面看不到 datanode 节点, 但是, 在 datanode 服务器下, data 目录 current 为空, 没有 VERSION
原因: 防火墙没有关闭, 导致 datanode 启动后, 会自动关闭.
解决方法: 关闭 iptables:
1service iptables stop
datanode 不能启动, datanode 服务器 中的 data 目录下 current 不为空, 有 VERSION
原因: 在 namenode 多次运行
bin/hadoop namenode -format
, 导致namenode
的版本与datanode
的记录版本不一致. 每次 `namenode format` 时, 会重新创建namenodeId, /dfs/data 中包含上次 format 下的id, namenode format清空了namenode下的数据, 但是没有清空 datanode 下的数据,导致启动时失败
解决方法:
- 删除相关文件夹后, 重新启动, 不推荐.
- 修改每个 Slave 的 namespaceID 使其与 Master 的 namespaceID 一致, 或 Master 的 namespaceID 使其与 Slave 的 namespaceID 一致
操作集群时, 出现 WARN util.NativeCodeLoader:
|
|
原因: 将 环境变量中的
HADOOP_ROOT_LOGGER=WARN,console
, 修改为HADOOP_ROOT_LOGGER=DEBUG,console
,
重新执行 hadoop 命令, 查看 log 发现:123456789DEBUG util.NativeCodeLoader: Trying to load the custom-built native-hadoop library...DEBUG util.NativeCodeLoader: Failed to load native-hadoop with error: java.lang.UnsatisfiedLinkError: /home/hadoop/hadoop-2.7.1/lib/native/libhadoop.so.1.0.0:/lib64/libc.so.6:version `GLIBC_2.14' not found(required by /home/hadoop/hadoop-2.7.1/lib/native/libhadoop.so.1.0.0)DEBUG util.NativeCodeLoader: java.library.path=/home/hadoop//hadoop-2.7.1/lib/nativeWARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform...using builtin-java classes where applicable即 GLIBC_2.14 不存在, root 用户下 执行:
1234567891011121314151617strings /lib64/libc.so.6|grep GLIBCGLIBC_2.2.5GLIBC_2.2.6GLIBC_2.3GLIBC_2.3.2GLIBC_2.3.3GLIBC_2.3.4GLIBC_2.4GLIBC_2.5GLIBC_2.6GLIBC_2.7GLIBC_2.8GLIBC_2.9GLIBC_2.10GLIBC_2.11GLIBC_2.12GLIBC_PRIVATE解决方案: 需要重新编译安装 GLIBC_2.14, 参考 [/lib64/libc.so.6: version `GLIBC_2.14’ not found问题]
参考资料
[/lib64/libc.so.6: version `GLIBC_2.14’ not found问题] (http://my.oschina.net/zhangxu0512/blog/262275)