CentOS7下搭建Hadoop集群环境

CentOS7虚拟机两台
java8、ssh
Hadoop: 2.7.3
安装java-devel用于调试

1、准备工作

修改两台虚拟机主机名master、slave

[root@master /]# hostname master

配置Hosts

[root@master /]# vim /etc/hosts
192.168.1.240 master
192.168.1.241 slave

配置完成之后,互相ping一下,看能否连通

ping master
ping slave

2、配置免密码登录

在所有机器上都生成私钥和公钥,一路回车

ssh-keygen -t rsa

需要让机器能互相访问,需要把slave节点上的 id_rsa.pub发给master

在master上,将所有公钥加到用于认证的公钥文件authorized_keys中

将公钥文件authorized_keys分发给每台slave

scp ~/.ssh/id_rsa.pub root@master:~/.ssh/id_rsa.pub.slave
cat ~/.ssh/id_rsa.pub*>>~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys root@slave:~/.ssh/

验证免密码通信

ssh master
ssh slave

3、配置JAVA环境变量

注意通过yum安装的java的jre路径

[root@master /]# vim ~/.bashrc

在其内添加如下内容

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-0.b13.el73.x8664/jre
export PATH=JAVA_HOME/bin:PATH

[root@master /]# source ~/.bashrc

4、安装配置Hadoop

官网下载Hadoop2.7.3

解压到/usr/local/hadoop2.7.3

配置hadoop环境变量

[root@master /]# vim ~/.bashrc

添加如下内容:

export HADOOP_HOME=/usr/local/hadoop-2.7.3
export PATH=JAVA_HOME/bin:HADOOP_HOME/bin:$PATH
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"

[root@master /]# source ~/.bashrc

进入hadoop/etc/hadoop/目录下,配置以下文件hadoop-env.sh,yarn-env.sh,slaves,core-site.xml,hdfs-site.xml,maprd-site.xml,yarn-site.xml

[root@master /]# cd $HADOOP_HOME
[root@master hadoop-2.7.3]# cd etc/hadoop/

1、进入hadoop-env.sh,该文件为hadoop集群启动检查相关环境变量的文件,注意检查JAVA_HOME环境变量的路径是否是对的

2、进入yarn-env.sh,同样检查JAVA_HOME

3、进入slaves,配置如下内容,其内配置的是集群内的所有主机的主机名,用来启动DataNode存储

master
slave

4、修改core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <property>
         <name>hadoop.tmp.dir</name>
         <value>file:/usr/local/hadoop-2.7.3/tmp</value>
    </property>
</configuration>

5、修改hdfs-site.xml

<configuration>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:9001</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///usr/local/hadoop-2.7.3/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///usr/local/hadoop-2.7.3/dfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
</configuration>

6、修改mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

7、修改yarn-site.xml

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop-namenode</value>
</property>
</configuration>

将配置好的hadoop-2.7.3文件夹分发给所有slave吧,本例就一台slave

scp -r /usr/local/hadoop-2.7.3/ root@slave:/usr/local/

启动Hadoop

[root@master hadoop-2.7.3]# sbin/start-all.sh

master上执行jps查看以下进程是否都存在

13312 ResourceManager
19555 Jps
13158 SecondaryNameNode
12857 NameNode
13451 NodeManager
12989 DataNode

slave上执行jps查看

14112 Jps
9300 NodeManager
9179 DataNode

初次搭建,需要格式化namenode

[root@master hadoop-2.7.3]# bin/hadoop namenode -format

Hadoop相关管理界面

Hadoop集群管理界面http://192.168.1.240:50070/
从中可以查看节点启动的相关信息,也可以通过日志定位启动过程中的问题

Paste_Image.png

mapreduce任务执行管理界面http://192.168.1.240:8088

Paste_Image.png

执行Hadoop自带MR示例程序

hadoop提供的示例程序做了这件事:用正则表达式dfs[a-z.]+来搜索所有的输入文件,对搜索出的结果汇总并排序

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep /user/test1/input /user/test1/output 'dfs[a-z.]+'

其中输出文件目录需要制定hdfs的绝对目录,否则,会输出到/user/root下

任务执行进度可以在http://192.168.1.240:8088上查看,执行完毕后执行下面的命令查看结果

[root@localhost hadoop-2.7.3]# bin/hdfs dfs -cat /user/test/output/*
6    dfs.audit.logger
4    dfs.class
3    dfs.server.namenode.
2    dfs.period
2    dfs.audit.log.maxfilesize
2    dfs.audit.log.maxbackupindex
1    dfsmetrics.log
1    dfsadmin
1    dfs.servers
1    dfs.replication
1    dfs.file

FAQ:

1、环境搭建好,启动hadoop时,NameNode进程无法启动
初次启动,没有执行格式化命令
2、配置文件中注意格式和路径,写错了很难查出来
3、Hadoop启动hdfs时,datanode无法启动的问题
问题描述:java.io.IOException: Incompatible clusterIDs in /home/lxh/hadoop/hdfs/data: namenode clusterID = CID-a687ed3c-45d2-456c-828d-bc5d8af2a0cf; datanode clusterID = CID-2169f5c7-b111-4af8-a899-56be4bc64702
原因:执行hdfs namenode -format后,current目录会删除并重新生成,其中datanode/current/VERSION文件中的clusterID也会随之变化,而datanode的datanode/current/VERSION文件中的clusterID保持不变,造成两个clusterID不一致。
解决方法:所以为了避免这种情况,可以再执行的namenode格式化之前,删除datanode的current文件夹,或者修改datanode的VERSION文件中出clusterID与namenode的VERSION文件中的clusterID一样,然后重新启动dfs。
3、注意关闭防火墙(以及关闭防火墙的开机启动)

systemctl stop firewalld.service #停止firewall

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

推荐阅读更多精彩内容

  • 看到题目有没有一种高大上的感觉?毛线,当前是个人、是个公司都在说自己搞大数据,每天没有几个PB的数据入库,每天没有...
    丁小晶的晶小丁阅读 4,441评论 0 50
  • 经过一系列的前期环境准备,现在可以开始Hadoop的安装了,在这里去apache官网下载2.7.3的版本http:...
    欢醉阅读 1,646评论 8 28
  • 1 目的将hadoop 2.7.1 安装到 166、167、168 三台机器上2 提供环境练习环境192.168....
    灼灼2015阅读 3,383评论 4 40
  • 那我就用生活中的现象,再来谈认识,说明,领会。 两个小年轻在谈恋爱,好多用的方法不是认识而是领会,女孩说讨厌,男孩...
    玩哲录阅读 5,354评论 9 72
  • 土豆泥:沒有名字的花很容易被忘記,但只要有一點雨水和縫隙,它們就會認真開放。 @土豆泥 花開花謝飛滿天, 一念心清...
    如心1976阅读 308评论 0 0