CentOS 6.5 搭建Hadoop 2.5.2集群

记录在64位CentOS 6.5环境下搭建Hadoop 2.5.2集群的步骤,同时遇到问题的解决办法,这些记录都仅供参考!

1、操作系统环境配置

1.1、操作系统环境

主机名 IP地址 角色 Hadoop用户
hadoop-master 192.168.30.50 Hadoop主节点 hadoop
hadoop-slave01 192.168.30.51 Hadoop从节点 hadoop
hadoop-slave02 192.168.30.52 Hadoop从节点 hadoop

1.2、关闭防火墙和SELinux

1.2.1、关闭防火墙

service iptables stop 
chkconfig iptables off

1.2.2、关闭SELinux

setenforce 0
sed -i 's/enforcing/disabled/' /etc/sysconfig/selinux

1.3、hosts配置

vim /etc/hosts

########## Hadoop host ##########
192.168.30.50   hadoop-master
192.168.30.51   hadoop-slave01
192.168.30.52   hadoop-slave02

注:以上操作需要在root用户,通过ping 主机名可以返回对应的IP即可

1.4、配置无密码访问

在3台主机上使用hadoop用户配置无密码访问,所有主机的操作相同,以hadoop-master为例

生成私钥和公钥
ssh-keygen -t rsa

拷贝公钥到主机(需要输入密码)

ssh-copy-id hadoop@hadoop-master
ssh-copy-id hadoop@hadoop-slave01
ssh-copy-id hadoop@hadoop-slave02

注:以上操作需要在hadoop用户,通过hadoop用户ssh到其他主机不需要密码即可。

2、Java环境配置

2.1、下载JDK

cd /usr/local/src
wget -c http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz

2.2、安装java

mkdir -p /usr/local/java
tar -zxf jdk-8u151-linux-x64.tar.gz
mv jdk1.8.0_151 /usr/local/java/jdk1.8

2.3、配置Java环境变量

vim /etc/profile.d/jdk.sh

export JAVA_HOME=/usr/local/java/jdk1.8
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

启用环境变量
source /etc/profile.d/jdk.sh

注:以上操作在root用户,通过java –version命令返回Java的版本信息即可

3、Hadoop安装配置

hadoop的安装配置使用hadoop用户操作;

3.1、安装Hadoop

下载hadoop 2.5.2
https://archive.apache.org/dist/hadoop/common/hadoop-2.5.2/hadoop-2.5.2.tar.gz

创建hadoop安装目录
mkdir -p /home/hadoop/app/{tmp,hdfs/{data,name}}

解压hadoop文件并移动到hadoop安装目录下
tar zxf hadoop-2.5.2.tar.gz -C /home/hadoop/app

3.2、配置Hadoop

Hadoop配置文件都是XML文件,使用hadoop用户操作即可;

3.2.1、配置core-site.xml

vim /home/hadoop/app/hadoop-2.5.2/etc/hadoop/core-site.xml

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/hadoop/app/tmp</value>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop-master:9000</value>
    </property>
</configuration>

3.2.2、配置hdfs-site.xml

vim /home/hadoop/app/hadoop-2.5.2/etc/hadoop/hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/home/hadoop/app/hdfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/home/hadoop/app/hdfs/data</value>
    </property>
</configuration>

3.2.3、配置mapred-site.xml

mapred-site.xml需要从一个模板拷贝在修改
cp /home/hadoop/app/hadoop-2.5.2/etc/hadoop/mapred-site.xml.template /home/hadoop/app/hadoop-2.5.2/etc/hadoop/mapred-site.xml
vim /home/hadoop/app/hadoop-2.5.2/etc/hadoop/mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

3.2.4、配置yarn-site.xml

vim /home/hadoop/app/hadoop-2.5.2/etc/hadoop/yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop-master</value>
    </property>
</configuration>

3.2.5、配置slaves

vim /home/hadoop/app/hadoop-2.5.2/etc/hadoop/slaves

hadoop-slave01
hadoop-slave02

3.3、拷贝Hadoop程序到slave

scp -r app hadoop-slave01:/home/hadoop/
scp -r app hadoop-slave02:/home/hadoop/

3.4、配置Hadoop环境变量

在所有机器hadoop用户家目录下编辑 .bash_profile 文件,在最后追加:
vim /home/hadoop/.bash_profile

### Hadoop PATH
export HADOOP_HOME=/home/hadoop/app/hadoop-2.5.2
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

让环境变量生效:
source /home/hadoop/.bash_profile

注:这是配置hadoop的用户环境变量,如果系统变量设置在 /etc/profile.d/ 目录下新增

3.5、启动Hadoop

在hadoop主节点上初始化HDFS文件系统,然后启动hadoop集群

3.5.1、初始化HDFS文件系统

hdfs namenode –format

3.5.2、启动和关闭Hadoop集群

  • 启动

start-all.sh

  • 关闭:

stop-all.sh

注:也可以一步一步执行启动,首先启动namenode-->datanode-->YARN -->NodeManagers

  • MapReduce PI运算

hadoop jar /home/hadoop/app/hadoop-2.5.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.2.jar pi 5 10

返回的结果是:Estimated value of Pi is 3.28000000000000000000

YARN管理界面:http://192.168.30.50:8088
HDFS管理界面:http://192.168.30.50:50070

4、遇到的问题

4.1、在执行启动hadoop集群是时候,终端显示Unable to load 警告

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable<br/>Starting namenodes on [hadoop-master]

解决思路:
在终端上输入:export HADOOP_ROOT_LOGGER=DEBUG,console,在执行hadoop命令,从终端日志信息发现 /lib64/libc.so.6 文件需要的版本是GLIBC_2.14,当前系统的版本是 2.12,解决办法就是升级软件;
http://ftp.gnu.org/gnu/glibc/ 下载glibc-2.14.tar.gz 安装配置如下:

mkdir /usr/local/src/glibc
cd /usr/local/src/glibc
wget -c http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
tar zxvf glibc-2.14.tar.gz
./glibc-2.14/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make && make install

5、参考资料


本文转自 巴利奇 51CTO博客,原文链接:http://blog.51cto.com/balich/2057895
上一篇:中国超级电容器电池行业概述


下一篇:CF993E Nikita and Order Statistics 多项式卷积 快速傅里叶变换