1、 配置主机名
Master 节点: master
Slave 节点: Slave1
Slave 节点: Slave2
设置主机名
[root@localhost ~]# hostname master
刷新
[root@localhost ~]# bash
查看主机名变化
[root@master ~]#
* Slave 节点,类同。
2、 配置 hosts 列表(三个虚拟机都配置相同内容)
[root@master ~]# vi /etc/hosts
1.第一二行添加#,注销前两行
2.添加内容
192.168.6.250 master
192.168.6.251 slave1
192.168.6.252 slave2
[root@master ~]# ping slave1
通过输入ctrl+c结束连接
[root@master ~]# ping slave2
3、 关闭防火墙(三台服务器都需要关闭)
查看防火墙状态:systemctl status firewalld.service
关闭防火墙:systemctl stop firewalld.service
禁用防火墙:systemctl disable firewalld.service
4、 做时间同步(在三台机器上分别安装)
[root@master ~]# yum -y install ntp ntpdate
[root@master ~]# ntpdate 0.asia.pool.ntp.org
5、 免密钥登录设置
该部分操作要在hadoop用户目录下操作(已创建hadoop用户的可不再添加)
创建hadoop用户
#useradd hadoop
输入密码
#passwd hadoop
进入hadoop用户
#su hadoop
[hadoop@master root]$cd
[hadoop@master ~]$ssh-keygen -t rsa
多次点击回车
[hadoop@master ~]$cd .ssh
[hadoop@master .ssh]$ cat id_rsa.pub >> authorized_keys
赋权限
[hadoop@master .ssh]$chmod 600 authorized_keys
****以上操作在所有机器上做*******
master:
将master公钥传输到slave1 和slave2上
[hadoop@master .ssh]$ scp authorized_keys hadoop@slave1:~/.ssh
[hadoop@master .ssh]$ scp authorized_keys hadoop@slave2:~/.ssh
*测试(不输入密码可直接登录slave1的hadoop用户)
[hadoop@master .ssh]$ ssh slave1
退出远程登录slave1
#exit
6、 安装 JDK
建立文件夹software:
[hadoop@master ~]$ mkdir software
上传jdk软件包:rpm两种,到/home/software
进入root用户安装jdk
[root@master software]$rpm -ivh jdk-8u144-linux-x64.rpm
*jdk安装目录
[root@master software]# cd /usr/java/jdk1.8.0_144/
[root@master jdk1.8.0_144]# pwd
/usr/java/jdk1.8.0_144
配置环境变量
[root@master jdk1.8.0_144]# cd
[root@master ~]# vi .bashrc
在文件最后添加:
export JAVA_HOME=/usr/java/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
[hadoop@master ~]$. .bashrc(点与点之间有空格,刷新环境变量的配置文件)
[hadoop@master ~]$ java -version
slave1 slave2新建software文件夹
[hadoop@slave1 ~]$ mkdir software
[hadoop@slave2 ~]$ mkdir software
进入java文件夹下:
[root@master ~]# cd /usr/java/
将jdk文件夹复制传输到slave1 slave2上:
[root@master usr]# scp -r java/ slave1:/usr/
[root@master usr]# scp -r java/ slave2:/usr/
复制配置文件到到其它机器:
切换到根目录
[root@master ~]# cd
复制文件
[root@master ~]$ scp .bashrc slave1:/root
[root@master ~]$ scp .bashrc slave2:/root
在slave1 slave2上刷新环境变量:
[root@slave1~]# cd
[root@slave1~]# . .bashrc
[root@slave1~]# java -version
1、 三台机器全部切换到hadoop用户下操作
2、 解压hadoop压缩包:
a) 进入压缩包所在文件夹
[hadoop@master ~]$cd /home/hadoop/software
b) 解压压缩包
[hadoop@master software]$ tar xzvf hadoop-2.7.3.tar.gz
3、 配置文件配置
a) 进入配置文件目录
[hadoop@master ~]$cd /home/hadoop/software/hadoop-2.7.3/etc/hadoop
b) 修改文件hadoop-env.sh
- [hadoop@master hadoop]$vi hadoop-env.sh
输入/进入搜索框搜索
输入export JAVA_HOME查看内容
将export JAVA_HOME=${JAVA_HOME}改为export JAVA_HOME=/usr/java/jdk1.8.0_144
c) 修改yearn-env.sh
[hadoop@master hadoop]$vi hadoop-env.sh
将#export JAVA_HOME=/home/y/libexec/jdk1.6.0/修改为export JAVA_HOME=/usr/java/jdk1.8.0_144
注意去除#,不删除无效果
d) 修改core-site.xml
在<configuration></configuration>添加内容,内容如下所示:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/software/hadoopdata</value>
</property>
</configuration>
e) 修改 hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
f) 修改 yarn-site.xml
- <configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:18141</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
</configuration>
g) 修改 mapred-site.xml
[hadoop@master hadoop]$ cp mapred-site.xml.template mapred-site.xml
[hadoop@master hadoop]$ vi mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
h) 修改slaves文件
- vi slaves
- 编辑slaves
文件删除,添加:
slave1
slave2
4、 复制到从节点
使用下面的命令将已经配置完成的 Hadoop 复制到从节点 Hadoop Slave 上:
[hadoop@master hadoop-2.7.3]$ cd /home/hadoop/software
[hadoop@master software]$ scp -r hadoop-2.7.3 slave1:/home/hadoop/software/
[hadoop@master software]$ scp -r hadoop-2.7.3 slave2:/home/hadoop/software/
注意:因为之前已经配置了免密钥登录,这里可以直接远程复制。
5、 配置 Hadoop 启动的系统环境变量
[hadoop@master ~]$vi .bashrc
将下面的代码追加到.bashrc 末尾:
export HADOOP_HOME=/home/hadoop/software/hadoop-2.7.3
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
然后执行命令:
[hadoop@master ~]$ . .bashrc
1、 创建数据目录
该节的配置需要同时在HadoopMaster 和 HadoopSlave上分别进行操作。
在 hadoop的用户主目录下,创建数据目录,命令如下:
[hadoop@master ~]$ mkdir /home/hadoop/software/hadoopdata
[hadoop@salve1 ~]$ mkdir /home/hadoop/software/hadoopdata
[hadoop@slave2 ~]$ mkdir /home/hadoop/software/hadoopdata
2、 格式化hdfs文件系统(只在master上进行)
[hadoop@master ~]$ hdfs namenode -format
3、 启动hadoop(只在master上进行)
[hadoop@master ~]$start-all.sh
4、 查看启动情况
[hadoop@master ~]$ jps
29657 SecondaryNameNode
29478 NameNode
29792 ResourceManager
30052 Jps
[hadoop@slave1 ~]$ jps
6872 Jps
6740 DataNode
6838 NodeManager
[hadoop@slave2 ~]$ jps
6872 Jps
6740 DataNode
6838 NodeManager
l 在虚拟机浏览器地址栏中输入输入 http://master:50070/,(或master的IP),检查namenode 和 datanode 是否正常
在 HadoopMaster 上启动 Firefox 浏览器,在浏览器地址栏中输入输入 http://master:18088/,检查 Yarn 是否正常。
使用jps命令查看datanode节点是否都已经启动,发现都是正常启动的,但是:
然后又使用“hdfs dfsadmin -report”命令查看节点的报告信息,发现没有“存活”的datanode节点,同样通过http://master:50070/查看也是没有datanode节点。
回想了下,估计是之前删除hdfs上的部分文件,格式化hadoop namenode -format后,存在版本残留的问题。于是,停掉hadoop,删除dfs.namenode.name.dir设置的(file:///dfs/data)目录下的current 文件夹,从节点相应目录也要删除,再次执行格式化,重启hadoop,问题解决
***另一种原因是slave主机连接不上(原因竞然是slave上没做hosts)。
1、 配置主机名
Master 节点: master
Slave 节点: Slave1
Slave 节点: Slave2
设置主机名
[root@localhost ~]# hostname master
刷新
[root@localhost ~]# bash
查看主机名变化
[root@master ~]#
* Slave 节点,类同。
2、 配置 hosts 列表(三个虚拟机都配置相同内容)
[root@master ~]# vi /etc/hosts
1.第一二行添加#,注销前两行
2.添加内容
192.168.6.250 master
192.168.6.251 slave1
192.168.6.252 slave2
[root@master ~]# ping slave1
通过输入ctrl+c结束连接
[root@master ~]# ping slave2
3、 关闭防火墙(三台服务器都需要关闭)
查看防火墙状态:systemctl status firewalld.service
关闭防火墙:systemctl stop firewalld.service
禁用防火墙:systemctl disable firewalld.service
4、 做时间同步(在三台机器上分别安装)
[root@master ~]# yum -y install ntp ntpdate
[root@master ~]# ntpdate 0.asia.pool.ntp.org
5、 免密钥登录设置
该部分操作要在hadoop用户目录下操作(已创建hadoop用户的可不再添加)
创建hadoop用户
#useradd hadoop
输入密码
#passwd hadoop
进入hadoop用户
#su hadoop
[hadoop@master root]$cd
[hadoop@master ~]$ssh-keygen -t rsa
多次点击回车
[hadoop@master ~]$cd .ssh
[hadoop@master .ssh]$ cat id_rsa.pub >> authorized_keys
赋权限
[hadoop@master .ssh]$chmod 600 authorized_keys
****以上操作在所有机器上做*******
master:
将master公钥传输到slave1 和slave2上
[hadoop@master .ssh]$ scp authorized_keys hadoop@slave1:~/.ssh
[hadoop@master .ssh]$ scp authorized_keys hadoop@slave2:~/.ssh
*测试(不输入密码可直接登录slave1的hadoop用户)
[hadoop@master .ssh]$ ssh slave1
退出远程登录slave1
#exit
6、 安装 JDK
建立文件夹software:
[hadoop@master ~]$ mkdir software
上传jdk软件包:rpm两种,到/home/software
进入root用户安装jdk
[root@master software]$rpm -ivh jdk-8u144-linux-x64.rpm
*jdk安装目录
[root@master software]# cd /usr/java/jdk1.8.0_144/
[root@master jdk1.8.0_144]# pwd
/usr/java/jdk1.8.0_144
配置环境变量
[root@master jdk1.8.0_144]# cd
[root@master ~]# vi .bashrc
在文件最后添加:
export JAVA_HOME=/usr/java/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
[hadoop@master ~]$. .bashrc(点与点之间有空格,刷新环境变量的配置文件)
[hadoop@master ~]$ java -version
slave1 slave2新建software文件夹
[hadoop@slave1 ~]$ mkdir software
[hadoop@slave2 ~]$ mkdir software
进入java文件夹下:
[root@master ~]# cd /usr/java/
将jdk文件夹复制传输到slave1 slave2上:
[root@master usr]# scp -r java/ slave1:/usr/
[root@master usr]# scp -r java/ slave2:/usr/
复制配置文件到到其它机器:
切换到根目录
[root@master ~]# cd
复制文件
[root@master ~]$ scp .bashrc slave1:/root
[root@master ~]$ scp .bashrc slave2:/root
在slave1 slave2上刷新环境变量:
[root@slave1~]# cd
[root@slave1~]# . .bashrc
[root@slave1~]# java -version
1、 三台机器全部切换到hadoop用户下操作
2、 解压hadoop压缩包:
a) 进入压缩包所在文件夹
[hadoop@master ~]$cd /home/hadoop/software
b) 解压压缩包
[hadoop@master software]$ tar xzvf hadoop-2.7.3.tar.gz
3、 配置文件配置
a) 进入配置文件目录
[hadoop@master ~]$cd /home/hadoop/software/hadoop-2.7.3/etc/hadoop
b) 修改文件hadoop-env.sh
- [hadoop@master hadoop]$vi hadoop-env.sh
输入/进入搜索框搜索
输入export JAVA_HOME查看内容
将export JAVA_HOME=${JAVA_HOME}改为export JAVA_HOME=/usr/java/jdk1.8.0_144
c) 修改yearn-env.sh
[hadoop@master hadoop]$vi hadoop-env.sh
将#export JAVA_HOME=/home/y/libexec/jdk1.6.0/修改为export JAVA_HOME=/usr/java/jdk1.8.0_144
注意去除#,不删除无效果
d) 修改core-site.xml
在<configuration></configuration>添加内容,内容如下所示:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/software/hadoopdata</value>
</property>
</configuration>
e) 修改 hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
f) 修改 yarn-site.xml
- <configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:18141</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
</configuration>
g) 修改 mapred-site.xml
[hadoop@master hadoop]$ cp mapred-site.xml.template mapred-site.xml
[hadoop@master hadoop]$ vi mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
h) 修改slaves文件
- vi slaves
- 编辑slaves
文件删除,添加:
slave1
slave2
4、 复制到从节点
使用下面的命令将已经配置完成的 Hadoop 复制到从节点 Hadoop Slave 上:
[hadoop@master hadoop-2.7.3]$ cd /home/hadoop/software
[hadoop@master software]$ scp -r hadoop-2.7.3 slave1:/home/hadoop/software/
[hadoop@master software]$ scp -r hadoop-2.7.3 slave2:/home/hadoop/software/
注意:因为之前已经配置了免密钥登录,这里可以直接远程复制。
5、 配置 Hadoop 启动的系统环境变量
[hadoop@master ~]$vi .bashrc
将下面的代码追加到.bashrc 末尾:
export HADOOP_HOME=/home/hadoop/software/hadoop-2.7.3
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
然后执行命令:
[hadoop@master ~]$ . .bashrc
1、 创建数据目录
该节的配置需要同时在HadoopMaster 和 HadoopSlave上分别进行操作。
在 hadoop的用户主目录下,创建数据目录,命令如下:
[hadoop@master ~]$ mkdir /home/hadoop/software/hadoopdata
[hadoop@salve1 ~]$ mkdir /home/hadoop/software/hadoopdata
[hadoop@slave2 ~]$ mkdir /home/hadoop/software/hadoopdata
2、 格式化hdfs文件系统(只在master上进行)
[hadoop@master ~]$ hdfs namenode -format
3、 启动hadoop(只在master上进行)
[hadoop@master ~]$start-all.sh
4、 查看启动情况
[hadoop@master ~]$ jps
29657 SecondaryNameNode
29478 NameNode
29792 ResourceManager
30052 Jps
[hadoop@slave1 ~]$ jps
6872 Jps
6740 DataNode
6838 NodeManager
[hadoop@slave2 ~]$ jps
6872 Jps
6740 DataNode
6838 NodeManager
l 在虚拟机浏览器地址栏中输入输入 http://master:50070/,(或master的IP),检查namenode 和 datanode 是否正常
在 HadoopMaster 上启动 Firefox 浏览器,在浏览器地址栏中输入输入 http://master:18088/,检查 Yarn 是否正常。
使用jps命令查看datanode节点是否都已经启动,发现都是正常启动的,但是:
然后又使用“hdfs dfsadmin -report”命令查看节点的报告信息,发现没有“存活”的datanode节点,同样通过http://master:50070/查看也是没有datanode节点。
回想了下,估计是之前删除hdfs上的部分文件,格式化hadoop namenode -format后,存在版本残留的问题。于是,停掉hadoop,删除dfs.namenode.name.dir设置的(file:///dfs/data)目录下的current 文件夹,从节点相应目录也要删除,再次执行格式化,重启hadoop,问题解决
***另一种原因是slave主机连接不上(原因竞然是slave上没做hosts)。
拍摄快照:保留当前时刻的虚拟机状态,可在下次使用时直接恢复到当前状态下。每台机器都需要拍摄快照。
拍摄快照:保留当前时刻的虚拟机状态,可在下次使用时直接恢复到当前状态下。每台机器都需要拍摄快照。
原文:https://www.cnblogs.com/felixyiding/p/13732819.html