部署haddoop 2.5.1 遇到的几个问题
1、Error: JAVA_HOME is not set and could not be found.
这个问题是由于hadoop无法识别本地的jdk环境所致,首先检查本地是否配置了jdk环境变量,如果没有可以在/etc/profile加入以下配置
#java export JAVA_HOME=/usr/local/jdk1.6.0_38/ #改为你的jdk安装路径 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
配置好了之后,执行source /etc/profile让配置生效。重启hadoop,如果还是出现上面的问题,可以进入到hadoop的安装目录,编辑配置文件文件 vim etc/hadoop/hadoop-env.sh
# The java implementation to use. export JAVA_HOME="/usr/local/jdk1.6.0_38/" #改为本地jdk路径
重启hadoop,finish!
2、WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform ...
这个是由于hadoop本地库与系统版本不一致引起的,这是一个比较难搞的问题,目前在确定haddoop版本的情况下,只能通过重新编译系统的glibc库来解决。
第一步,查看hadoop本地库需要的版本,在终端输入
#增加hadoop配置信息 export HADOOP_ROOT_LOGGER=DEBUG,console #测试hdfs hadoop fs -text /tmp/test.tar.gz 系统输出: 14/09/29 13:15:11 DEBUG util.NativeCodeLoader: Failed to load native-hadoop with error: java.lang.UnsatisfiedLinkError: /data/dist/hadoop-2.5.1/lib/native/libhadoop.so.1.0.0: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /data/dist/hadoop-2.5.1/lib/native/libhadoop.so.1.0.0) ......
可以看到hadoop 2.5.1要求的glibc库的版本为2.14,接下来继续查看系统本地glibc版本
ll /lib64/libc.so.6 输出: lrwxrwxrwx 1 root root 14 Sep 29 14:24 /lib64/libc.so.6 -> libc-2.9.1.so
现在进行glibc的升级,等待过程比较漫长!!!
#下载glibc,地址 http://ftp.gnu.org/gnu/glibc/ wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.1.tar.gz 解压编译 tar -xzf glibc-2.14.1.tar.gz cd glibc-2.14.1 cd .. #一定要后退到上一层 export CFLAGS="-g -O2" #编译优化 ./glibc-2.14.1/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin make make install
升级完之后重新测试,应该没有问题了。
3、java.net.ConnectException: Connection timed out
出现上面这个异常有两种情况,第一需要确认hadoop集群是否已经启动,第二是确保所有被hadoop使用的端口都没有被iptables拦截掉
常用的端口配置
HDFS端口
| 参数 | 描述 | 默认 | 配置文件 | 例子值 |
| fs.default.name | namenode RPC交互端口 | 8020 | core-site.xml | hdfs://master:8020/ |
| dfs.http.address | NameNode web管理端口 | 50070 | hdfs-site.xml | 0.0.0.0:50070 |
| dfs.datanode.address | datanode 控制端口 | 50010 | hdfs-site.xml | 0.0.0.0:50010 |
| dfs.datanode.ipc.address | datanode的RPC服务器地址和端口 | 50020 | hdfs-site.xml | 0.0.0.0:50020 |
| dfs.datanode.http.address | datanode的HTTP服务器和端口 | 50075 | hdfs-site.xml | 0.0.0.0:50075 |
MR端口
| 参数 | 描述 | 默认 | 配置文件 | 例子值 |
| mapred.job.tracker | job tracker交互端口 | 8021 | mapred-site.xml | hdfs://master:8021/ |
| mapred.job.tracker.http.address | job tracker的web管理端口 | 50030 | mapred-site.xml | 0.0.0.0:50030 |
| mapred.task.tracker.http.address | task tracker的HTTP端口 | 50060 | mapred-site.xml | 0.0.0.0:50060 |
其他端口
| 参数 | 描述 | 默认 | 配置文件 | 例子值 |
| dfs.secondary.http.address | secondary NameNode web管理端口 | 50090 | hdfs-site.xml | 0.0.0.0:28680 |
以上是hadoop的默认端口,在没有修改的情况下,可以在iptables上面全部进行设置允许,修改了则根据对应的配置文件进行修改。
浙公网安备 33010602011771号