本文转自我的原创blog: http://www.javali.org/document/hadoop2_related_problems_summary.html
hadoop版本:cdh4.7.0
操作系统: centos6 64bit
CDH3安装文档请跳至:hadoop1分布式集群搭建
1,hiveserver2 可以用localhost链接,但无法用IP链接
测试使用beeline执行
!connect jdbc:hive2://localhost:10000 hiveuser hiveuser org.apache.hive.jdbc.HiveDriver 成功
!connect jdbc:hive2://10.0.18.14:10000/default hiveuser hiveuser org.apache.hive.jdbc.HiveDriver 失败
更改配置:
2,nodemanager因8080端口被占用而无法启动
查看LOG
Caused by: org.jboss.netty.channel.ChannelException: Failed to bind to: 0.0.0.0/0.0.0.0:8080
at org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:303)
at org.apache.hadoop.mapred.ShuffleHandler.start(ShuffleHandler.java:298)
查找ShuffleHandler类找到
public static final String SHUFFLE_PORT_CONFIG_KEY = “mapreduce.shuffle.port”;
public static final int DEFAULT_SHUFFLE_PORT = 8080;
可以确定是Shuffle服务占用了端口
在mapred-site.xml增加相应的key value配置即可
3,hadoop安装信任关系打通
如果需要A能免密码登录B ,则需要在A执行ssh-keygen -t rsa ,将.pub文件拷贝到B机器并写入到~/.ssh/authorized_keys chmod 600 authorized_keys
如果当前sshd服务端口非标准22端口,则需要更改slaves.sh HADOOP_SSH_OPTS=” -p 22222 “
4,hdfs storageID调整
将storageID中的IP改成各自所在HOST的IP,确保唯一
5,hiveserver jdbc测试依赖的jar包
6,hadoop mapreduce call from hostName to localhost.localdomain connection error
修改/etc/hosts文件
127.0.0.1 localhost localhost.localdomain
192.168.1.105 cloud001 192.168.1.106 cloud002
为
#127.0.0.1 localhost localhost.localdomain
192.168.1.105 cloud001 localhost localhost.localdomain
192.168.1.106 cloud002
127.0.0.1 localhost localhost.localdomain
192.168.1.105 cloud001 192.168.1.106 cloud002
为
#127.0.0.1 localhost localhost.localdomain
192.168.1.105 cloud001 localhost localhost.localdomain
192.168.1.106 cloud002
7,启动map数决定因素 Splitsize
splitsize = max{minSize,min{goalSize,blockSize}}
minSize=mapred.min.split.size
goalSize=totalSize/numSplits numSplits=设定的Map数
blockSize无需解释
本文档总结了Hadoop CDH4.7.0版本在CentOS 6 64位操作系统上搭建过程中遇到的问题及解决办法,包括HiveServer2连接配置、NodeManager端口冲突处理、HDFS storageID调整、Hive JDBC测试依赖设置等关键步骤。
985

被折叠的 条评论
为什么被折叠?



