大数据技术 VirtualBox 5.1.18+Centos 6.8+hadoop 2.7.3搭建hadoop完全分布式集群
沉沙 2018-09-21 来源 : 阅读 1003 评论 0

摘要:本篇教程探讨了大数据技术 VirtualBox 5.1.18+Centos 6.8+hadoop 2.7.3搭建hadoop完全分布式集群,希望阅读本篇文章以后大家有所收获,帮助大家对大数据技术的理解更加深入。

本篇教程探讨了大数据技术 VirtualBox 5.1.18+Centos 6.8+hadoop 2.7.3搭建hadoop完全分布式集群,希望阅读本篇文章以后大家有所收获,帮助大家对大数据技术的理解更加深入。

<

1.基本设定和软件版本

主机名
 

ip
 

对应角色

master
 

192.168.56.4
 

NameNode

slave1
 

192.168.56.3
 

DataNode1

slave2
 

192.168.56.5
 

DataNode2

    Windows主机设置的ip为192.168.56.88
    hadoop压缩包解压地址:/usr/local/hadoop
    虚拟机用户都为ljy
    VirtualBox-5.1.18、CentOS-6.8、hadoop-2.7.3.tar.gz、jdk1.7.0_79,且都是64位版本。
    Centos6.8:链接://pan.baidu.com/s/1qYdjAY4 密码:7gxm
    此处连接方式使用Host-only模式,虚拟机不能联网;如使用网络地址转换(NAT),虚拟机可以联网。

 

图1 Host-Only

 

图2 windows ip

2.VirtualBox安装Centos6.8

    这个网上教程太多,这里不详细介绍了。

3.FileZilla

    FileZilla是一款免费开源的ftp软件,此处用于Windows电脑和Centos虚拟机之间互传文件。

 

图3 FileZilla

4.安装jdk1.7.0-79

    l 查看系统自带的jdk并将其全部卸载:rpm -qa | grep jdk
    l 下载jdk包,并将其解压到/usr/java路径下。
    l 配置全局java环境变量(以root用户执行):vim /etc/profile
    l 在profile中的添加以下内容:

    export JAVA_HOME=/usr/java/jdk1.7.0_79
    export JRE_HOME=/usr/java/jdk1.7.0_79/jre

    l 使profile配置生效:source /etc/profile
    l 检测已经安装的jdk:java -version
    l 注意:其他DataNode执行上述同样操作。

 

图4  /etc/profile文件中添加的内容

 

图5 安装的jdk

5.设置NameNode的ip

方法一:

    l 切换到root,输入密码:su
    l 进入设置界面:setup
    l 选择网络设置
    l 选择设备设置
    l 选择eth0
    l 进行网络配置
    l 注意:其他DataNode执行上述同样操作。

 

图6 选择网络设置

 

图7 选择设备设置

 

图8 选择eth0

 

图9 NameNode的网络设置

方法二:

    l 打开网络连接,直接设置

 

图10 网络连接设置

方法三:

    l 编辑eth0文件:sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0
    l 在文件中修改BOOTPROTO=static,添加IPADDR、NETMASK和GATEWAY。

 

图11 配置eth0

 

图12 windows电脑ping通NameNode

6.给用户增加sudo权限(此处用户名为ljy)

    l 切换到root,输入密码:su
    l 给sudoers增加写权限:chmod u+w  /etc/sudoers
    l 编译sudoers文件:vim  /etc/sudoers 
    l 在#%wheel ALL=(ALL)  NOPASSWD: ALL下方增加 xxx   ALL=(ALL)  NOPASSWD: ALL,注意xxx为用户,此处为ljy
    l 去掉sudoers文件的写权限:chmod u-w /etc/sudoers
    l 注意:其他DataNode执行上述同样操作。

 

图13 /etc/sudoers文件中增加的语句

 

7.配置每台机器的机器名和对应IP

    l 编辑hosts文件:sudo vim /etc/hosts
    l 编辑network文件,修改HOSTNAME为master:sudo vim /etc/sysconfig/network,注意:此处例子master为NameNode机器的机器名。
    l 使文件立即生效:source /etc/sysconfig/network
    l 注意:其他DataNode执行上述同样操作。只有/etc/sysconfig/network中的hostname需要改为对应机器的机器名,例如:slave1。

 

图14 在/etc/hosts文件中添加的内容

 

图15 /etc/sysconfig/network文件中修改HOSTNAME为master

 

图16 修改机器名和对应IP

8.永久关闭防火墙

    l 永久关闭防火墙,重启后生效:chkconfig iptables off
    l 即时性关闭防火墙,重启后失效:service iptables stop 
    l 此处执行这两条语句就不用重启了。
    l 注意:其他DataNode执行上述同样操作。

 

