首页 >  新闻  >  正文

好程序员大数据培训:Hadoop分布式集群搭建

2018-07-09 好程序员,大数据,论坛

在做任何一个分布式集群之前都要有规划,只有规划清晰,才能快速搭建出我们想要的集群环境。

[an error occurred while processing the directive][an error occurred while processing the directive]

在做任何一个分布式集群之前都要有规划,只有规划清晰,才能快速搭建出我们想要的集群环境。

1、准备三台Centos6.7 64bit虚拟机,虚拟机名分别为:

Centos6.7_mini1

Centos6.7_mini2

Centos6.7_mini3

注意 三台机器使用root用户登陆系统

分别修改虚拟机主机名(hostname)

以Centos6.7_mini1为例演示修改hostname

vi  /etc/sysconfig/network   #编辑network文件

然后重启Linux系统,重启命令reboot

以此类推,修改Centos6.7_mini2,Centos6.7_mini3

分别配置三台机器的静态IP地址规划三台电脑的静态IP

2)以centos6.7_min1为例配置静态ip地址,其他机器配置步骤一致

vi /etc/sysconfig/network-scripts/ifcfg-eth0   #编辑ifcfg-eth0文件

EVICE="eth0"

BOOTPROTO="dhcp"

HWADDR="00:0C:29:EB:D3:D7"

IPV6INIT="yes"

NM_CONTROLLED="yes"

ONBOOT="yes"

TYPE="Ethernet"

UUID="95a46579-67e8-43c7-a747-e00f2e120cd6"

BOOTPROTO=static

IPADDR=192.168.131.128

DNS1=8.8.8.8

GATEWAY=192.168.131.2

NETMASK=255.255.255.0

ARPCHECK=no

可通过VMWare中的编辑-->虚拟机网络编辑器来查看虚拟机的网段

GATAWAY就等于你刚刚复制的网关。

3)分别修改三台电脑的hosts文件

vim  /etc/hosts   #在每台机器的hosts文件添加ip与hostname的映射

4)如果mini2和mini3是克隆mini1的系统的话,需要重新设置网卡,如果是安装的新系统此步骤可省略。

首先通过 ifconfig -a 查看网卡信息

系统内核无法找到eth0,只有默认的eth1和lo。

怎么才能修改为eth0呢?(内核无法识别eth0,可能会导致许多工作无法正常进行)

解决方案如下:

切换至设备管理器文件设置内核识别信息内容

编辑70-persistent-net.rules文件

将刚修改的地址配置到我们的静态ip中

vim /etc/sysconfig/network-scripts/ifcfg-eth0

保存,reboot 重启电脑。

至此,三台电脑网络环境都已准备就绪。

安装JDK

将我们的jdk压缩包,上传到mini1上,并解压,然后配置环境变量。(此步骤省略)

配置免密登陆

通过ssh-keygen -t rsa 命令生成公钥和私钥,

然后通过

ssh-copy-id mini1

ssh-copy-id mini2

ssh-copy-id mini3

实现mini1到mini1,mini2,mini3的免密登陆。

安装Hadoop上传hadoop-2.7.1.tar.gz到Centos6.7_min1机器的/home/root目录下解压hadoop-2.7.1.tar.gz安装包

cd /home/root#切换到目录

tar -zxvf  hadoop-2.7.1.tar.gz  -C  /usr/local/#解压

设置hadoop-env.sh配置文件

cd   /usr/local/hadoop-2.7.1/etc/hadoop  #切换目录

vi   hadoop-env.sh  #添加如下内容

设置core-site.xml配置文件

vi core-site.xml   #添加如下内容

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://mini1:9000</value>

</property>

</configuration>

该节点为分布式集群环境是hdfs的入口,必须配置。

5、配置 hdfs-site.xml

配置slaves文件,因为有三个datanode节点,所以配置三个

vim  slaves

设置mapred-site.xml配置文件

mv  mapred-site.xml.template   mapred-site.xml

#默认mapred-site.xml不存在,使用

#mapred-site.xml.template生成

vi  mapred-site.xml  #添加如下内容

设置yarn-site.xml配置文件

vi   yarn-site.xml  #添加如下内容

至此,hadoop软件中的配置基本完成,接着通过scp远程拷贝到mini2和mini3

为了拷贝节约时间,可以删除hadoop中的文档内容

rm -rf  /usr/local/hadoop-2.7.2/share/doc/

接着开始拷贝

scp /usr/local/hadoop-2.7.2/    mini2:/usr/local/

scp /usr/local/hadoop-2.7.2/    mini3:/usr/local/

配置hadoop环境变量

vi    /etc/profile

接着source  /etc/profile

通过hadoop  verison 验证是否配置正常

以此类推,配置mini2和mini3

至此,我们的集群就配置完成了。

集群的启动与测试启动集群hadoop namenode  -format  #务必先格式化namenodestart-all.sh

#因为之前配置了hadoop环境变量,所以此命令可以在任何一个文件夹下输入

使用jps查看三台电脑的进程

mini1:

mini2:

mini3:

通过以上进程,我们对照我们之前的规划,发现启动无误。

验证hadoop平台的可用性

首先验证hdfs平台可用性:

cd   /usr/local/hadoop-2.7.2/

hdfs  dfs  -put  README.txt  /

接着验证yarn平台可靠性

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /README.txt /out/00

结果运行正常,说明平台无问题。

也可直接通过web UI界面验证平台是否正常:

输入http://192.168.131.128:50070 ,出现如下界面,说明HDFS正常

输入http://192.168.131.129:50090,出现如下界面,说明SecondaryNameNode无异常

输入http://192.168.131.128:8088,出现如下界面,说明Yarn平台正常

总结:其实分布式集群的搭建和我们伪分布式的搭建区别不大,伪分布式集群,我们是在一台Linux系统上搭建一个集群环境,所有节点都在一台电脑上,分布式集群无非是将一台服务器上的内容放置在了多台上,所以我们在搭建分布式集群时,可以多多参考之前的伪分布式集群的搭建方式,并参照Hadoop官网文档,我想你会豁然开朗。

b70831a9608fa9997876b0921ae14699

  (点击报名立享)

好程序员特训营自2014年开班至今,一直立志培养高薪,高能,高职的程序员人才,截至目前,好程序员学员就业均薪1万3以上,学员薪资最高达到2万9千元。现开设Html5、JavaEE、大数据等高端精品课程,保证高品质,坚持100%全程面授。

好程序员,从平凡到卓越,为梦想而拼搏!

推荐阅读

数据分析师工作内容及择业指南
好程序员揭秘大数据特种兵是如何炼成
没有基础适不适合学编程?
好程序员的讲师怎么样?
好程序员的学习方式

在线申请