Hadoop配置—完全分布式

Hadoop分为三种配置模式:独立模式(standalone|local),伪分布模式(Pseudodistributed mode),完全分布式(full distributed)

说在前面
  • 工作环境:VMware® Workstation 12 Pro 12.5.6 build-5528349
  • linux版本:CentOS-7-x86_64-Minimal-1611.iso
  • JDK版本:jdk-8u65-linux-x64.tar.gz
  • Hadoop版本:hadoop-2.7.6.tar.gz

温馨提示: 配置完全分布式前请先尝试配置伪分布式,这会对配置完全分布式很有用!

准备工作

说明一:配置完全分布式需要四台主机(至少需要四台,以后可以追加),所以需要准备足够大的磁盘空间(每台虚拟机20G,100G左右差不多,因为到后面估计还要扩容)。由于在伪分布模式的时候已经配置了一台,所以其他三台就从这台克隆就可以了(注意:该文档中的完全分布式配置是基于伪分布模式配置的,所以请先配置伪分布模式!!!当然也可以自行配置,只需要在下面步骤中对伪分布模式的一些修改跳过即可)

一. 修改主机名

说明(我自己的虚拟机情况):

  • 主机1ip : 192.168.32.201
//修改主机名为201
$> sudo nano /etc/hostname

//修改hosts文件
$> sudo nano /etc/hosts
127.0.0.1 localhost
192.168.32.201 s201   //主机1 IP 和 主机名 s201
192.168.32.202 s202   //主机2 IP 和 主机名 s202
192.168.33.203 s203   //主机3 IP 和 主机名 s203
192.168.32.204 s204   //主机4 IP 和 主机名 s204
  • 主机1用于存放名称节点(namebnode),其他三台主机用于存放数据节点(datanode)
克隆主机
  • 克隆三台主机:右键主机1——>管理——>克隆——>克隆自虚拟机当前状态——>创建完整克隆 … 完成(以此方式克隆出另外两台主机)

  • 启用共享文件夹(VMware克隆出来的主机已经默认启用了共享文件夹,共享文件夹和主机1相同,如果没有启用,选择设置进行启用就可以了)

  • 修改hostname和ip地址(hostanme同上)

//只需要将IPADDR改为静态ip就行
$> sudo nano /etc/sysconfig/network-scripts/ifcfg-ethxxxx

//如下,只需要将IPADDR修改为192.168.32.202,其他设置不用变
    iTYPE=Ethernet
    BOOTPROTO=static
    DEFROUTE=yes
    PEERDNS=yes
    PEERROUTES=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=no
    IPV6_AUTOCONF=no
    IPV6_DEFROUTE=no
    IPV6_PEERDNS=no
    IPV6_PEERROUTES=no
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=ens33
    UUID=1c4e0233-8fca-47f7-9cf5-5aa94e0319fa
    DEVICE=ens33
    ONBOOT=yes
    
    IPADDR=192.168.32.202
    NETMASK=255.255.255.0
    GATEWAY=192.168.32.2
    DNS1=8.8.8.8
    DNS2=8.8.4.4

  • 重启网络服务
$> service network restart

重启后 ping s201 和 ping www.baidu.com

如果成功,则ip配置没有问题,网络连接也没有问题!
配置完全分布式

上面已经准备好了四台能上网的主机,原料已经备齐,现在就可以动手配置了。

一. 配置SSH(让s201能够无密登录其他三台主机,配置两种用户:本机用户和root用户,配置方式相同)
  • 删除所有主机上的 ./ssh 下的所有文件
