hadoop 3.1.1 单机集群配置/启动问题时的问题处理
Posted code never lies
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hadoop 3.1.1 单机集群配置/启动问题时的问题处理相关的知识,希望对你有一定的参考价值。
一.修改配置文件(hadoop目录/etc/hadoop/配置文件)
1.修改hadoop-env.sh,指定JAVA_HOME
修改完毕后
2.修改core-site.xml
1 <configuration>
2 <!-- 指定hadoop运行时产生的临时文件存储目录 -->
3 <property>
4 <name>hadoop.tmp.dir</name>
5 <value>/opt/module/hadoop-3.1.1/data/tmp</value>
6 </property>
7
8 <!-- 指定hfds namenode的缺省路径,可以是主机/ip :端口 -->
9 <property>
10 <name>fs.defaultFS</name>
11 <value>hdfs://hadoop002:9000</value>
12 </property>
13 </configuration>
3.修改hdfs-site.xml
1 <configuration>
2 <!-- 指定HDFS副本的数量 -->
3 <property>
4 <name>dfs.replication</name>
5 <value>1</value>
6 </property>
7 <!--配置namenode的web界面-->
8 <property>
9 <name>dfs.namenode.http-address</name>
10 <value>hadoop002:50070</value>
11 </property>
12 </configuration>
到这启动hadoop的基本配置已经完成了(配置完这些已经可以启动hadoop了),下面配置yarn相关的文件
4.修改mapred-site.xml(此配置文件中尽量不要使用中文注释,否则启动的时候会有一个java.lang.RuntimeException: com.ctc.wstx.exc.WstxIOException: Invalid UTF-8 start byte 0xb5 (at char #672, byte #20))
1 <configuration>
2 <!-- 使用yarn框架 -->
3 <property>
4 <name>mapreduce.framework.name</name>
5 <value>yarn</value>
6 </property>
7 </configuration>
5.修改yarn-site.xml(此配置文件中尽量不要使用中文注释,否则启动的时候会有一个java.lang.RuntimeException: com.ctc.wstx.exc.WstxIOException: Invalid UTF-8 start byte 0xb5 (at char #672, byte #20))
1 <configuration>
2 <!-- Site specific YARN configuration properties -->
3 <!--resourcemanager address-->
4 <property>
5 <name>yarn.resourcemanager.hostname</name>
6 <value>localhost</value>
7 </property>
8
9 <!--reduce-->
10 <property>
11 <name>yarn.nodemanager.aux-services</name>
12 <value>mapreduce_shuffle</value>
13 </property>
14 </configuration>
6.启动
6.1按照官方文档,第一步先检查ssh能否免密登录如果不能免密登录需要执行以下命令
ssh-keygen -t rsa -P \'\' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 0600 ~/.ssh/authorized_keys
如果不能免密且没有执行这三个命令,那么启动时会有Permission Dennied
如果出现ssh connect to host xxx port 22:Connection timed out,ifconfig查看自己的ip与 /etc/hosts下的映射中的ip是否一致
6.2执行hdfs namenode -format格式化namenode,第一次启动时执行即可,今后不再需要
6.3执行start-dfs.sh
6.4执行start-yarn.sh
或者直接执行stop-all.sh
6.5jps查看进程
可以在/tmp/下查看*.pid文件,其内容为上图的进程号
6.6停止的话使用对应的stop-xxx.sh(或者stop-all.sh)即可
到这hadoop已经成功启动了,官方文档:http://hadoop.apache.org/docs/r3.1.1/hadoop-project-dist/hadoop-common/SingleCluster.html
6.7无法停止hadoop
此时虽然已经可以正常启动了,但为了维护方便建议修改pid的路径 ,因为默认把pid文件存储在/tmp/下,而linux会定期清理/tmp/路径一旦pid文件被清理到,此时想执行stop-all.sh后再次jps发现hadoop依然在运行,这个时候想关闭hadoop就只能手动的kill了因此要修改pid的存储路径,打开hadoop目录/etc/hadoop/hadoop-env.sh,找到HADOOP_PID_DIR,修改路径为你自定义的路径即可接下来通过实验证明以上结论
先执行jps,证明此时hadoop并未启动,然后再启动hadoop
成功启动后查看pid文件后然后删除
执行stop-all.sh,发现hadoop依然在运行
此时重新启动hadoop,发现进程号没有改变,虽然重新生成了pid
到这说明,一旦hadoop的pid文件被删除想要停止hadoop就只能手动kill,而且如果hadoop没有停止掉,又重新启动了hadoop,此时虽然会生成新的pid,但从进程号上来看依旧是之前没有被停止掉的hadoop
6.8初始化时出现Cannot remove/create xxxx
打开你的core-site.xml,如果是在"/"下创建目录最好手动去创建 并且修改属主与组为你启动hadoop的用户
sudo mkdir -p /hadoop/tmp
sudo chown -R tele:tele /hadoop/
创建并且修改完成后重新初始化即可,如果不是在"/"直接创建文件夹,那么就可以交给hadoop自动创建属主为启动hadoop的用户的文件夹了初始化之后如果启动hadoop,发现没有datanode,在你指定的tmp路径/dfs/name目录下找到一个current/VERSION文件,记录clusterID并复制。然后dfs/data目录下找到一个current/VERSION文件,将其中clustreID的值替换成刚刚复制的clusterID的值后重新启动即可
以上是关于hadoop 3.1.1 单机集群配置/启动问题时的问题处理的主要内容,如果未能解决你的问题,请参考以下文章
Hadoop集群安装配置教程_Hadoop2.6.0_Ubuntu/CentOS
ubuntu16.04安装hadoop3.02(伪分布式)+集群
关于hadoop单机配置问题执行hadoop namenode -format并start-all.sh后用jps查看并没有启动成功