前置条件
所使用的环境:Centos-6.5(64bit),hadoop-2.5.0
1. 网络环境设置(以master为例)
序号 | 主机名 | IP地址 |
---|---|---|
1 | master | 192.168.1.60 |
2 | slave1 | 192.168.1.61 |
3 | slave2 | 192.168.1.62 |
- 以root用户编辑
/etc/hosts
文件,添加内容
vim /etc/hosts
192.168.1.60 master
192.168.1.61 slave1
192.168.1.62 slave2
- 编辑
/etc/sysconfig/network
文件
vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=master
- 重启电脑,使网络更改生效
reboot
2. 创建用户及用户组
- 创建用户组(以
root
用户)
groupadd hadoop
- 创建用户,设置密码
useradd -g hadoop haduser -d /home/haduser
passwd haduser
SSH无密码登录
1. 在master节点
- 切换用户
su haduser
- 生成公钥私钥密码对
ssh-keygen -t rsa
一路回车到最后!! (在slave节点同样先切换到haduser
,执行ssh-keygen -t rsa
)
- 拷贝master公钥到slave节点
cd /home/haduser/.ssh
cp ./id_rsa.pub authorized_keys
scp ./id_rsa.pub slave1:/home/haduser
scp ./id_rsa.pub slave2:/home/haduser
scp ./id_rsa.pub slave3:/home/haduser
2.在slave节点
- 将master公钥追加到slave认证文件中
cd /home/haduser/.ssh
cp ./id_rsa.pub authorized_keys
cat ../id_rsa.pub >> authorized_keys
3. 测试(在master节点)
ssh slave1
首次登录可能需要输入密码!
JDK安装
以root
用户安装配置
1. 到Oracle官网下载jdk
su
cd /usr/local
wget http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz
2. 解压压缩包并创建符号链接
tar zxvf jdk-7u79-linux-x64.tar.gz
ln -s jdk1.7u79 jdk
3. 设置jdk换件变量
- 编辑
/etc/profile
文件,添加内容
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin
- 保存执行命令是设置生效
source /etc/profile
- 查看设置是否成功
java -version
java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)
配置HADOOP
以haduser
执行
1. 下载hadoop-2.5.0,并放到/home/haduser
目录下
2. 解压,建立符号链接
su haduser
cd /home/haduser
tar zxvf hadoop-2.5.0.tar.gz
ln -s hadoop-2.5.0.tar.gz hadoop
3. 配置hadoop
- 设置环境变量,编辑
/etc/profile
文件
vim /etc/profile
export HADOOP_PREFIX="/home/haduser/hadoop"
export HADOOP_COMMON_HOME=${HADOOP_PREFIX}
export HADOOP_HDFS_HOME=${HADOOP_PREFIX}
export HADOOP_MAPRED_HOME=${HADOOP_PREFIX}
export HADOOP_YARN_HOME=${HADOOP_PREFIX}
export HADOOP_CONF_DIR=${HADOOP_PREFIX}/etc/hadoop
export PATH=$PATH:$HADOOP_PREFIX/bin
export PATH=$PATH:$HADOOP_PREFIX/sbin
- 保存推出并执行命令使之生效
source /etc/profile
- 修改配置文件,在
${HADOOP_HOME}/etc/hadoop
目录下
hadoop-env.sh
echo $JAVA_HOME
/usr/local/jdk
vim hadoop-env.sh
将export JAVA_HOME=${JAVA_HOME}
更改为:
export JAVA_HOME=/usr/local/jdk
- HDFS的配置
core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/haduser/hadoop/data/tmp/hadoop-${user.name}</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///home/haduser/hadoop/data/hdfs/datanode</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/haduser/hadoop/data/hdfs/namenode</value>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>file:///home/haduser/hadoop/data/hdfs/namesecondary</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
hadoop会自动创建目录
- YARN的配置
yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
</configuration>
- MapReduce的配置
将 mapred-site.xml.template
复制一份,重命名为mapred-site.xml
mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobtracker.staging.root.dir</name>
<value>/user</value>
</property>
</configuration>
- 添加Slave,即NodeManager,编辑
slave
文件
slaves
slave1
slave2
- 设置pid文件的存放位置
在hadoop-env.sh
中添加
export HADOOP_MAPRED_PID_DIR=/home/haduser/hadoop/data/pids
在 mapred-env.sh
中添加
export HADOOP_PID_DIR=/home/haduser/hadoop/data/pids
slave节点hadoop与master节点配置相同!!可以在各个slave节点将hadoop压缩包解压到与master对应相同的位置,然后建立各自的符号链接。
- 将master的hadoop配置文件拷贝到所有的slave节点
cd /home/haduser/hadoop/etc
scp -r ./hadoop slave1:/home/haduser/
scp -r ./hadoop slave2:/home/haduser/
运行
1. 启动hdfs
( 只需一次,下次启动不再需要格式化,只需 start-dfs.sh )
hdfs namenode -format
start-dfs.sh
2. 启动Yarm
start-yarn.sh
3. 检查是否启动成功
jps
3238 NameNode
3417 SecondaryNameNode
5688 Jps
3577 ResourceManager