Hadoop完全分布式环境搭建

一、创建虚拟机
1、新建虚拟机hadoop201
在这里插入图片描述
2、更改虚拟网络模式
在这里插入图片描述
3、更改IP
右键单击小电脑—>选择“Edit Connections”—>选中"System eth0"—>“edit”—>进行如下图3的编辑
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4、重启网卡并检验是否能连接上网(在终端输入)
在这里插入图片描述
5、关闭hadoop201,克隆另外两台虚拟机

在这里插入图片描述
在这里插入图片描述
二、修改为静态IP
1、开启虚拟机
2、修改虚拟机的MAC地址
2.1、在终端命令窗口输入:
# vim /etc/udev/rules.d/70-persistent-net.rules
在这里插入图片描述2.2、 # vim /etc/sysconfig/network-scripts/ifcfg-eth0
在这里插入图片描述
2.3、对于hadoop202:
# vim /etc/udev/rules.d/70-persistent-net.rules
在这里插入图片描述2.4、 # vim /etc/sysconfig/network-scripts/ifcfg-eth0
在这里插入图片描述
2.5、对于hadoop203:
# vim /etc/udev/rules.d/70-persistent-net.rules
在这里插入图片描述
2.6、# vim /etc/sysconfig/network-scripts/ifcfg-eth0
在这里插入图片描述
3、重启网卡
# service network restart
尝试能否拼通网络:# ping baidu.com
在这里插入图片描述
4、修改主机名
4.1、查看主机名:# hostname
4.2、进入network文件进行修改:# vim /etc/sysconfig/network
在这里插入图片描述
在这里插入图片描述
4.3、修改主机名与IP地址的映射关系:# vim /etc/hosts
在这里插入图片描述
4.4、重启设备使其生效:# reboot
4.5、查看是否生效:# hostname
4.6、修改Windows系统的hosts文件,以便于用Windows下eclipse远程链接linux hadoop集群做开发。路径:C:\Windows\System32\drivers\etc\hosts
在这里插入图片描述
4.7、关闭防火墙
在这里插入图片描述
三、配置ssh免密码登录,支持无缝式工作,很方便的登录其他虚拟机。
进入我的home目录:# cd ~
生成秘钥:# ssh-keygen -t rsa
拷贝到目标机器上(本台机器上也需要配置):
# ssh-copy-id hadoop201
# ssh-copy-id hadoop202
# ssh-copy-id hadoop203
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
四、编写集群分发脚本
作用:循环复制文件到所有节点的相同目录下
1、编写脚本
# cd /usr/local/bin
# vim xsync
插入如下内容:

#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0));
then
        echo no args;
        exit;
fi
#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname

#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir

#4 获取当前用户名称
user=`whoami`
#5 循环
for((host=201; host<204; host++));
do
        #echo $pdir/$fname $user@hadoop$host:$pdir
        echo --------------- hadoop$host ----------------
        rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done

2、使脚本具有执行权限及修改其属主
# chmod 777 xsync
# chown hadoop:hadoop -R xsync
在这里插入图片描述
五、编写集群操作脚本
作用:在所有主机上同时执行相同的命令(xcall + 命令(需要跟上命令的绝对路径))
1、编写操作脚本
# cd /usr/local/bin
#vim xcall
添加如下内容:

#!/bin/bash 
pcount=$# 
if((pcount==0));
then
	echo no args; 
	exit;
fi
echo -------------localhost----------
$@
for((host=201; host<204; host++)); 
do 
	echo ----------hadoop$host---------
	ssh hadoop$host $@
done

2、使其具有执行权限及修改其属主
# chmod 777 xcall
# chown hadoop:hadoop xcall
在这里插入图片描述
六、安装jdk
1、设置hadoop用户具有root权限:# vim /etc/sudoers
强制保存:wq!
在这里插入图片描述
2、在opt目录下创建文件夹:# cd /opt
# mkdir software module
修改文件夹属主:# chown hadoop:hadoop software
# chown hadoop:hadoop module
在这里插入图片描述
3、安装
3.1、查询是否安装有java软件:# rpm -qa|grep java
如果安装的版本低于1.7,卸载:# rpm -e 软件包
3.2、安装lrzsz(用于从Windows本地上传文件到Linux):# yum install -y lrzsz
将jdk、hadoop压缩包上传到software目录:# rz
在这里插入图片描述
3.3、将文件解压到module目录:# tar -zxf jdk-8u151-linux-x64.tar.gz -C …/module
# tar -zxf hadoop-2.7.6.tar.gz -C …/module/
在这里插入图片描述
3.4、配置环境变量:
注意:环境变量不能配错,配错会导致Linux命令无法使用
解决办法:进入bin(/usr/local/bin)目录重新配置
# cd jdk1.8.0_151/
# pwd 复制该路径
# vim /etc/profile
在文件末尾添加如下内容:
在这里插入图片描述
# cd …/hadoop-2.7.6/
# pwd 复制该路径
# vim /etc/profile
在文件末尾添加如下内容:
在这里插入图片描述
使文件生效:# source /etc/profile
3.5、查看是否成功:# java -version
# hadoop version
在这里插入图片描述
七、将文件同步到其他两台主机上
1、# xsync /opt
到另外两台主机上查看是否成功:
在这里插入图片描述
在这里插入图片描述2、同步profile文件(环境变量):
# rsync -rvl /etc/profile root@hadoop202:/etc
# rsync -rvl /etc/profile root@hadoop203:/etc
注:rsync:远程同步工具,主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
在这里插入图片描述
3、到另外两台主机上使文件生效:# source /etc/profile
查看是否成功:# java -version
# hadoop version
在这里插入图片描述
在这里插入图片描述
八、配置集群
1、集群部署规划
在这里插入图片描述
2、配置文件
2.1、core-site.xml
# cd /opt/module/hadoop-2.7.6/etc/hadoop
# vim core-site.xml

