启动Hadoop集群的经验分享
记一次Hadoop集群启动事件、经验分享
1.编写配置文件
core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml
向集群中各机器分发配置文件
xsync /opt/module/hadoop-3.1.3/etc/hadoop/etc
2.群起集群
2.1配置workers
vim /opt/module/hadoop-3.1.3/etc/hadoop/workersvim /opt/module/hadoop-3.1.3/etc/hadoop/workers
2.2再次向集群分发文件
xsync /opt/module/hadoop-3.1.3/etc/hadoop/etc3.1.3/etc/hadoop/etc
2.3启动集群
若第一次启动集群,需要在集群的每一台机器上都执行初始化命令
进入/opt/module/hadoop-3.1.3目录下执行
hdfs namenode -format
启动HDFS
sbin/start-dfs.sh
配置了ResourceManager的节点(hadoop102)启动YARN
sbin/start-yarn.sh
3.启动成功
Web端查看HDFS的NameNode
(a)浏览器中输入:http://hadoop102:9870
(b)查看HDFS上存储的数据信息
Web端查看YARN的ResourceManager
(a)浏览器中输入:http://hadoop103:8088
(b)查看YARN上运行的Job信息
4.一些可能出现的问题
4.1权限问题
启动集群时,必须保证操作hadoop的用户是非root用户,即普通用户,否则会报错
以root用户登录系统。
执行以下命令将doulepeach用户添加到sudoers列表中,允许其以sudo命令的方式执行任何命令:
visudo
在打开的文件中,找到以下行:
root ALL=(ALL:ALL) ALL
在该行下方添加以下内容:
doulepeach ALL=(ALL) ALL
保存文件并退出。
重新登入普通用户: su doublepeach
使用以下命令将hadoop文件夹权限修改为此普通用户所有
sudo chown doublepeach /path/to/hadoop
此时再执行 sbin/start-dfs.sh 就能启动hadoop集群了
4.2 JAVA_HOME问题
这个问题很奇怪,说启动hadoop时找不到jdk的路径,但我明明/etc/profile里正确配置了jdk的JAVA_HOME,但还是报以下错误:
[doublepeach@hadoop101 hadoop-3.1.3]$ sbin/start-dfs.sh
Starting namenodes on [hadoop101]
hadoop101: ERROR: Unable to write in /opt/module/hadoop-3.1.3/logs. Aborting.
Starting datanodes
hadoop102: ERROR: JAVA_HOME is not set and could not be found.
hadoop101: ERROR: Unable to write in /opt/module/hadoop-3.1.3/logs. Aborting.
hadoop103: ERROR: JAVA_HOME is not set and could not be found.
Starting secondary namenodes [hadoop103]
hadoop103: ERROR: JAVA_HOME is not set and could not be found.found.
最终执行了以下命令后问题解决:
export JAVA_HOME=/usr/dev/jdk1.8.0_121/
echo 'export JAVA_HOME=export JAVA_HOME=/usr/dev/jdk1.8.0_121/' >> ~/.bashrc
source ~/.bashrc
sbin/start-dfs.sh
这样就不报找不到JAVA_HOME了,集群可以正常启动了(注意jdk的路径)
(但是我怀疑不是这个配置的问题,应该也是权限的问题,只不过我误打误撞这样也配置成功了,以后深入学习原理后应该就明白这一块的hadoop启动机制了)
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 DoublePeach
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果