首页 > 其他 > 详细

03hadoop搭建

时间:2020-09-26 09:36:09      阅读:30      评论:0      收藏:0      [点我收藏+]

Hadoop with vms

 

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上刷新环境变量:

  1. 切换根目录

[root@slave1~]# cd

[root@slave1~]# . .bashrc

[root@slave1~]# java  -version

 

 

 

Hadoop安装配置

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

  1. 复制修改为:

[hadoop@master hadoop]$ cp mapred-site.xml.template mapred-site.xml

  1. 编辑文件

[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

启动hadoop集群

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)。

 

Hadoop with vms

 

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上刷新环境变量:

  1. 切换根目录

[root@slave1~]# cd

[root@slave1~]# . .bashrc

[root@slave1~]# java  -version

 

 

 

Hadoop安装配置

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

  1. 复制修改为:

[hadoop@master hadoop]$ cp mapred-site.xml.template mapred-site.xml

  1. 编辑文件

[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

启动hadoop集群

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)。

 

 

 

 

 

 

 

 

 

 

 

 

拍摄快照:保留当前时刻的虚拟机状态,可在下次使用时直接恢复到当前状态下。每台机器都需要拍摄快照。

 

 

 

 

 

 

 

 

 

 

 

 

 

拍摄快照:保留当前时刻的虚拟机状态,可在下次使用时直接恢复到当前状态下。每台机器都需要拍摄快照。

 

03hadoop搭建

原文:https://www.cnblogs.com/felixyiding/p/13732819.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!