hadoop完全分布式平台搭建详细讲解

此教程为 hadoop 完全分布式在VMware 虚拟机上的搭建过程


思路 :

 

                在虚拟机上 , 配置一个老大 , 两个小弟 ! ( 一个NameNode节点 , 两个DataNode 节点  )

                    主机名:

                miaomiao1  NameNode节点        ---老大

                miaomiao2  DataNode 节点         ---小弟

                miaomiao3  DataNode 节点         ---小弟

 

一定要修改好三台主机的 主机名 以及 host

  1. vim /etc/sysconfig/network   #这种方法是永久修改,必须重启才生效  
  2. hostname miaomiao    #临时修改,立刻生效 

细节 :

1 , 首先需要先在 VMwear 上安装一个 centos , 然后在修改主机名为  miaomiao1 , 网络适配器选择使用 桥接模式 , 然后勾中复制网络网络连接状态 .

 

2 , 网络配置 :

DEVICE=eth0

HWADDR=00:0C:29:6F:98:8B

TYPE=Ethernet

UUID=d3097e8a-39d2-4682-88d3-65115d866008

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=dhcp

DNS1=8.8.8.8

DNS2=114.114.114.114

NETMASK=255.255.255.0

GATEWAY=10.0.118.1

 

只需要在之前的网络配置文件后面添加如下即可 :

DNS1=8.8.8.8

DNS2=114.114.114.114

NETMASK=255.255.255.0

GATEWAY=10.0.118.1

 

并且将  ONBOOT=no   改成   ONBOOT=yes     ----为了重启后主机自动联通网络

然后  [root@miaomiao1 ~]# chkconfig network on     网络的基本配置就大功告成 !

 

3 , 关闭防火墙 :

# 查看防火墙状态

service iptables status  

# 停止防火墙

service iptables stop  

# 启动防火墙

service iptables start  

# 重启防火墙

service iptables restart  

# 永久关闭防火墙

chkconfig iptables off  

# 永久关闭后重启

chkconfig iptables on
#查看防火墙状态的另一种方式 , 很实用 

chkconfig --list iptables   

 

4 , 修改 host :

[root@miaomiao1 ~]# vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

10.0.118.232  miaomiao1  www.miaomiao1.com

10.0.118.231  miaomiao2  www.miaomiao2.com

10.0.118.230  miaomiao3  www.miaomiao3.com

 

5 , 克隆出两台虚拟机  主机名分别是 miaomiao2 和 miaomiao3 .

 

6 , SSH  无密远程登录的设置 :  ......

 

6 , 上传 JDK 和 Hadoop  到 miaomiao1 主机下的 /home 目录下 , 然后在 miaomiao1 主机上准备安装: ......

 

7 , JDK 的安装以及环境变量的设置 :  ......

 

8 , Hadoop  的安装以及环境变量的设置 : ......

 

9 , hadoop 配置文档的修改 : ( 五大配置文件的修改如下 : )

( 1 ) 配置 JDK

 [root@miaomiao1 ~]# vi /usr/local/hadoop-2.7.1/etc/hadoop/hadoop-env.sh

[root@miaomiao1 ~]# vi /usr/local/hadoop-2.7.1/etc/hadoop/yarn-env.sh

# The java implementation to use.

export JAVA_HOME=/usr/local/jdk1.8.0_152/

 

( 2 )[root@miaomiao ~]# vi /usr/local/hadoop-2.7.1/etc/hadoop/core-site.xml

<configuration>

<!--指定namenode的命名空间地址 , 指定HDFS老大(namenode)的通信地址-->

<property>

<name>fs.defaultFS</name>

<value>hdfs://miaomiao1:9000</value>

</property>

 

<!--指定存储文件i/o缓冲大小-->

<property>

<name>io.file.buffer.size</name>

<value>4096</value>              <value>131072</value>

</property>

 

<!--指定临时目录 ,

指定hadoop运行时产生文件的存储路径-->

<property>

<name>hadoop.tmp.dir</name>

