部署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上面全部进行设置允许,修改了则根据对应的配置文件进行修改。

 

posted on 2014-10-08 15:08  yangxt  阅读(290)  评论(0)    收藏  举报

导航