Ubuntu 16.04 + Hadoop 2.7.2 全分布式搭建

最近读了吴军博士的《智能时代》,很想要学习大数据,正好选了云计算的课程,可以摸索前进。

先介绍一下,Hadoop的三种分布模式:

1. 单机模式:这种模式在一台单机上运行,没有分布式文件系统,而是直接读写本地操作系统的文件系统。

2.伪分布式:指Hadoop运行在一个计算机上,即当NameNode,又当DataNode,或者说既是JodTracker,又是TaskTracker。没有所谓的在多台计算机上进行的真正的分布式运算,故称“伪分布式”。

3. 完全分布式:Hadoop对应的多个Java进程运行在不同的物理机上。


下面详细解说Hadoop完全分布式的搭建过程。

1.安装VMware workstations。

2.在安装好的VMware中安装Linux虚拟机,Ubuntu16.04,只需要安装一个即可,后期的话,可以用克隆方式增加个数。

3.在安装好的Linux虚拟机上安装JDK环境,首先用tar -zxvf jdk-8u111-linux-x64.tar.gz,之后将解压后的包移动到/usr/local

配置JDK环境:用sudo gedit /etc/profile 打开profile文件,在文件末尾添加如下:

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

export JRE_HOME=$JAVA_HOME/jre

export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib


之后用source /etc/profile命令保存profile文件,使用java -version查看JDK配置结果

hadoop@master:~$ java -version

java version "1.8.0_111"

Java(TM) SE Runtime Environment (build 1.8.0_111-b14)

Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)


4.配置Hadoop环境,同样解压Hadoophadoop-2.7.0.tar.gz,放置/usr/local中

配置Hadoop环境:用sudo gedit /etc/environmen,在文件末尾添加PATH和HADOOP_INSTALL环境变量如下图:


用source命令保存之后,用hadoop version命令查看Hadoop配置结果如下:

Hadoop 2.7.3
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r baa91f7c6bc9cb92be5982de4719c1c8af91ccff
Compiled by root on 2016-08-18T01:41Z
Compiled with protoc 2.5.0
From source with checksum 2e4ce5f957ea4db193bce3734ff29ff4
This command was run using /usr/local/hadoop-2.7.3/share/hadoop/common/hadoop-common-2.7.3.jar

5.配置Hadoop中的配置文件

主要配置四个文件,在Hadoop2.7.3/etc/hadoop中分别为core-site.xml       hdfs-core.xml    yarn-site.xml     mapred-site.xml.template

同样用sudo gedit命令打开xml文件

(1)core-site.xml 

<property>
<name>fs.defaultFS</name>
<value>hdfs://master/</value>
</property>

输入如上所述的属性,就是配置了集群的master节点。注意,此处的master是我们作为集群主要节点的计算机名称,我的master节点的计算机名称就是master.

(2)hdfs-core.xml

<property>
<name>dfs.replication</name>
<value>2</value>
</property>

这里是配置有多少个datanode节点,这里默认为master节点就是NameNode节点,slave节点就是datanode节点。我们这里有两个datanode节点。

(3)yarn-site.xml  

<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

上面是设置hostname为master

(4)mapred-site.xml.template

<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

(5)配置slaves文件,同样sudo gedit打开该文件,配置如下

slave1
slave2

告诉master机器节点是什么

(6)配置hadoop-env.sh文件

将JAVA_HOME换成/usr/local/jdk1.8.0_111

6.配置ssh免密登录

首先通过命令 sudoapt-get install ssh 安装ssh

接下来用命令ssh-keygen -t rsa生成本机密钥,一路回车就好

用命令cat id_rsa.pub >> authorized_keys进行授权

配置好了之后可以用ssh localhost用来测试,如果无需密码弹出如下信息则配置成功

Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.4.0-21-generic x86_64)


 * Documentation:  https://help.ubuntu.com/


302 packages can be updated.
4 updates are security updates.


*** System restart required ***
Last login: Sat Dec  3 06:16:02 2016 from 127.0.0.1

7.克隆虚拟机两份,作为slave节点

8.修改主机名称

使用sudo gedit /etc/hostname修改主机名称,主机为master。其余的两台分别为slave1和slave2

9.修改hosts

同样用sudo gedit /etc/hosts ,修改内容如下,其中IP可以使用ifconfig命令查看

192.168.71.134 master
192.168.71.135 slave1
192.168.71.136 slave2

三台虚拟机都要修改

至此,Hadoop的配置环境就建立好了

验证:在master节点中格式化namenode节点

hadoop namenode -format

之后启动hadoop集群

start-all.sh

之后可以使用jps命令查看每台机器上的Java进程

master节点:

30976 Jps
29922 NameNode
30134 SecondaryNameNode
30286 ResourceManager

slave1节点:

2567 Jps
2346 NodeManager
2171 DataNode

slave2节点:2306 NodeManager
2107 DataNode
2557 Jps

阅读更多
换一批

没有更多推荐了,返回首页