<value>${HADOOP_HOME}tmp</value>

</property>

</configuration>

 

( 3 )[root@miaomiao ~]# vi /usr/local/hadoop-2.7.1/etc/hadoop/hdfs-site.xml

<configuration>

<!--设置hdfs副本数量-->

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

 

<!--指定block块-->

<property>

<name>dfs.blocksize</name>

<value>134217728</value>

</property>

 

<!--指定namenode的元数据的存储目录,可以使用 , 分割, 分开写多个 ,设置namenode存放的路径-->

<property>

<name>dfs.namenode.name.dir</name>

<value>/home/hadoopdata/dfs/name</value>

</property>

 

<!--指定datanode的数据块存储目录 , 设置datanode存放的路径-->

<property>

<name>dfs.namenode.name.dir</name>

<value>/home/hadoopdata/dfs/data</value>

</property>

 

<!--是否开启hdfs的权限-->

<property>

<name>dfs.permissions.enabled</name>

<value>true</value>

</property>

 

<!--设置namenode的http通讯地址-->

<property>

<name>dfs.namenode.http-address</name>

<value>miaomiao1:50070</value>

</property>

 

<!--指定secondarynamemode  的web ui 监控 ,设置secondarynamenode的http通讯地址-->

<property>

<name>dfs.namenode.secondary.http-address</name>

<value>miaomiao2:50090</value>

</property>

 

<!--是否开启webhdfs的 ui 监控-->

<property>

<name>dfs.webhdfs.enabled</name>

<value>true</value>

</property>

 

<!--指定edits的本地存储目录-->

<property>

<name>dfs.namenode.checkpoint.edits.dir</name>

<value>/home/hadoopdata/dfs/namesecondary/edits</value>

</property>

 

<!--指定检测目录-->

<property>

<name>dfs.namenode.checkpoint.dir</name>

<value>/home/hadoopdata/dfs/namesecondary</value>

</property>

</configuration>

 

( 4 )先备份 :  ( 此处备份的时候很多人使用 mv , 但是要注意 , mv 使用的时候要使用相对路径, 且原始文件会被删除, 相当于给文件改名字, 并且存放到另一个位置, 我个人喜欢使用 cp  )

[root@miaomiao ~]# cp /usr/local/hadoop-2.7.1/etc/hadoop/mapred-site.xml.temlate    /usr/local/hadoop-2.7.1/etc/hadoop/mapred-site.xml

 

[root@miaomiao ~]# vi /usr/local/hadoop-2.7.1/etc/hadoop/mapred-site.xml

<configuration>

<!--指定mapreduce 的运行框架名 ,通知框架MR使用YARN-->

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

<final>true</final>

</property>

 

<!--指定historyserver 运行的内部通信地址-->

<property>

<name>mapreduce.jobhistory.webapp.address</name>

<value>miaomiao1:10020</value>

</property>

 

<!--指定history 运行的web ui 通信地址-->

<property>

<name>mapreduce.jobhistory.webapp.address</name>

<value>miaomiao1:19888</value>

</property>

</configuration>

 

 

( 5 )[root@miaomiao ~]# vi /usr/local/hadoop-2.7.1/etc/hadoop/yarn-site.xml

<configuration>

<!--指定mapreduce使用shuffle , reducer取数据的方式是mapreduce_shuffle-->

    <property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

    </property>

 

<!--指定yarn的rm所启动的主机 , 设置 resourcemanager 在哪个节点-->

<property>

<name>yarn.resourcemanager.hostname</name>

<value>miaomiao1</value>

</property>

 

<!--指定rm的内部通信地址-->

<property>

<name>yarn.resourcemanager.address</name>

<value>miaomiao1:8032</value>

</property>

 

<property>

<name>yarn.resourcemanager.scheduler.address</name>

<value>miaomiao1:8030</value>

</property>

 

<property>

<name>yarn.resourcemanager.resource-tracker.address</name>

<value>miaomiao1:8031</value>

</property>

 

<property>

<name>yarn.resourcemanager.admin.address</name>

