快速的Hadoop完全分布式运行

1、准备虚拟机

克隆3台linux虚拟机,仅安装了centos最小模式的机器

2、配置集群网络

网络分配表

主机名

IP地址

hadoop1

192.168.178.101

hadoop2

192.168.178.102

hadoop3

192.168.178.103

 

vi /etc/hosts

 

要在/etc/hosts加入:

192.168.178.101 hadoop1
192.168.178.102 hadoop2
192.168.178.103 hadoop3

 

 

3、SSH无密登录配置

(0)进入.ssh目录

 

cd ~/.ssh/

 

注意:如果没有这个目录的话,是因为还没使用过ssh,一般使用过ssh就会自动创建

(1)生成公钥

 

ssh-keygen -t rsa

注意:连续按3次回车即可

(2)拷贝公钥

 

ssh-copy-id hadoop1
ssh-copy-id hadoop2
ssh-copy-id hadoop3

 

注意:需要发出公钥的服务器有:NameNode、ResourceManager

 

4、编写集群分发脚本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=1; host<4; host++)); do
        echo ------------------- hadoop$host --------------
        rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done

 

5、集群配置

 

 

hadoop1

hadoop2

hadoop3

HDFS

NameNode

DataNode

 

DataNode

SecondaryNameNode

DataNode

YARN

NodeManager

ResourceManager

NodeManager

NodeManager

原则:NameNode、ResourceManager、SecondaryNameNode分配在不同服务器上

 

*-env.sh 是修改JAVA_HOME

 

(1)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/module/hadoop-2.7.2/data/tmp</value>
</property>

 

(2)hdfs-site.xml、hadoop-env.sh

 

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

<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>hadoop3:50090</value>
</property>

 

(3)yarn-site.xml、yarn-env.sh

 

<!-- 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>

 

(4)mapred-site.xml、mapred-env.sh

 

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

(5)配置slaves

 

hadoop1
hadoop2
hadoop3

 

(6)分发配置

 

xsync /opt/module/hadoop-2.7.2/
xsync /opt/module/jdk1.8.0_144
xsync /etc/profile

 

(7)集群更新系统环境变量

用于更新JAVA_HOME、Hadoop_HOME、PATH

source /etc/profile

 

6、集群启动

(1)第一次启动:NameNode格式化

hdfs namenode -format

(2)启动HDFS,在NameNode上启动

sbin/start-dfs.sh

(3)启动YARN,在ResourceManager上启动

sbin/start-yarn.sh

 

7、集群测试

(1)Web查看NaneNode信息

输入地址:hadoop1:50070

image.png

(2)上传一个文件

 

[root@hadoop1 software]# hdfs dfs -put hadoop-2.7.2.tar.gz /

image.png

(3)查看文件分块信息

image.png

 

posted @ 2019-07-28 20:56  星辰戟  阅读(201)  评论(0编辑  收藏  举报