图17 永久关闭防火墙

9.配置SSH免密码登录

    检查是否安装了ssh,若没有安装,则安装(以下指令并非都要执行):
    l 检查是否安装ssh:rpm -qa| grep ssh 
    l 查看ssh运行状态:service sshd status
    l 安装ssh:yum install ssh
    l 查看是否开机启动:chkconfig --list sshd
    l 设置开机启动:chkconfig sshd on
    l 注意:其他DataNode执行上述同样操作。

 

图18 设置ssh开机启动

配置ssh免密码登录:

    l 进入~/.ssh目录:cd ~/.ssh
    l 每台机器执行:ssh-keygen -t rsa,一路回车。
    l 生成两个文件,一个私钥,一个公钥,把id_rsa,pub文件追加到授权key(authorized_keys):cat  ~/.ssh/id_rsa.pub  >>  ~/.ssh/authorized_keys
    l 通过ssh localhost命令登录本机,首次时会让输入yes/no,但是不需要密码:ssh localhost
    l 如果目录没有通过NFS共享,需要利用此方法共享公钥(此处是master把公钥发给slave1,别的就类似互相共享):ssh-copy-id slave1。
    l 注意:其他DataNode执行上述同样操作。

 

图19 ssh-keygen -t rsa命令执行后~/.ssh文件中

 

图20 设置ssh无密码登录

 

图21 master把公钥发送给slave1

 

图22 ssh免密码登录

10.安装hadoop 2.7.3

    l 转换到用户ljy下:su - ljy
    l 获取管理员权限:su
    l 输入管理员密码:
    l 新建hadoop文件夹:mkdir  /usr/local/hadoop 
    l 将hadoop包移动到hadoop文件夹中:mv  /home/ljy/下载/hadoop-2.7.3.tar.gz  /usr/local/hadoop
    l 移动到hadoop文件中:cd  /usr/local/hadoop
    l 解压hadoop包:tar  zxvf  hadoop-2.7.3.tar.gz
    l 将hadoop-2.7.3重命名为hadoop: mv  hadoop-2.7.3  hadoop
    l 注意:其他DataNode执行上述同样操作。

将hadoop文件的拥有者改为ljy用户和组

    l 引动到hadoop解压的路径:cd /usr/local/hadoop
    l 将hadoop文件的拥有者改为ljy用户:sudo chown -R ljy:ljy hadoop
    l 查看/hadoop目录下所有用户属于ljy的文件或者文件夹:find /hadoop -user ljy

配置环境变量

    l 编辑/etc/profile文件:vim /etc/profile
    l 在profile文件中添加的内容:export HADOOP_HOME=/usr/local/hadoop/hadoop、export PATH=$HADOOP_HOME/bin:$PATH
    l 使环境变量生效:source /etc/profile
    l 注意:其他DataNode执行上述同样操作。

 

图23 hadoop文件夹中的文件目录

 

图24 /etc/profile文件中添加的内容

配置Hadoop:

    l 移动到hadoop配置文件路径:cd  /usr/local/hadoop/hadoop/etc/hadoop
    l 查看当前文件夹中的文件目录:ls

 

图25 hadoop配置文件夹中的文件目录

    l 配置hadoop-env.sh:export JAVA_HOME=/usr/java/jdk1.7.0_79
    l 添加masters,内容为slave1:vim masters
    l 配置通用属性:vim core-site.xml

复制代码

 1  <configuration>  
 2 
 3       <property>  
 4 
 5         <!-- NameNode 地址 -->
 6 
 7         <name>fs.defaultFS</name>  
 8 
 9         <value>hdfs://master:9000</value>  
10 
11       </property>  
12 
13       <property>  
14 
15         <!-- 临时目录设定 -->
16 
17         <name>hadoop.tmp.dir</name>  
18 
19         <value>file:/usr/local/hadoop/hadoop/tmp</value>  
20 
21       </property>  
22 
23       <property>
24 
25         <name>fs.checkpoint.period</name>
26 
27         <value>3600</value>
28 
29       </property>
30 
31       <property>
32 
33         <name>fs.checkpoint.size</name>  //以日志大小间隔  做备份间隔
34 
35         <value>67108864</value>
36 
37         </property>
38 
39 </configuration>  

复制代码

 

图26 core-site.xml配置内容

    l 配置HDFS属性:vim hdfs-site.xml

 
复制代码

 1  <configuration>  
 2      <property>
 3        <name>dfs.namenode.secondary.http-address</name>
 4        <value>slave1:50090</value>
 5       //注意:此处机器名要为另一个。
 6      </property>
 7      <property>
 8        <name>dfs.http.address</name>
 9        <value>master:50070</value>