<value>miaomiao1:8033</value>

</property>

 

<property>

<name>yarn.resourcemanager.webapp.address</name>

<value>miaomiao1:8088</value>

</property>

 

<!--附加 , 哈-->

<property>

<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

<value>org.apache.hadoop.mapred.ShuffleHandler</value>

</property>

</configuration>

 

 

( 6 )[root@miaomiao ~]# vi /usr/local/hadoop-2.7.1/etc/hadoop/slaves      ( 这个很重要的 ! )

 

miaomiao1

miaomiao2

miaomioa3

 

10 ,  将配置好的 hadoop 的根目录远程发送给另外的所有服务器 :

[root@miaomiao ~]# scp -r /usr/local/jdk1.8.0_152/     miaomiao3:/usr/local/

[root@miaomiao ~]# scp -r /usr/local/jdk1.8.0_152/     miaomiao3:/usr/local/

[root@miaomiao ~]# scp -r /usr/local/hadoop-2.7.1/   miaomiao3:/usr/local/

[root@miaomiao ~]# scp -r /usr/local/hadoop-2.7.1/   miaomiao3:/usr/local/

 

注意 : scp 只会把相应安装进行同步 , 但是有些东西是不会同步的 , 比如 JDK , Hadoop 的环境变量的东西 , 你可以在老二和老三上  -version 一下 , 因此必须要做第 11 , 步的操作  !!!

 

11 , 在所有副机上做  :

            

 

12 , 格式化 namenode  , 只格式化一次 , 第一次启动得格式化

hdfs namenode -format

hadoop namenode -format

 

 

12.5 , 历史服务器 , 号称hadoop黑匣子 : ( 守护进程 ) Hadoop自带了一个历史服务器,可以通过历史服务器查看已经运行完的Mapreduce作业记录,比如用了多少个Map、用了多少个Reduce、作业提交时间、作业启动时间、作业完成时间等信息。默认情况下,Hadoop历史服务器是没有启动的,我们可以通过下面的命令来启动Hadoop历史服务器

$ sbin/mr-jobhistory-daemon.sh  start historyserver    或    mr-jobhistory-daemon.sh start historyserver

这样我们就可以在相应机器的19888端口上打开历史服务器的WEB UI界面。可以查看已经运行完的作业情况。

 

 

13 , 开启hodoop 所有进程

start-dfs.sh  --- 启动dfs

start-yarn.sh   --- 启动yarn

 

 

14 , 查看进程启动情况 : jps

[root@miaomiao1 ~]# jps

14129 JobHistoryServer

10497 DataNode

78051 Jps

10966 ResourceManager

12950 NameNode

11065 NodeManager

[root@miaomiao1 ~]#

 

[root@miaomiao2 ~]# jps

2849 SecondaryNameNode

2788 DataNode

41113 Jps

2975 NodeManager

[root@miaomiao2 ~]#

 

[root@miaomiao3 ~]# jps

2762 DataNode

39371 Jps

2846 NodeManager

[root@miaomiao3 ~]#

 

 

15 , 向hadoop集群系统提交第一个mapreduce任务(wordcount)

进入本地hadoop目录(/usr/hadoop)

1、  hdfs  dfs  -mkdir  -p  /data/input   在虚拟分布式文件系统上创建一个测试目录/data/input

2、  hdfs  dfs  -put  README.txt   /data/input   将当前目录下的README.txt 文件复制到虚拟分布式文件系统中

3、  hdfs  dfs  -ls  /data/input    查看文件系统中是否存在我们所复制的文件

如图操作:

4、  运行如下命令向hadoop提交单词统计任务

进入jar文件目录,执行下面的指令。

hadoop jar  /usr/local/hadoop-2.7.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar   wordcount  /data/input   /data/output/result

查看result,结果在result下面的part-r-00000中

hdfs dfs -cat /data/output/result/part-r-00000



16 , 检测 :

自此,hadoop集群搭建成功!

 

 

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 护眼 设计师:闪电赇 返回首页