搭建Hadoop
虚拟机搭建自己的仿分布式集群
linux-hadoop文件配置
-
搭建前提
目录结构 -
安装jdk,下载hadoop,我的版本为2.9.2(较稳定的版本)
-
配置环境变量
然后 source /etc/profile 刷新一下 -
同步集群时间
-
设置每个主机的主机名(类下)
-
修改主机名映射
-
配置ssh免密登录
-
关闭防火墙
-
修改Hadoop主要配置文件
-
hadoop-env.sh
-
core-site.xml
fs.defaultFS:默认HDFS文件系统
fs.default.name:HDFS文件系统(可选项,启动失败可加上,我失败才加上的)
hadoop.tmp.dir:指定缓存目录 -
hdfs-site.xml
dfs.replication:HDFS副本的数量
dfs.namenode.secondary.http-address:指定secondary namenode的ip和端口 -
mapred-site.xml(mapred-site.xml.template)
mapreduce.framework.anme:mr运行时框架,指定为yarn,默认local -
yarn-site.xml
yarn.resourcemanager.hostname:指定yarn的老大
yarn.niodemanager.aux-services:nodemanger上运行的附属服务,需配置才能运行mapReduce的默认值 -
slaves
指定从属节点
-
-
至此,Hadoop核心配置完成了
启动 (jps查看启动节点,用于检测节点是否启动成功)
-
启动前对namenode节点格式化
-
启动方式有三种
-
单节点逐个启动
-
脚本一键启动
-
最后一个,不推荐,但是好使。
start-all.sh stop-all.sh -
打开UI
如果达到了这一步,恭喜你,初步配置完成了
然而这时候会有很多坑等着你
接下来看看我遇到的坑
解决Hadoop各种启动错误
- jps输出为空
我的原因是,打开tmp找到文件,发现hsperfdata文件权限全部是777,使用命令
chmod 755 hsperfdata_*
修改为755,再次使用jps,问题解决 - 长时间启动,关闭节点失败
原因是tmp目录长时间不访问,系统会自动清理
解决办法:更换其目录,不被清除
在hadoop-daemon.sh里面新增这一项
在yarn-daemon.sh里面新增这一项
如果出现类似namenodemanager did not gracefully close 的消息,如无影响可以无视 - 万金油的启动方式
各种错误解决不了,在备份数据后,删除自己设置的hadoop的tmp目录和hadoo/logs目录的内容,重新格式化namenode,基本都能完美解决 - 客户端使用提示permission denied
原因是你未给hdfs文件夹任意可写的权限
解决:在主节点 hdfs fs -chmod [-R] < dir >
以上是我现阶段遇到的所有问题,如有高见,欢迎留言评论,谢谢。
相关安装包如有需要,直接私信我。