VMware搭建完全分布式Hadoop集群

实际开发中,使用的就是完全分布式环境。所谓完全分布式就是在整个集群中有真实的主机(3台以上),用于完成各种任务。但是个人在学习时,购买多个机器显然是不划算的。这里,我们采用VMWare克隆出多个虚拟机来模仿完全分布式环境。

环境

  1. VMware Fusion 11 pro
  2. Linux系统为Ubuntu 16.04
  3. 每个虚拟机的配置为1G内存和20G磁盘空间
  4. PC:mbp2018 8G内存 256G固态

步骤


1. 准备3台客户机

1.1 按照之前的方法完成单台虚拟机的搭建(步骤一步骤二步骤三)。
1.2 在虚拟机关闭的情况下,克隆两台虚拟机。

修改名称和存储位置即可。

1.3 修改静态IP。

1.3.1 查看你PC上为VMware分配的IP地址段、子网掩码和网关。打开终端,输入如下命令:
more /Library/Preferences/VMware\ Fusion/vmnet8/dhcpd.conf


1.3.2 打开克隆好的虚拟机,修改配置文件,在终端输入如下命令:
sudo vim /etc/network/interferfaces

添加以下信息:

auto ens33  # 本机的网卡,可通过`ifconfig`命令查看
iface ens33 inet static
address 172.16.225.133   # 从IP地址段中任意选一个
netmask 255.255.255.0  
gateway 172.16.225.2
dns-nameservers 172.16.225.2

重启机器即可完成静态IP的修改。记得ping www.baidu.com测试网络的连通性。

1.4 修改主机名称,针对Ubuntu而言:

1.4.1 修改主机名称
sudo vim /etc/hostname
将文件修改为你的主机名,例如hadoop101
1.4.2 修改主机名和host的映射
sudo vim /etc/hosts


通过上面的配置,发现启动从节点的NodeManager时出错,查看logs发现可能是hosts文件的问题,遂修改如下,大家可以直接使用下面的文件:

1.4.3 重启机器,并使用ping hadoop10x测试连通性。


2. 安装JDK和Hadoop

如果你在第一台虚拟机上完成了伪分布模式的搭建,那么此时克隆的两台机器也同样拥有JDK和Hadoop。

scp命令
此时,如果只有一台机器完成了jdk和Hadoop的安装配置,我们可以使用scp命令完成数据的安全拷贝。
命令格式:scp -r 要拷贝的文件路径/名称 user@ip:目的路径/名称

  • 在hadoop101上,将hadoop101的/opt/modeul目录下的东西拷贝到hadoop102上
    scp -r /opt/module root@hadoop102:/opt/module
  • 在hadoop103上,将hadoop101的/opt/module目录下的东西拷贝到hadoop102上
    scp -r root@hadoop101:opt/module roor@hadoop102:/opt/module

rsync命令
scp相同的还有一个命令时rsync,其主要用于备份和镜像。rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp将所有文件都复制过去。使用方法和scp一样。
基本格式:rsync -rvl 源文件 目的路径

集群分发脚本
脚本sxync.sh可以更好的同步数据到其他机器上

#! /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=102;host<104;host++));do
  echo -----------hadoop$host-----------
  rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done

3. 配置集群

集群配置图

这个很重要,后面的所有配置都是按照这个来的


3.1 配置core-site.xml
<!-- 指定HDFS中NameNode的地址-->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop102:9000</value>
</property>

<!-- 指定Hadoop运行时产生文件的存储目录-->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/module/hadoop-x.x.x/data/tmp</value>
</property>
3.2 HDFS配置文件

3.2.1 配置hadoop-env.sh

export JAVA_HOME=jdk安装路径

3.2.2 配置hdfs-site.xml文件

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

<!-- 指定hadoop辅助名称节点主机配置-->
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>hadoop103:50090</value>
</property>
3.3 YARN配置文件

3.3.1 配置yarn-env.sh

export JAVA_HOME=jdk安装路径

3.3.2 配置yarn-site.xml文件

