当前位置:   article > 正文

完全分布式搭建

完全分布式搭建

进入hadoop0主机,将/etc/udev/rules.d/70-persistent-net.rules文件删除

rm -rf /etc/udev/rules.d/70-persistent-net.rules

关闭虚拟机 --> 右键单击虚拟机 --> 选择快照 -->拍摄快照 --> 设置快照名称和描述

右键单击虚拟机-->选择管理-->克隆-->选择克隆源(现有快照)-->选择克隆类型-->修改虚拟机名称及位置

选择现有快照(前面保存的伪分布式快照),第一个首先选择完美克隆

 位置自定义设置

 

右键克隆出来的虚拟机--> 选择快照 -->拍摄快照  --> 设置快照名称和描述(和前面方法相同设置)克隆出两个链接克隆

 

先开启虚拟机hadoop0虚拟机(完美克隆的)后开启后两个克隆的

分别更改hadopp1与hadopp2的虚拟机网络配置文件

vi /etc/sysconfig/network-scripts/ifcfg-ens33

 

 分别更改hadopp1与hadopp2的虚拟机主机名配置文件

vi /etc/hostname

 

 配置三台虚拟机的网络映射

vi /etc/hosts

在文件最后添加 ip地址 主机名(每一台虚拟机上都要配置,如下三行都要添加)

192.168.39.200 hadoop0

192.168.39.201 hadoop1

192.168.39.202 hadoop2

再分别重启三台虚拟机网络服务:

service  network  restart

最后关闭全部虚拟机再依次启动hadoop0,1,2虚拟机

设置SSH免密登录

三台虚拟机都执行:

ssh-keygen -t rsa

三台虚拟机都要互相执行:

ssh-copy-id hadoop0 

ssh-copy-id hadoop1

ssh-copy-id hadoop2

执行完后每台虚拟机可以互相测试ssh 主机名 ,进行登录验证

使用 MobaXterm 分别连接到三台虚拟机

配置分布式集群环境

 切换到Hadoop配置文件目录:

cd /opt/programs/hadoop-2.7.6/etc/hadoop/

配置hadoop-env.sh:

vi hadoop-env.sh

找到export JAVA_HOME=设置为jdk安装目录路径

 yarn-env.sh 与 mapred-env.sh文件也同样方式去设置

输入命令:vi  core-site.xml 

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://hadoop0:9001</value>
        </property>

        <property>
                <name>hadoop.tmp.dir</name>
                <value>/opt/programs/hadoop-2.7.6/Tmp</value>
        </property>

</configuration>

输入命令:vi hdfs-site.xml

<configuration>

        <property>

                <name>dfs.namenode.http-address</name>
                <value>hadoop0:50070</value>
        </property>

        <property>
               <name>dfs.namenode.secondary.http-address</name>
               <value>hadoop1:50090</value>
        </property>

        <property>
              <name>dfs.namenode.name.dir</name>
              <value>/opt/hadoopTmp/dfs/name</value>
        </property>

        <property>
              <name>dfs.datanode.data.dir</name>
             <value>/opt/hadoopTmp/dfs/data</value>
         </property>

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

        <property>
                <name>dfs.permissions</name>
                <value>false</value>
        </property>

</configuration>

输入命令:vi yarn-site.xml

<configuration>

<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop0</value>
</property>
<property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>hadoop0:8088</value>
</property>

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

<property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>

<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>

<property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>106800</value>
</property>

<property>
    <name>yarn.nodemanager.remote-app-log-dir</name>
    <value>/user/container/logs</value>
</property>

<property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>1536</value>
</property>

</configuration>


 输入命令:vi mapred-site.xml

如果进入后文件是空的,先退出输入:

cp mapred-site.xml.template etc/hadoop/mapred-site.xml

<configuration>
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
</property>
<property>
     <name>mapreduce.jobhistory.address</name>
     <value>hadoop2:10020</value>
</property>

<property>
     <name>mapreduce.jobhistory.webapp.address</name>
     <value>hadoop2:19888</value>
</property>

<property>
     <name>mapreduce.jobhistory.intermediate-done-dir</name>
     <value>${hadoop.tmp.dir}/mr-history/tmp</value>
</property>

<property>
     <name>mapreduce.jobhistory.done-dir</name>
     <value>${hadoop.tmp.dir}/mr-history/done</value>
</property>


<property>
    <name>dfs.permissions</name>
    <value>false</value>
</property>
</configuration>


输入命令:vi slaves

 添加所有虚拟机主机名

分发文件:

以上全部完成并且确定无误后,开即可开始分发到hadoop1和hadoop2虚拟机里

scp -r /opt/programs/hadoop-2.7.6 root@hadoop1:/opt/programs
scp -r /opt/programs/hadoop-2.7.6 root@hadoop2:/opt/programs

开启集群

首先输入格式化命令:hdfs namenode -format 

全部启动命令:start-all.sh  #若要关闭则关闭为:stop-all.sh

启动或停止历史(日志)服务器:

mr-jobhistory-daemon.sh start historyserver   #启动historyserver

mr-jobhistory-daemon.sh start historyserver   #停止historyserver

输入命令检查有没有开启成功:jps

 hadoop0 

 hadoop1

  hadoop2

若每个虚拟机都显示这些进程则开启成功

网页访问

注意;必须先关闭防火墙

访问HDFS为:

192.168.39.200:50070

访问YARN为

192.168.39.200:8088

 设置虚拟机时间同步

查询是否安装NTP:rpm -qa | grep ntp

如果有显示则使用使用卸载命令:rpm -e xxx(xxx输入显示的NTP服务) 没有则跳过

上传以下安装包到hadoop0虚拟机的 opt/packages 下:

下载链接:centos 7 NTP离线安装部署 - 找不到Object - 博客园 (cnblogs.com)

然后切换到该目录下进行安装,安装过程中注意有先后顺序

rpm -ivh ntpdate-4.2.6p5-29.el7.centos.2.x86_64.rpm

rpm -ivh autogen-libopts-5.18-5.el7.x86_64.rpm
rpm -ivh ntp-4.2.6p5-29.el7.centos.2.x86_64.rpm

完成安装后,修改配置文件

vi /etc/ntp.conf

删除 restrice  前面的#号,修改为自己的IP地址

注释掉四行server域名,并添加两行

 输入命令:vi /etc/sysconfig/ntpd 修改内容为:

启动NTP服务并且机自启动 永久启动:

service ntpd start & chkconfig ntpd on

其他两台虚拟机时间同步

保证hadoop1与hadoop2 也安装有NTP(安装方法同上)

然后分别执行命令:vi /etc/ntp.conf     #hadoop1和hadoop2都要一样设置

再分别输入指令:vi /etc/sysconfig/ntpd   #修改配置文件ntpd,也和上面的NTP配置一样

分别启动服务器:

service ntpd start & chkconfig ntpd on

然后可以回到hadoop0虚拟机输入命令:crontab -e

写入:

*/10 * * * * /usr/sbin/ntpdate hadoop0; /sbin/hwclock -w

#表示每10分钟与NTP服务器(hadoop0)进行一次时间同步,并写入本机BIOS

测试集群间的时间同步

输入命令:date '+%Y-%m-%d %H:%M:%S'    #以“年-月-日 时:分:秒”的格式显示

查看三台虚拟机时间是否一致,如果是再重启虚拟机(先 stop-all.sh 关闭集群以防出现未知问题)最后查看时间是否同步,若还是时间同步则同步成功。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/854357
推荐阅读
相关标签
  

闽ICP备14008679号