<!-- 指定HDFS 中 NameNode 的地址 -->
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop203:9000</value>
</property>
<!-- 指定 hadoop 运行时产生文件的存储目录 -->
<property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-2.7.6/data/tmp</value>
</property>

2.2、hdfs
# vim hadoop-env.sh
改变JAVA_HOME变量值:
在这里插入图片描述
# vim hdfs-site.xml

<property>
        <name>dfs.replication</name>
        <value>3</value>
</property>
<!-- 指定HDFS中SecondaryNameNode的地址-->
<property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop202:50090</value>
</property>

# vim slaves

hadoop201
hadoop202
hadoop203

2.3、配置yarn
# vim yarn-env.sh
修改JAVA_HOME变量的值:
在这里插入图片描述
# vim yarn-site.xml

<!-- reducer 获取数据的方式 -->
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
</property>
<!-- 指定 YARN 的 ResourceManager 的地址 -->
<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop201</value>
</property>

2.3、mapreduce
# vim mapred-env.sh
在这里插入图片描述
修改mapred-site.xml文件,但目录里本身没有,需要将mapred-site.xml.template文件重命名或者拷贝后重命名:
# cp mapred-site.xml.template mapred-site.xml
# vim mapred-site.xml

<!-- 指定 mr 运行在 yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

3、在集群上分发以上所有文件:
# xsync /opt/module/hadoop-2.7.6/etc/hadoop
在这里插入图片描述
九、启动集群及测试
1、启动集群
1.1、如果集群是第一次启动,需要格式化NameNode,在有NameNode的主机上及进行格式化:
# bin/hdfs namenode -format
出现下面这句话就说明格式化成功:
在这里插入图片描述
1.2、启动hdfs,在hadoop203上执行:
# start-dfs.sh
在这里插入图片描述
1.3、启动yarn,在hadoop201上执行:
# start-yarn.sh
在这里插入图片描述
2、集群基本测试
2.1、上传小文件,在hadoop203上执行:
# hdfs dfs -mkdir -p /user/hadoop/tmp/conf
在这里插入图片描述
# hdfs dfs -put etc/hadoop/*-site.xml /user/hadoop/tmp/conf
在这里插入图片描述
2.2、上传大文件:# hadoop fs -put /opt/software/hadoop-2.7.6.tar.gz /user/hadoop/tmp
在这里插入图片描述
十、关闭集群
1、停止yarn:# stop-yarn.sh
在这里插入图片描述
2、停止hdfs:# stop-dfs.sh
在这里插入图片描述
十一、集群时间同步
时间同步的方式:找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,比如,每隔十分钟,同步一次时间。
1.时间服务器配置(必须 root 用户)
1.1、检查 ntp 是否安装:# rpm -qa|grep ntp
在这里插入图片描述
1.2、修改 ntp 配置文件:# vim /etc/ntp.conf
修改内容如下:
(a)修改 1(设置本地网络上的主机不受限制,设置内网主机提供NTP服务)
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap 为
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
(b)修改 2(注释掉默认的对时服务器)
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst 为
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
(c)添加 3(添加默认的一个内部时钟数据,使用它为局域网用户提供服务)

server 127.127.1.0
fudge 127.127.1.0 stratum 10

1.3、修改/etc/sysconfig/ntpd 文件
# vim /etc/sysconfig/ntpd
增加以下内容:SYNC_HWCLOCK=yes
1.4、重新启动ntpd
# service ntpd status
# service ntpd start
在这里插入图片描述
1.5、执行:# chkconfig ntpd on
2.其他机器配置(必须 root 用户)
2.1、在其他机器配置 10 分钟与时间服务器同步一次
# crontab -e
编写脚本:
*/10 * * * * /usr/sbin/ntpdate hadoop203
2.2、修改任意机器时间
# date -s "2017-9-11 11:11:11"
2.3、十分钟后查看机器是否与时间服务器同步
# date 在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值