<!-- Reducer获取数据的方式-->
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
 <!-- 指定yarn的ResourceManager的地址-->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop101</value>
</property>
3.4 MapReduce配置文件

3.4.1 配置mapred-env.sh

export JAVA_HOME=jdk安装路径

3.4.2 配置mapred-site.xml文件

<!-- -->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
3.5 在集群上分发配置好的Hadoop配置文件

xsync /opt/module/hadoop-x.x.x/

3.6 查看文件分发情况

4. 集群的单点启动

4.1 查看后台是否有Hadoop的相关进程,如果有,则全部关闭
4.2 删除$HADOOP_HOME/data/logs/目录

rm -rf data/ logs/

注意,此时要删除所有节点的data/logs/,包括hadoop101、hadoop102和hadoop103。

4.3 格式化NameNode

根据集群配置图,我们可以发现NameNode在hadoop102上,所以我们连接hadoop102,并执行如下命令:
bin/hdfs namenode -format
此时,不允许有任何错,否则格式化失败

4.4 启动hadoop集群

4.4.1 在hadoop101上启动DataNode。
sbin/hadoop-daemon.sh start datanode
4.4.2 在hadoop102上启动NameNode和DataNode。
sbin/hadoop-daemon.sh start namenode
sbin/hadoop-daemon.sh start datanode
4.4.3 在hadoop101上启动DataNode和SecondaryNode
sbin/hadoop-daemon.sh start datanode
sbin/hadoop-daemon.sh start secondarynamenode

4.5 查看集群是否启动成功

在浏览器中输入http://hadoop102:50070查看集群是否启动成功。如果本机的hosts里边没有Hadoop102到ip地址的映射,此时会无法访问,两种办法:第一,使用过ip:端口号访问;第二,在本机hosts文件里加入三个节点的主机名到ip地址的映射。


5. 配置SSH免密登录

5.1 配置hadoop101免密登录hadoop102和Hadoop03

5.1.1 在hadoop101上使用指令ssh-keygen -t rsa生成公钥和密钥


5.1.2 查看生成的公钥和私钥

5.1.3 将公钥分发给hadoop102和hadoop103
ssh-copy-id hadoop102
ssh-copy-id hadoop103

5.2 按照5.1的步骤,配置hadoop103免密登录hadoop101和hadoop102。

注意,在配置ssh免密登录的时候需要将自己的公钥拷贝到自己的authorized_keys。方法与上面的相同,比如将hadoop101的公钥拷贝到自己:
cd /home/lg/.ssh
ssh-copy-id hadoop101


6. 群起集群

6.1 配置slaves文件,在文件中加入如下内容(数据节点):
hadoop101
hadoop102
hadoop103

注意,该文件中添加的内容结尾不允许有空格,文件汇总不允许有空行,非常重要!!!
添加完成后,使用xsync同步所有节点的配置文件。

6.2 启动集群

6.2.1 在hadoop102上启动HDFS
sbin/start-dfs.sh


6.2.2 在hadoop101上启动YARN(一定要到Hadoop101上)
sbin/start-yarn.sh

6.2.3 此时查看hadoop101、hadoop102和hadoop103上的服务是否和配置图一致。



此时,我们的集群启动成功!!!


7. 集群的基本测试

7.1 一个大文件个一个小文件
bin/hdfs dfs -put wcinput/wc.input /
bin/hdfs dfs -put /opt/software/hadoop-x.x.x.tar.gz
7.2 在浏览器中输入http://hadoop102:50070查看上传结果:


可以发现第一个文件的大小(208.59M)大于块的大小(128M),此时点击文件查看:


大功告成,告别从入门到放弃!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 222,729评论 6 517
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 95,226评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 169,461评论 0 362
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 60,135评论 1 300
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 69,130评论 6 398
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,736评论 1 312
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,179评论 3 422
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 40,124评论 0 277
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,657评论 1 320
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,723评论 3 342
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,872评论 1 353
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,533评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,213评论 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,700评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,819评论 1 274
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 49,304评论 3 379
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,876评论 2 361

推荐阅读更多精彩内容