Hadoop集群搭建(完全分布式)

集群准备

1、准备3台客户机(关闭防火墙、静态ip,主机映射、主机名称),主机名称分别为Hadoop1,hadoop2,hadoop3

2、安装jdk

3、配置ssh,免密登录

4、配置时间同步

集群规划

Hadoop1hadoop2hadoop3
HDFSNameNode DataNodeDataNodeSecondaryNameNode DataNode
TARNNodeManagerResourceManager NodeManagerNodeManager

VMware虚拟机网络配置

step1:修改hostname

hostnamectl set-hostname hadoop1

step2:进入系统编辑网卡配置文件

vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"    #改为静态ip
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="627140c3-13f1-48ba-a8cd-20a3b4eadf5e"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.***.150"     #设置虚拟机的ip,要与主机IP在同一网段
NETMASK="255.255.255.0"   #设置子网掩码
GATEWAY="192.168.***.2"      #设置虚拟机网关,与主机相同
DNS1="114.114.114.114"
DNS2="8.8.8.8"

step3:重启网络

systemctl restart network

step4:测试网络

ping www.baidu.com

step5:关闭和禁用防火墙

systemctl stop firewalld
systemctl disable firewalld

配置主机映射

vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.***.150 hadoop1
192.168.***.160 hadoop2
192.168.***.170 hadoop3

安装jdk

step1:在opt下新建两个文件夹soft和install

cd  /opt
mkdir software install

step2:将jdk安装包拷贝至software文件夹下

step3:解压jdk

tar -zxf jdk-8u111-linux-x64.tar.gz -C /opt/install/jdk180    #-C是解压到指定路径

step4:配置环境变量

vi /etc/profile
export JAVA_HOME=/opt/install/jdk180
export PATH=$JAVA_HOME/bin:$PATH

step5:刷新环境变量

source /etc/profile

step6:验证jdk是否安装成功

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)

将hadoop1克隆出2台虚拟机

VMware上有克隆的功能,只需在hadoop1这个虚拟机右击–>管理–>克隆,就可以克隆出两台和hadoop1环境一样的虚拟机,只需修改ip和hostname,hostname分别改为hadoop2与hadoop3,主机映射,因为在安装hadoop1时,已经配置好了,3台都配置上了,所以这里就不需要配置了。

在三台虚拟机上配置无密

在3台机器上分别执行如下语句,就是需要拷贝9次

ssh-keygen
#3次回车
#拷贝密钥
ssh-copy-id hadoop1

ssh-copy-id hadoop2

ssh-copy-id hadoop3

在hadoop1上安装hadoop

step1:将安装包拷贝至software文件夹中

step2:将hadoop安装包解压至install文件夹下

tar -zxf hadoop-2.6.0-cdh5.14.2.tar.gz -C /opt/install/hadoop260

step3:进入hadoop260,修改配置文件

cd /opt/install/hadoop260/etc/hadoop/

hadoop-env.sh

export JAVA_HOME=/opt/install/自己的路径

core-site.xml

<!-- 指定HDFS中NameNode的地址 -->
<property>
	<name>fs.defaultFS</name>
    <value>hdfs://hadoop1:9000</value>
</property>

<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
	<name>hadoop.tmp.dir</name>
	<value>/opt/install/hadoop/data/tmp</value>
</property>

hdfs-site.xml

<property>
	<name>dfs.replication</name>
	<value>3</value>
</property>
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>hadoop3:50090</value>
</property>

yarn-env.sh

export JAVA_HOME=/opt/install/jdk180

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>hadoop2</value>
</property>

mapred-site.xml

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

slaves

vi slaves

把localhost删掉

hadoop1
hadoop2
hadoop3

hadoop安装完毕,利用scp将hadoop1上的hadoop的安装包远程发送给hadoop2和hadoop3

scp -r hadoop260/ root@hadoop2:$PWD        #PWD拷贝至当前路径,就是install文件夹下
scp -r hadoop260/ root@hadoop3:$PWD

启动集群

step1:在hadoop1上格式化HDFS

bin/hdfs namenode -format

step2:启动HDFS【hadoop1】

sbin/start-dfs.sh

step3:启动Yarn【hadoop2】

sbin/start-yarn.sh

step4:jps和web页面查看【50070 和 8088端口】

时间同步(时间对不对不重要,重要的是3个节点的时间要一致)

step1:安装ntp【hadoop1】

rpm -qa|grep ntp
yum -y install ntp

vi /etc/ntp.conf

#修改1(设置本地网络上的主机不受限制。)

#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap为
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

#修改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

添加3(添加默认的一个内部时钟数据,使用它为局域网用户提供服务。)

server 127.127.1.0
fudge 127.127.1.0 stratum 10

step2:修改/etc/sysconfig/ntpd

vim /etc/sysconfig/ntpd

#增加内容如下(让硬件时间与系统时间一起同步)

SYNC_HWCLOCK=yes

step3:重新启动ntpd

systemctl restart ntpd

step4:在hadoop2和hadoop3 上分别更新时间

ntpdate hadoop1  #以hadoop1上的时间为准

step5:在hadoop2和hadoop3上也要安装ntp

yum -y install ntp

step6:在hadoop2和hadoop3上执行如下代码

crontab -e

-----------------------------------

*/10 * * * * /usr/sbin/ntpdate hadoop1   #每10分钟同步一次时间   

hadoop集群(完全分布式)搭建完毕!!!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值