My Avatar

skylens

(●´ω`●)/

Hadoop分布式部署

2017年5月23日 星期二, 发表于 昆明

说明

本次实验使用了两台安装Debian的电脑,IP地址分别为192.168.1.121,192.168.1.122

部署

1.用户设置

$ sudo useradd -m hadoop -s /bin/bash  //添加hadoop用户,两个节点都要执行
$ sudo passwd hadoop  //设置hadoop用户的密码,两个节点都要执行
$ sudo adduser hadoop sudo  //为hadoop用户增加管理员权限,两个节点都要执行
$ sudo su - hadoop  //切换到hadoop用户,两个节点都要执行

2.源设置

$ ping 163.com  //检查网络,两个节点都要执行
$ sudo vim /etc/apt/sources.list  //修改源,两个节点都要执行
deb http://mirrors.ustc.edu.cn/debian/ jessie main contrib non-free
deb http://mirrors.163.com/debian/ jessie main non-free contrib

$ sudo apt-get update  //更新源,两个节点都要执行

3.主机名设置

$ echo "Master" > /etc/hostname  //设置主节点的主机名
$ echo "Slave1" > /etc/hostname  //设置分节点的主机名
$ sudo vim /etc/hosts  //修改hosts,两个节点都要执行
192.168.1.121   Master
192.168.1.122   Slave1

$ ping -c 3 Master  //检查设置,两个节点都要执行
$ ping -c 3 Slave1  //检查设置,两个节点都要执行

4.ssh设置

$ ssh-keygen -t rsa  //生成密钥对,主节点上完成
$ ssh-copy-id hadoop@Master  //把公钥上传到主节点上
$ ssh-copy-id hadoop@Slave1  //把公钥上传到分节点上
$ ssh Master  //测试登录主节点,两个节点都要执行
$ ssh Slave1  //测试登录分节点,两个节点都要执行

5.安装Java环境及hadoop

$ sudo apt-get install  openjdk-8-jre openjdk-8-jdk  //两个节点都要安装
$ wegt http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.1/hadoop-2.7.1.tar.gz
$ sudo tar -zxvf hadoop-2.7.1.tar.gz -C /usr/local  //两个节点都要执行
$ cd /usr/local
$ sudo mv hadoop-2.7.1 hadoop
$ sudo chown -R hadoop ./hadoop

6.环境变量设置

$ vim ~/.bashrc  //添加,两个节点都要执行
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin

$ $JAVA_HOME/bin/java -version  //测试Java环境变量,两个节点都要执行
$ hadoop version  //测试hadoop环境变量,两个节点都要执行

7.初始化

注意

$ hdfs namenode -format  //主节点上执行,只执行一次

8.启动hadoop,在主节点上执行

$ start-dfs.sh
$ start-yarn.sh
$ mr-jobhistory-daemon.sh start historyserver

9.检查节点是否正常

$ jps  //查看hadoop启动的进程,两个节点上执行
$ hdfs dfsadmin -report  //在主节点上查看分节点是否正常

10.执行分布式实例

$ hdfs dfs -mkdir -p /user/hadoop
$ hdfs dfs -mkdir input
$ hdfs dfs -put /usr/local/hadoop/etc/hadoop/*.xml input
$ hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'  //运行 MapReduce 作业

11.在主节点上关闭Hadoop集群

$ stop-yarn.sh
$ stop-dfs.sh
$ mr-jobhistory-daemon.sh stop historyserver