千家信息网

centos6.5 安装hadoop2.7.6 1master2node

发表于:2025-01-27 作者:千家信息网编辑
千家信息网最后更新 2025年01月27日,环境采用centos 6.5最小化安装,hadoop下载的hadoop2.7.6.tar.gz安装,Java下载的oracle官网的1.8.0_172的包安装。参考了别人的文档,遇到了不同的问题。1.
千家信息网最后更新 2025年01月27日centos6.5 安装hadoop2.7.6 1master2node

环境采用centos 6.5最小化安装,hadoop下载的hadoop2.7.6.tar.gz安装,Java下载的oracle官网的1.8.0_172的包安装。

参考了别人的文档,遇到了不同的问题。



1. 3台centos6.5 vmware

192.168.17.205 Master
192.168.17.206 hadoop1
192.168.17.207 hadoop2
为三台主机添加同一用户,设置密码:

添加用户
useradd hadoop
修改密码
passwd hadoop

SSH 免密码登录安装,配置
保证由master主机能够免密码登录到datanodes节点机上

# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa#ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.17.206

测试

[root@Master ~]# ssh 192.168.17.206Last login: Mon Apr 23 12:56:33 2018 from 192.168.17.1[root@hadoop1 ~]# 

JDK的安装与卸载
卸载 JDK

# 检查当前安装的JDKrpm -qa|grep gcjrpm -qa|grep jdkrpm -e  --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64rpm -e  --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64#查询当前系统中相关java 目录并删除whereis javajava: /etc/java /usr/lib/java /usr/share/java#删除查询出的结果目录rm -fr /usr/share/javarm -fr /usr/lib/javarm -fr /etc/java

安装JDK

在usr目录下创建java目录并且下载JDK并且解压到 /usr/java 目录下

cd /usrmkdir javacd javawget http://download.oracle.com/otn-pub/java/jdk/8u102-b14/jdk-8u102-linux-x64.tar.gztar -zxvf jdk-8u172-linux-x64.tar.gz

可能要手工下载再传进去,下载到的可能是html而不是tar.

编辑 vim /etc/profile 文件并且在末尾追加

JAVA_HOME=/usr/java/jdk1.8.0_172PATH=$JAVA_HOME/bin:$PATHCLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jarexport PATH JAVA_HOME CLASSPATH

在不重新启动操作系统的情况下使 /etc/profile 文件生效
source /etc/profile
检查java的安装状态
java -version

2. 安装 Hadoop2.7.6

下载hadoop-2.7.6

cd /tmp
wget http://apache.fayea.com/hadoop/common/hadoop-2.7.3/hadoop-2.7.6.tar.gz
解压 hadoop-2.7.6.tar.gz
tar -zxvf hadoop-2.7.6.tar.gz
复制文件到 /usr 目录下
cp -R /tmp/hadoop-2.7.3 /usr/hadoop
配置hadoop的环境变量,在/etc/profile下追加
vi /etc/profile
追加如下的环境变量设置

HADOOP_HOME=/usr/hadoopexport HADOOP_INSTALL=$HADOOP_HOMEexport HADOOP_MAPRED_HOME=$HADOOP_HOMEexport HADOOP_COMMON_HOME=$HADOOP_HOMEexport HADOOP_HDFS_HOME=$HADOOP_HOMEexport YARN_HOME=$HADOOP_HOMEexport HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/nativeexport PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

修改 etc/hadoop/hadoop-env.sh 文件
vi etc/hadoop/hadoop-env.sh

# The java implementation to use.#export JAVA_HOME=${JAVA_HOME}export JAVA_HOME=/usr/java/jdk1.8.0_172

修改 etc/hadoop/core-site.xml 文件

        hadoop.tmp.dir        file:/usr/hadoop/tmp        Abase for other temporary directories.                fs.defaultFS        hdfs://Master:9000    

修改 etc/hadoop/hdfs-site.xml 文件

                        dfs.namenode.secondary.http-address                Master:50090                                dfs.replication                1                                dfs.namenode.name.dir                file:/usr/hadoop/tmp/dfs/name                                dfs.datanode.data.dir                file:/usr/hadoop/tmp/dfs/data        

修改 etc/hadoop/yarn-site.xml 文件

                                yarn.resourcemanager.hostname                Master                                yarn.nodemanager.aux-services                mapreduce_shuffle        

修改 etc/hadoop/mapred-site.xml 文件

                        mapreduce.framework.name                yarn                                mapreduce.jobhistory.address                Master:10020                                mapreduce.jobhistory.webapp.address                Master:19888        

修改 etc/hadoop/slaves 文件,添加

192.168.17.206
192.168.17.207
打包文件夹 /usr/hadoop ,复制到 datanode 节点机,保证节点机环境配置与master保持一致格式化文件系统

hdfs namenode -format
启动文件服务
start-dfs.sh
Make the HDFS directories required to execute MapReduce jobs:
关闭文件服务
stop-dfs.sh
创建用户文件系统文件夹
hdfs dfs -mkdir /user
hdfs dfs -mkdir /user/hadoop
复制文件本地文件到分布式文件系统 input 下
hdfs dfs -mkdir /input
hdfs dfs -put etc/hadoop/*.xml input

3. 遇到的问题

3.1安装后会一直提示错误"WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable "

export  HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"

把相同配置添加到hadoop-env.sh文件末尾。

3.2hadoop Live Nodes :0

 对于这些网上的说法已经很多了,主要包括:1 关闭safemode模式,输入如下命令:bin/hadoop dfsadmin -safemode leave2 检查存储空间是否足够,输入如下命令:df -hl3 重新格式化hdfs,按照如下步骤a) 删除master和所有slave上的 hadoop目录下的logs文件,并重新建立b) 删除master和所有slave上的hdfs存储目录,即conf/core-site.xml配置文件中  hadoop.tmp.dir属性对应的value所指向的目录,并重新建立4 检查防火墙是否关闭,输入下面命令查看状态:service iptables status输入下面命令关闭防火墙service iptables stop5 重新检查配置文件不过上述方法都用过了,依然没有解决问题,下面一点是如何解决了该问题的操作。检查每台机器上的/etc/hosts文件,将没有用或不清楚作何用的ip:name对删除,最后只留下了[root@hadoop1 hadoop]# cat /etc/hosts127.0.0.1   localhost192.168.17.205 Master192.168.17.206 hadoop1192.168.17.207 hadoop2
0