分布式集群配置简单指南 Special Edition

分布式集群配置简单指南 Special Edition @2017.12.06

0. 准备工作

0.1 三台已经【配置好的】【可以运行】Hadoop伪分布式实例的虚拟机
0.2 将三台虚拟机连入同一个局域网

(可以用三台电脑分别开一个虚拟机,桥接无线网卡然后连手机热点,手机不用联网,只是提供一个局域网,建议安卓,苹果联网才能开热点;也可以在同一台电脑上复制两台虚拟机随便桥接一张网卡,如果桥接网卡无法开机可以使用仅主机(Host-Only)网络,不过要自己配置好VirtualBox的DHCP服务器【管理->全局设定->网络->仅主机(Host-Only)网络】。)

0.3 确保三台机器互相能ping通,并记录三台机器的IP

一般来说应该是【192.168.x.a/192.168.x.b/192.168.x.c】

0.4 确保三台机器都已经切到了hadoop用户

1. 分别修改主机名

sudo vi /etc/hostname

三台机器都要改
君の名は-VirtualBox分别改为node1/node2/node3
改完sudo reboot重启

2. 绑定主机名IP地址

sudo vi /etc/hosts

三台机器都要加入以下内容

192.168.x.a    node1
192.168.x.b    node2
192.168.x.c    node3

IP地址和名字中间是Tab,所以能对齐
对不对齐都无所谓的话,空格应该也可以 大概吧

3. 修改Hadoop的配置文件

大写!加粗!重要:【有且只有】node1一台机器需要配置此项(3. 修改Hadoop的配置文件)
先进入放配置文件那个文件夹

cd /usr/local/hadoop/etc/hadoop/
3.1 修改core-site.xml
gedit core-site.xml

不用gedit用vim也可以,总之能修改就行
在configuration标签里加入property项
如下

<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://node1:9000</value>
    </property>
    ……
    后略
    ……
</configuration>

此处配置的是NameNode信息,即指定NameNode所在机器以及端口

3.2 修改hdfs-site.xml
gedit hdfs-site.xml

在configuration标签中修改property内容(不配置的时候默认是3):

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    ……
    后略
    ……
</configuration>
3.3 修改数据节点和第二名称节点

3.3.1 编辑DataNode

vi slaves

删除localhost并添加以下节点配置:

node2
node3

3.3.2 同理编辑SecondaryNameNode

vi masters

删除localhost并添加以下节点配置:

node2

本来这个时候该配置环境变量JAVA_HOME了,不过只要之前已经成功运行过伪分布式肯定已经配置好了。
可以用echo $JAVA_HOME确认配置是否正确,如果正确会回显JAVA安装目录。

4. 设置本地shh免密登录

三台机器都要执行

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
4.1 node1的单独配置
cd ~/.ssh/
scp id_dsa.pub hadoop@node2:~
<输入node2的密码>
scp id_dsa.pub hadoop@node3:~
<输入node3的密码>
4.2 node2/node3的分别配置
cd ~
cat id_dsa.pub >> ~/.ssh/authorized_keys

配置完后可以在node1上使用【ssh 主机名】指令尝试远程登录
比如ssh node2,如果执行完跳到hadoop@node2:~$
说明免密登录配置成功,node1可以对node2/node3为所欲为了

5. 将hdfs配置复制给node2和node3

只有node1执行以下步骤

cd /usr/local/hadoop/etc/hadoop
scp ./* hadoop@node2:/usr/local/hadoop/etc/hadoop
scp ./* hadoop@node3:/usr/local/hadoop/etc/hadoop

6. 格式化名称节点并启动HDFS

只有node1执行以下步骤

cd /usr/local/hadoop/
./bin/hdfs namenode -format
./sbin/start-dfs.sh

7. 测试效果

分别在三台机器上执行jps
按照《分布式集群手册.txt》的内容

node1应该是Jps/NameNode
node2应该是Jps/SecondaryNameNode/DataNode
node3应该是Jps/DataNode

但是我们实际运行的时候是

node1是Jps/NameNode/SecondaryNameNode
node2是Jps/DataNode
node3是Jps/DataNode

这样名称节点和第二名称节点在同一台机器上,第二名称节点就失去意义了
推测是3.3.2的时候改完忘了保存导致这种情况,不过分布式集群还是在正常运作的

Ubuntu有图形界面,直接打开火狐访问http://node1:50070即可

如果是CentOS,需要用本地桌面浏览器才能查看效果
打开本地的host文件C:\Windows\System32\drivers\etc\hosts
在最下面加

192.168.43.a node1
192.168.43.b node2
192.168.43.c node3

然后就可以用本地浏览器访问http://node1:50070/dfshealth.jsp

8. 运行实例

很遗憾我们的node1中途挂了没有做完这步,这里列出步骤
a) 创建用户目录

./bin/hdfs dfs -mkdir -p /user/hadoop

b) 使用绝对路径将core-site.xml这个文件复制到分布式文件系统中

./bin/hdfs dfs -mkdir input
./bin/hdfs dfs -put ./etc/hadoop/core-site.xml input

c) 查看HDFS中的文件列表

./bin/hdfs dfs -ls input

d) 将core-site.xml文件作为输入,筛选当中符合【正则表达式dfs[a-z.]+】的单词并统计出现的次数,最后输出结果到output文件夹中

./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'

e) 查看运行结果

./bin/hdfs dfs -cat output/*

f) 如果输出目录已存在,会提示错误org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://localhost:9000/user/hadoop/output already exists
请删除输出目录./bin/hdfs dfs -rm -r output

9. 善始善终

关闭hadoop

./sbin/stop-dfs.sh

注意关掉虚拟机之后再打开不需要再重新初始化NameNode,直接./sbin/start-dfs.sh启动hadoop就好了

10. 其他

P.S. 如果节点配置出错(就是jps显示结果不对)

./sbin/stop-dfs.sh
rm -r ./tmp
./bin/hdfs namenode -format
./sbin/start-dfs.sh

重启四连,尝试修复

Special Thank For Mr.Mi

本文档采用《CC0协议》放弃所有权利允许任何形式的转载修改及使用

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