$> rm -rf /home/centosmin0/.ssh/*
  • 在s201主机上重新生成秘钥对
$>ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

image

  • 主机s201:追加公钥到~/.ssh/authorized_keys文件中,并修改文件的权限为644
$>cd ~/.ssh
$>cat id_rsa.pub >> authorized_keys
$>chmod 644 authorized_keys

image

  • 将s201的公钥文件id_rsa.pub远程复制到202 ~ 204主机上。并放置在/home/centos/.ssh/authorized_keys下
$>scp id_rsa.pub centosmin0@s202:/home/centosmin0/.ssh/authorized_keys
$>scp id_rsa.pub centosmin0@s203:/home/centosmin0/.ssh/authorized_keys
$>scp id_rsa.pub centosmin0@s204:/home/centosmin0/.ssh/authorized_keys

image

配置成功后,直接可以在主机s201上通过 ssh + 主机名 + 命令 的方式访问其他主机

image

二. 配置(核心)
  • 修改${hadoop_home}/etc/hadoop/ 下的几个配置文件

    • 修改core-site.xml配置文件(将hdfs://localhost/ 改为 hdfs://s201/)
    //s201为主机名,代表存放名称节点的主机,由其管理其他数据节点
    <?xml version="1.0" encoding="UTF-8"?>
    	<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    	<configuration>
    			<property>
    					<name>fs.defaultFS</name>
    					<value>hdfs://s201/</value>
    			</property>
    	</configuration>
    

    image

    • 修改core-site.xml配置文件(将value值改为3,有三台存放数据节点的主机)
    <?xml version="1.0" encoding="UTF-8"?>
    	<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    	<configuration>
    			<property>
    					<name>dfs.replication</name>
    					<value>3</value>
    			</property>
    	</configuration>
    

    image

    • mapred-site.xml文件不用修改,修改yarn-site.xml(将value值改为主机s201,即保存名称节点的主机)
    <?xml version="1.0"?>
    	<configuration>
    			<property>
    					<name>yarn.resourcemanager.hostname</name>
    					<value>s201</value>
    			</property>
    			<property>
    					<name>yarn.nodemanager.aux-services</name>
    					<value>mapreduce_shuffle</value>
    			</property>
    	</configuration>
    

    image

    • 修改slaves文件和hadoop-env.sh文件(slaves文件里面记录的是集群里所有DataNode的主机名)
    $> nano slaves
    添加:s202
    	  s203
    	  s204
    
    $> nano hadoop-env.sh
    export JAVA_HOME=/soft/jdk
    
    • 将以上所有的修改均分配到其他三台主机(s202, s203, s204)
    $>cd /soft/hadoop/etc/
    $>scp -r full centosmin0@s202:/soft/hadoop/etc/
    $>scp -r full centosmin0@s203:/soft/hadoop/etc/
    $>scp -r full centosmin0@s204:/soft/hadoop/etc/
    

    image

  • 删除符号链接(在伪分布模式的时候创建了符号链接hadoop,让其指向了伪分布模式的配置,现在需要将其删除,如果没有配置伪分布模式,可以不用管此步骤,直接跳到下一步)

$>cd /soft/hadoop/etc
$>rm hadoop
$>ssh s202 rm /soft/hadoop/etc/hadoop
$>ssh s203 rm /soft/hadoop/etc/hadoop
$>ssh s204 rm /soft/hadoop/etc/hadoop

image

  • 创建符号链接
$>cd /soft/hadoop/etc/
$>ln -s full hadoop
$>ssh s202 ln -s /soft/hadoop/etc/full /soft/hadoop/etc/hadoop
$>ssh s203 ln -s /soft/hadoop/etc/full /soft/hadoop/etc/hadoop
$>ssh s204 ln -s /soft/hadoop/etc/full /soft/hadoop/etc/hadoop

image

image

  • 删除临时目录文件和hadoop日志
//删除临时目录文件
$>cd /tmp
$>rm -rf hadoop-centosmin0
$>ssh s202 rm -rf /tmp/hadoop-centosmin0
$>ssh s203 rm -rf /tmp/hadoop-centosmin0
$>ssh s204 rm -rf /tmp/hadoop-centosmin0

//删除hadoop日志
$>cd /soft/hadoop/logs
$>rm -rf *
$>ssh s202 rm -rf /soft/hadoop/logs/*
$>ssh s203 rm -rf /soft/hadoop/logs/*
$>ssh s204 rm -rf /soft/hadoop/logs/*
  • 格式化文件系统
$>hadoop namenode -format
  • 启动hadoop进程
$>start-all.sh

如下图:s201成功启动了namenode进程,s202 ~ s204 成功启动了datanode进程

image

如下图:在web端查看(192.168.32.201:50070)

image

OK,大功告成!!!

调试

如果不幸出错,请按以下步骤进行调试

  • 查看日志文件(名称节点查看主机s201,数据节点就去对应的数据节点主机查看)
$> cat /soft/hadoop/logs

//假如出现进程被占用的情况,则找到该进程,并杀死该进程

$>netstat -apno | grep 端口

//列出当前进程
$>jps

$> kill -9 进程号

image

  • 删除临时目录文件和hadoop日志
//删除临时目录文件
$>cd /tmp
$>rm -rf hadoop-centosmin0
$>ssh s202 rm -rf /tmp/hadoop-centosmin0
$>ssh s203 rm -rf /tmp/hadoop-centosmin0
$>ssh s204 rm -rf /tmp/hadoop-centosmin0

//删除hadoop日志
$>cd /soft/hadoop/logs
$>rm -rf *
$>ssh s202 rm -rf /soft/hadoop/logs/*
$>ssh s203 rm -rf /soft/hadoop/logs/*
$>ssh s204 rm -rf /soft/hadoop/logs/*
  • 格式化文件系统
$>hadoop namenode -format
  • 启动hadoop进程
$>start-all.sh
  • 对应还有关闭hadoop进程
$>stop-all.sh

image

提示:善于查看hadoop日志是调试的关键!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值