集群搭建Hadoop 环境为CentOS7/JDK1.8

在看这一篇之前请先看:https://www.jianshu.com/p/bcb2f77d90e8 单机搭建Hadoop 保证可以熟悉hadoop的单机配置,这样不至于无脑粘贴xml文件内容导致各种问题。这边单机部署采用的是hadoop3这边我们回归到hadoop2.7去搭集群,其实都一样。

1.准备

本次要求准备三台服务器,这边演示使用VMware开了三个环境。

192.168.20.3 Master
192.168.20.4 Slave1
192.168.20.5 Slave2

这里要说一下,首先三个环境都要有一个相同名字的用户,我创建了hadoop用户,并互相配置好互信。
我们一步一步进行。
在Master/Slave1/Slave2的环境,执行命令sudo vim /etc/hosts

请依照自己具体ip进行设置

然后创建hadoop用户,我再Master已经有hadoop用户了,这边在Salve1和Slave2创建。原因就是如果我们不使用相同名字的用户,ssh配置会比较麻烦,很容易用自身用户名去做另外机器的用户名,从而出现用户无权限的问题。
具体创建方法:
root权限下分别执行
adduser hadoop
passwd hadoop
然后visudo 修改一下内容,给hadoop用户权限。
然后配置互信,执行ssh-keygen -t rsa 创建目录,和之前一样,这里不做赘述。唯一要提醒的一点是:
ssh 对目录的权限有要求,代码中要设置下新生成的config文件权限才行。
~目录权限是750,~/.ssh 的是700, ~/.ssh/* 的是600,~/.ssh/config 是700
否则容易出现权限问题。
配置好了之后,三台机器两两互信。可以采用两种方式:
1.ssh-copy-id -i
2.直接互相把ras.pub的内容粘贴到 authorized_keys 文件中。
都可以,我用的第二种,比较暴力,注意,一定要看好用户!!!别问我怎么知道的。
配置好了检查一下,如果互相可以ssh ip date就证明成功啦!比如在Master进行 ssh Slave1 date
第一次要写个yes再回车,等第二次就可以直接不输入密码得到结果了。这样准备工作就完成了。

2.正式搭建

集群和单机的区别就是准备工作稍微复杂一些。其他的差不多,我们把Master作为主节点,NameNode和ResourceManager都在主节点上,这边我把Secondary NameNode也放在主节点上了。Slave1和Salve2作为从节点,主要运行NodeManager和DataNode。
简单解释一下:

  • NameNode:主要是管理文件系统的命名空间,维护文件系统树和文件与目录。这些信息以两个文件形式永久保存在本地磁盘上:命名空间镜像文件和日志编辑文件。应该放在主节点上。
  • DataNode:文件系统的工作节点。他们需要储存并检索数据块,并且定期向NameNode发送他们所储存的块的列表。适合放在Slave节点上。
  • Secondary NameNode:辅助NameNode,它不能当作NameNode。定期合并编辑日志与命名空间镜像,防止编辑日志过大,一般单独的物理机上运行,当然也可以放主节点上。
  • ResourceManager:基于程序对资源的需求进行调度,是一个中心服务,做的工作就是去调度、启动每一个 Job 所属的 ApplicationMaster、另外监控 ApplicationMaster 的存在情况。放主节点上。
  • NodeManager:是每台机器框架代理,是执行应用程序的容器,监控应用程序资源的使用情况(CPU,内存,硬盘,网络)。然后向调度器也就是ResourceManager进行汇报。

好了!我们现在Master机器上搞事情!
在hadoop目录下,创建一个dfs目录,里面创建三个文件夹,分别是name、data、namesecondary
如果完成过之前帖子的单机部署那么我们需要,清理一下里面的current文件夹,直接删掉就ok。防止因为Version问题导致的不同步从而无法启动。
我又创建了一个tmp文件夹
hadoop下目录结构应该是这样的:


hadoop目录

好的,那么我们去etc/hadoop目录下去依次修改配置文件!
再一次注意!里面的路径和端口号不要无脑粘贴,请根据自己具体的路径去配置。
首先修改的是hdfs-site.xml

<configuration>
<property>
    <name>dfs.replication</name>
    <value>2</value>
</property>
<property>
    <name>dfs.namenode.name.dir</name>
    <value>/opt/soft/hadoop-2.7.1/dfs/name</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>/opt/soft/hadoop-2.7.1/dfs/data</value>
</property>
<property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
</property>
<property>
    <name>dfs.permissions</name>
    <value>false</value>
</property>
<property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>Master:50090</value>
</property>
</configuration>

然后是core-site.xml

<configuration>
        <property>
          <name>hadoop.tmp.dir</name>
          <value>/opt/soft/hadoop-2.7.1/tmp</value>
          <description>Abase for other temporary directories.</description>
        </property>
         <property>
           <name>fs.defaultFS</name>
           <value>hdfs://Master:9000</value>
         </property>
</configuration>

然后是mapred-site.xml

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

然后是yarn-site.xml

<configuration>
 <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>Master</value>
  </property>
    <!-- Site specific YARN configuration properties -->
   <property>
       <name>yarn.nodemanager.aux-services</name>
       <value>mapreduce_shuffle</value>
   </property>
   <property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
  </property>
  <property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
  </property>
</configuration>

最后是slaves文件

Slave1
Slave2

好的!!这样Master就配置好了!!!接下来就是配置Slave1和Slave2的时间了!我们可以采用简单暴力的方式去搞。直接把Master的hadoop文件夹传过去!对!就是直接传过去就行了,啥都不用改。

执行一下hdfs namenode -format格式化
如果成功了证明没啥问题,直接启动所有!start-all.sh
等待之后我们用jps指令看一下
Master:

Master

Slave1:
Slave1

Slave2:
Slave2

证明节点都正常。去web ui去看一下是否真正常。
我是去Master的50070端口查看
点击Datanodes选项卡可以看到:
http://192.168.20.3:50070

可以看到Slave1和Slave2的DataNode也都真实存在,证明集群部署成功!可以使用啦~!

PS:如果最后结果不正常,请分别查看hadoop的logs文件夹下的日志文件。会有错误提示。

---------------------------------------分割线-------------------------------------------------
当时写的太粗糙了,其实启动应该按照hdfs和yarn分别启动这样的方式。
hdfs就用 start-dfs.sh
yarn用start-yarn.sh
因为ResourceManager不一定会配置在Master上,如果在Slave1上,我们必须去Slave启动yarn,否则会执行失败。

还有一点,我们需要启动jobhistoy去看日志。这一点要配置mapred-site.xml配置文件

<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <!-- 设置jobhistoryserver 没有配置的话 history入口不可用 -->
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>Master:10020</value>
        </property>
        <!-- 配置web端口 -->
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>Master:19888</value>
        </property>
        <!-- 配置正在运行中的日志在hdfs上的存放路径 -->
        <property>
                <name>mapreduce.jobhistory.intermediate-done-dir</name>
                <value>/history/done_intermediate</value>
        </property>
        <!-- 配置运行过的日志存放在hdfs上的存放路径 -->
        <property>
                <name>mapreduce.jobhistory.done-dir</name>
                <value>/history/done</value>
        </property>
</configuration>

然后使用指令:
./mr-jobhistory-daemon.sh start historyserver
启动,当然停止就换成stop
我们以后就可以通过master:19888 去查询历史日志了。

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

推荐阅读更多精彩内容