Hadoop Multi Node Cluster安装
一、软件准备
1. CentOS 虚拟机4台(这里我用的是CentOS 6.8 X64 + VMware)。
2. jdk-8u191-linux-x64.tar.gz
3. hadoop-2.8.5.tar.gz
二、配置要求
hostname | IP地址 | OS | 用户 | 密码 |
master.hadoop | 10.13.9.10 | CentOS 6.8 | hdusr | Hdusr123! |
data1.hadoop | 10.13.9.11 | CentOS 6.8 | hdusr | Hdusr123! |
data2.hadoop | 10.13.9.12 | CentOS 6.8 | hdusr | Hdusr123! |
data3.hadoop | 10.13.9.13 | CentOS 6.8 | hdusr | Hdusr123! |
三、安装步骤
1.配置IP地址
根据配置要求分别配置data1、data2、data3、master的ip地址。
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
ONBOOT="yes"
TYPE="Ethernet"
IPADDR="10.13.9.11"
PREFIX="24"
GATEWAY="10.13.9.2"
DNS1="10.13.9.2"
由于我的虚拟机是复制过来的,重启网卡(#service network restart)出现No suitable device found: no device found for connection "System eth0"错误,通过如下方式解决:
a. 在虚拟机设置里重新生成MAC地址。
b. 启动虚拟机,在/etc/udev/rules.d/70-persistent-net.rules文件里修改eth0设备MAC地址。
c. 在/etc/sysconfig/network-scripts/ifcfg-eth0文件里修改设备MAC地址。
d. 重启操作系统。
2.配置hostname
根据配置要求分别配置data1、data2、data3、master的hostname。
a.编辑network文件修改hostname行(重启生效)
$ vim /etc/sysconfig/network
b. 设置当前的hostname(立即生效)
$ hostname hadoop.data1
c. 编辑hosts文件,给127.0.0.1添加hostname
$ vim /etc/hosts
3. 配置hosts
所有节点hosts增加如下内容。
$ sudo vim /etc/hosts
10.13.9.10 master.hadoop
10.13.9.11 data1.hadoop
10.13.9.12 data2.hadoop
10.13.9.13 data3.hadoop
4. 关闭防火墙
$ sudo chkconfig iptables off
$ sudo service iptables stop
5.创建hdusr用户
分别为data1、data2、data3、master创建hdusr用户。
创建用户
# useradd hdusr
# passwd hdusr
修改文件权限
# chmod u+w /etc/sudoers
编辑/etc/sudoers文件。
找到这一行:”root ALL=(ALL) ALL”在起下面添加”xxx ALL=(ALL) ALL”(这里的xxx是你的用户名),然后保存。
# vim /etc/sudoers
撤销文件的写权限
# chmod u-w /etc/sudoers
切换至hdusr用户
# su - hdusr
6.设定ssh免密登录
a. 为所有节点创建ssh key
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
b. 为master节点创建authorized_keys
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
c. 将master节点的authorized_keys分别上传至data1、data2、data3节点
$ scp /home/hdusr/.ssh/authorized_keys hdusr@10.13.9.11:/home/hdusr/.ssh/
$ scp /home/hdusr/.ssh/authorized_keys hdusr@10.13.9.12:/home/hdusr/.ssh/
$ scp /home/hdusr/.ssh/authorized_keys hdusr@10.13.9.13:/home/hdusr/.ssh/
d. 为所有节点配置sshd
$ sudo vim /etc/ssh/sshd_config
PasswordAuthentication yes
HostKey /etc/ssh/ssh_host_rsa_key
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
$ sudo /etc/init.d/sshd restart
e. 为所有节点设置权限
$ chown -R hdusr:hdusr /home/hdusr/
$ chmod 700 /home/hdusr/
$ chmod 700 /home/hdusr/.ssh/
$ chmod 644 /home/hdusr/.ssh/authorized_keys
$ chmod 600 /home/hdusr/.ssh/id_dsa
f. 在master节点测试ssh免密登录
$ ssh 10.13.9.11
Last login: Wed Oct 31 05:12:31 2018 from 10.13.9.10
[hdusr@data1 ~]$ exit
logout
Connection to 10.13.9.11 closed.
7.安装并配置java环境变量
分别为data1、data2、data3、master节点安装配置java。
a.解压到安装目录
$ sudo mkdir /usr/local/java
$ sudo chown -R hdusr:hdusr /usr/local/java/
$ tar -zxvf /home/software/jdk-8u192-linux-x64.tar.gz -C /usr/local/java/
b.配置环境变量
$ vim ~/.bashrc
export JAVA_HOME=/usr/local/java/jdk1.8.0_192
export PATH=${JAVA_HOME}/bin:$PATH
$ source ~/.bashrc
$ echo $PATH
$ java -version
java version "1.8.0_192"
Java(TM) SE Runtime Environment (build 1.8.0_192-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.192-b12, mixed mode)
$ javac -version
javac 1.8.0_192
8.安装并配置hadoop环境变量
分别为data1、data2、data3、master节点安装配置hadoop。
a.解压到安装目录
$ sudo mkdir /usr/local/hadoop
$ sudo chown -R hdusr:hdusr /usr/local/hadoop
$ tar -zxvf /home/software/hadoop-2.8.5.tar.gz -C /usr/local/hadoop/
b.配置环境变量
$ vim ~/.bashrc
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.8.5
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
$ source ~/.bashrc
$ hadoop version
9.hadoop配置
Step1 修改所有节点hadoop-env.sh
$ vim /usr/local/hadoop/hadoop-2.8.5/etc/hadoop/hadoop-env.sh
输入下面内容:
export JAVA_HOME=/usr/local/java/jdk1.8.0_192
Step2 修改所有节点core-site.xml
$ vim /usr/local/hadoop/hadoop-2.8.5/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://10.13.9.10:9000</value>
</property>
</configuration>
Step3 修改所有节点yarn-site.xml
$ vim /usr/local/hadoop/hadoop-2.8.5/etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>10.13.9.10:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>10.13.9.10:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>10.13.9.10:8050</value>
</property>
</configuration>
Step4 修改所有节点mapred-site.xml
$ cp /usr/local/hadoop/hadoop-2.8.5/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/hadoop-2.8.5/etc/hadoop/mapred-site.xml
$ vim /usr/local/hadoop/hadoop-2.8.5/etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>10.13.9.10:54311</value>
</property>
</configuration>
Step5 修改所有data节点hdfs-site.xml
$ vim /usr/local/hadoop/hadoop-2.8.5/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/hadoop-2.8.5/hadoop_data/hdfs/datanode</value>
</property>
</configuration>
Step6 修改master节点hdfs-site.xml
$ vim /usr/local/hadoop/hadoop-2.8.5/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/hadoop-2.8.5/hadoop_data/hdfs/namenode</value>
</property>
</configuration>
Step7 设定master档案(master节点)
$ vim /usr/local/hadoop/hadoop-2.8.5/etc/hadoop/master
输入下面内容:
10.13.9.10
Step8 设定slaves档案(master节点)
$ vim /usr/local/hadoop/hadoop-2.8.5/etc/hadoop/slaves
输入下面内容:
10.13.9.11
10.13.9.12
10.13.9.13
10.格式化HDFS目录
在master节点格式化HDFS目录
$ cd /usr/local/hadoop/hadoop-2.8.5/bin/
$ hadoop namenode -format
11.启动hadoop
$ cd /usr/local/hadoop/hadoop-2.8.5/sbin/
有a和b两种启动方式
a.启动start-dfs.sh,再启动start-yarn.sh
$ start-dfs.sh
$ start-yarn.sh
b.启动全部
$ start-all.sh
查看目前所执行的行程
$ jps
6725 SecondaryNameNode
6518 NameNode
6887 ResourceManager
7086 Jps
12.访问管理界面
Hadoop ResourceManager Web界面地址
http://10.13.9.10:8088/
NameNode HDFS Web界面地址
http://10.13.9.10:50070/