10      </property>
11      <property>
12        <!-- 缺省的块复制数量,默认为3 -->  
13        <name>dfs.replication</name>  
14        <value>2</value>  
15      </property>  
16      <property>
17        <!-- -->  
18        <name>dfs.webhdfs.enable</name>  
19        <value>true</value>  
20      </property>
21      <property>
22        <!-- 关闭hdfs权限验证  -->  
23        <name>dfs.permissions</name>  
24        <value>false</value>  
25      </property>
26      <property>  
27        <!-- 存贮在本地的名字节点数据镜象的目录,作为名字节点的冗余备份 -->
28        <name>dfs.namenode.name.dir</name>  
29        <value>file:/usr/local/hadoop/hadoop/hdfs/name</value>  
30      </property>  
31      <property> 
32        <!-- 数据节点的块本地存放目录 -->
33        <name>dfs.datanode.data.dir</name>  
34        <value>file:/usr/local/hadoop/hadoop/hdfs/data</value>  
35      </property>  
36    </configuration> 

复制代码

 

 

 

图27 hdfs-site.xml配置内容

    l 复制mapred-site.xml.template并重命名为mapred-site.xml:cp mapred-site.xml.template mapred-site.xml
    l 配置MapReduce属性:vim mapred-site.xml

复制代码

 1  <configuration>
 2 
 3     <property>
 4 
 5       <name>mapreduce.framework.name</name>
 6 
 7       <value>yarn</value>
 8 
 9 </property>
10 
11     <property>
12 
13       <name>mapreduce.jobhistory.address</name>
14 
15       <value>master:10020</value>
16 
17     </property>
18 
19     <property>
20 
21        <name>mapreduce.jobhistory.webapp.address</name>
22 
23        <value>master:19888</value>
24 
25     </property>
26 
27   </configuration>

复制代码

图28 mapred-site.xml配置内容

 

图29 配置core-site.xml、hdfs-site.xml、mapred-site.xml

    l 配置yarn-site.xml:vim yarm-site.xml

复制代码

 1  <configuration>   
 2 
 3     <!-- Site specific YARN configuration properties -->  
 4 
 5     <property>  
 6 
 7       <name>yarn.nodemanager.aux-services</name>  
 8 
 9       <value>mapreduce_shuffle</value>  
10 
11     </property>  
12 
13 <property>             
14 
15   <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>  
16 
17       <value>org.apache.hadoop.mapred.ShuffleHandler</value>  
18 
19     </property>  
20 
21     <property>  
22 
23       <name>yarn.resourcemanager.address</name>  
24 
25       <value>master:8032</value>  
26 
27     </property>  
28 
29     <property>  
30 
31       <name>yarn.resourcemanager.scheduler.address</name>  
32 
33       <value>master:8030</value>  
34 
35     </property>  
36 
37     <property>  
38 
39       <name>yarn.resourcemanager.resource-tracker.address</name>  
40 
41       <value>master:8031</value>  
42 
43     </property>  
44 
45     <property>  
46 
47       <name>yarn.resourcemanager.admin.address</name>  
48 
49       <value>master:8033</value>  
50 
51     </property>  
52 
53     <property>  
54 
55       <name>yarn.resourcemanager.webapp.address</name>  
56 
57       <value>master:8088</value>  
58 
59     </property>  
60 
61   </configuration>  

复制代码

图30yarn-site.xml配置内容

 

    l 配置slaves:vim slaves

slave1

slave2

 

11.复制NameNode作为DataNode

 

图31 NameNode和DataNode

    l 复制master,并重命名为slave1和slave2。
    l 运行slave2,将hostname改为slave2。
    l 将网络连接的ip改为192.168.56.5。
    l 对slave1的操作同对slave2的操作一样。

图32 master ping slave2

    l master ping windows时,需要关闭windows的防火墙。

 

图33 master ping windows

 

图34 windows ping master

 

图35 slave1 ping slave2

 

12.在master节点格式化hdfs

    l 到bin路径下:cd /usr/local/hadoop/hadoop/bin
    l Hadoop初始化:hdfs namenode -format

 

13.启动HDFS和YARN

    l 到sbin路径下:lcd /usr/local/hadoop/hadoop/sbin
    l 启动全部服务:start-all.sh
    l 查看:jps

图36 master

图37 slave1

图38 slave2

    通过浏览器的方式验证:
    //192.168.56.4:50070 (HDFS管理界面)

 

图39 HDFS管理界面

    //192.168.56.4:8088 (YARN管理界面)

 

图40 YARN管理界面    

本文由职坐标整理发布,学习更多的大数据技术相关知识,请关注职坐标大技术云计算大技术技术频道!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程