Hadoop集群模式安装(2.4.1) 2015-02-12 19:00

说明

  • 环境规划

基于CentOS6.5 64bit安装。共四个节点,分别是:
控制节点:ctrl(192.168.1.10)
数据节点:data01(192.168.1.11)、data02(192.168.1.12)、data03(192.168.1.13)
控制节点运行NameNode、SecondaryNameNode、ResourceManager、JobHistoryServer.
数据节点运行DataNode、NodeManager。

  • 版本

基于Hadoop2.4.1版本。

准备工作

  • 配置各节点SSH自动登录

配置各个节点之间通过SSH密钥方式实现自动登录,具体操作请参见相关文档.
hadoop以哪一个用户运行,则以配置哪一个用户自动登录.

  • 安装JDK

执行如下命令下载、安装JDK.

1
2
3
4
wget --no-check-certificate --no-cookies --header \ 
  "Cookie: oraclelicense=accept-securebackup-cookie" \
  http://download.oracle.com/otn-pub/java/jdk/7u67-b01/jdk-7u67-linux-x64.rpm
rpm -ivh jdk-7u67-linux-x64.rpm

在/etc/bashrc中添加如下内容,以配置JAVA相关环境变量

1
2
3
export JAVA_HOME=/usr/java/jdk1.7.0_67
export CLASSPATH=".:$JAVA_HOME/lib:$CLASSPATH"
export PATH="$JAVA_HOME/bin:$PATH"
  • 配置各节点的主机名解析

各节点的/etc/hosts都为如下内容:

1
2
3
4
5
127.0.0.1    localhost
192.168.1.10 ctrl
192.168.1.11 data01
192.168.1.12 data02
192.168.1.13 data03

安装

  • 安装

hadoop安装很简单,下载后解压即可.本文档中hadoop不是以root用户运行,而是以新创建的hadoop用户运行:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
cd /opt
wget https://archive.apache.org/dist/hadoop/core/hadoop-2.4.1/hadoop-2.4.1.tar.gz
tar -zxvf hadoop*.tar.gz
mv hadoop-2.4.1 hadoop
groupadd hadoop
useradd hadoop -g hadoop
chown -R hadoop:hadoop hadoop
su - hadoop
cd /opt/hadoop
mkdir /opt/hadoop/tmp
mkdir /opt/hadoop/dfs
  • 基础配置

在/etc/bashrc中添加相关的环境变量,包括把hadoop的bin目录和sbin目录加入$PATH中:

1
2
3
4
5
6
7
8
9
export HADOOP_HOME=/opt/hadoop
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/lib
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

配置文件

  • slaves

slaves的原内容清空,改为如下内容:

1
2
3
data01
data02
data03
  • core-site.xml
1
2
3
4
5
6
7
8
9
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://ctrl:9000</value>
</property>
<property>
    <name>hadoop.tmp.dir</name>
    <value>file:/opt/hadoop/tmp</value>
    <description>Abase for other temporary directories.</description>
</property>
  • hdfs-site.xml
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>ctrl:50090</value>
</property>
<property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/opt/hadoop/dfs/name</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/opt/hadoop/dfs/data</value>
</property>
<property>
    <name>dfs.replication</name>
    <value>3</value>
</property>
  • mapred-site.xml

mapred-site.xml默认不存在,先通过模板文件创建一个.

1
cp mapred-site.xml.template mapred-site.xml

然后做如下配置:

1
2
3
4
5
6
7
8
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>ctrl:10020</value>
</property>

如果没有配置mapreduce.jobhistory.address会导致在运行Hive和Pig时会出现无法连接10020端口(JobHistoryServer)的错误。

  • yarn-site.xml
1
2
3
4
5
6
7
8
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>ctrl</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

启动Hadoop

  • 格式化HDFS

首次启动前需要格式化NameNode

1
hdfs namenode -format
  • 启动Hadoop

只需要在主节点运行如下命令,以下命令会自动登录各个从节点启动各节点程序。

1
2
start-dfs.sh
start-yarn.sh
  • 在NameNode上启动JobHistoryServer
1
mr-jobhistory-daemon.sh start historyserver
  • 停止Hadoop
1
2
stop-yarn.sh
stop-dfs.sh
  • 查看进程启动情况
1
jps

维护台

  • HDFS Web维护台

    http://ctrl:50070
  • YARN Web维护台

    http://ctrl:8088
  • 基础使用

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 列出文件
hdfs dfs -ls /
# 上传文件
hdfs dfs -put /local/file /hdfs/file
# 下载文件
hdfs dfs -get /hdfs/file /local/file
# 创建目录
hdfs dfs -mkdir /hdfs/dir
# 删除目录
hdfs dfs -rmdir /hdfs/dir
# 删除文件
hdfs dfs -rm /hdfs/file
# 更多hdfs命令帮助
hdfs dfs
Tags: #HDFS #MapReduce    Post on Hadoop