文档章节

Hadoop集群环境搭建

xiaozhou18
 xiaozhou18
发布于 2016/11/15 10:01
字数 1338
阅读 68
收藏 1

一、集群规划

ip 安装的软件
192.168.52.136  node11  jdk   namenode  resourcemanager
192.168.52.138  node22 jdk   datanode zookeeper journalnode namenode  resourcemanager  nodemanager
192.168.52.137  node33 jdk  datanode  zookeeper journalnode  nodemanager
192.168.52.139  node44 jdk  datanode  zookeeper journalnode  nodemanager
   

 

二、hdfs集群 HA安装步骤

 

1、绑定ip和主机名映射  修改/etc/hosts文件 如下图

  其他几台机器也这样修改。

2、修改每台机器的主机名 vi /etc/sysconfig/network 内容如下

重新启动机器 命令reboot      查看主机名修改是否成功   命令hostname  显示如下

   其他机也要修改成对应的主机名 

3、配置node11到其他几台机器的免登录命令

[root@node11 .ssh]#  ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

[root@node11 .ssh]# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

4、把id_dsa.pub这个文件复制到其他几台机器上  并且把里面的内容加到authorized_keys这个文件里

命令  [root@node11 ~]# cat /opt/id_dsa.pub >> ~/.ssh/authorized_keys     (opt文件夹是id_dsa.pub所在文件的父目录)  

5、再配置node22到node11的免登录  在node22上执行命令  [root@node22 .ssh]# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa     

[root@node22 .ssh]#  cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

把生成的id_dsa.pub 拷贝到node11上命令[root@node22 .ssh]# scp -r id_dsa.pub node11:/opt/

在node11上执行命令  [root@node11 ~]#  cat /opt/id_dsa.pub >> ~/.ssh/authorized_keys

6、上传hadoop-2.5.1_x64.tar.gz文件  解压 命令[root@node1 java]# tar -zxvf hadoop-2.5.1_x64.tar.gz 

7、修改/usr/local/java/hadoop-2.5.1/etc/hadoop/hadoop-env.sh   修改内容如下

8、修改/usr/local/java/hadoop-2.5.1/etc/hadoop/core-site.xml   (该文件配置的是namenode的上传下载地址) 修改内容如下

<configuration>
<property>
    <name>fs.defaultFS</name>   #namenode集群主机
    <value>hdfs://hadoopservice</value>
</property>
<property>
    <name>hadoop.tmp.dir</name> #hadoop存放临时文件的地方
    <value>/opt/hadoop-2.5</value>
</property>
 <property>
   <name>ha.zookeeper.quorum</name>  #zookeeper集群地址   zookeeper集群搭建可以参考     #https://my.oschina.net/xiaozhou18/blog/787132 这个地址
   <value>node22:2181,node33:2181,node44:2181</value>
 </property>
</configuration>

9、修改/usr/local/java/hadoop-2.5.1/etc/hadoop/hdfs-site.xml    修改内容如下

<configuration>
<property>
  <name>dfs.nameservices</name>    #给hadoop集群服务起个唯一标识
  <value>hadoopservice</value>
</property>
<property>
  <name>dfs.ha.namenodes.hadoopservice</name>   #指定namenode机器的ip地址
  <value>nn1,nn2</value>
</property>
<property>
  <name>dfs.namenode.rpc-address.hadoopservice.nn1</name>   #指定nn1的文件上传下载地址
  <value>node11:8020</value>
</property>
<property>
  <name>dfs.namenode.rpc-address.hadoopservice.nn2</name> #指定nn2的文件上传下载地址
  <value>node22:8020</value>
</property>
<property>
  <name>dfs.namenode.http-address.hadoopservice.nn1</name>  #指定nn1的图形化界面地址
  <value>node11:50070</value>
</property>
<property>
  <name>dfs.namenode.http-address.hadoopservice.nn2</name> #指定nn2的图形化界面地址
  <value>node22:50070</value>
</property>
<property>
  <name>dfs.namenode.shared.edits.dir</name>
  <value>qjournal://node22:8485;node33:8485;node44:8485/abc</value>  #指定共享edits文件的地址
</property>
<property>
  <name>dfs.client.failover.proxy.provider.hadoopservice</name>
  <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
   <name>dfs.ha.fencing.methods</name>
    <value>
     sshfence
     shell(/bin/true)                           #指定30000毫秒后自动切换  (很重要)
    </value>
</property>
<property>
  <name>dfs.ha.fencing.ssh.private-key-files</name>
  <value>/root/.ssh/id_dsa</value>
</property>
<property>
  <name>dfs.journalnode.edits.dir</name>  #指定journalnode 数据在本地的存放地址
  <value>/opt/journalnode</value>
</property>
 <property>
   <name>dfs.ha.automatic-failover.enabled</name>  #设置当namenode挂了自动切换到另一台
   <value>true</value>
 </property>

 <property>
  <name>dfs.ha.fencing.ssh.connect-timeout</name>
  <value>30000</value>    #和上面那个shell(/bin/true)对应
</property>

</configuration>

10、修改/usr/local/java/hadoop-2.5.1/etc/hadoop/slaves   该配置文件指定datanode主机地址  修改内容如下

11、把node11中的hadoop-2.5.1文件拷贝到其他几台机器上 命令

scp -r  hadoop-2.5.1/ node22:/usr/local/java/
scp -r  hadoop-2.5.1/ node33:/usr/local/java/
scp -r  hadoop-2.5.1/ node44:/usr/local/java/

12、配置hadoop的环境变量  修改/etc/profile 文件内容如下

 其他几台机器也要改

13、在三台机器上分别启动journalnode  命令 [root@node22 hadoop]# hadoop-daemon.sh start journalnode

14、格式化hadoop   在namenode主机中的一个上  执行命令 hdfs namenode -format       这个命令执行后会创建/opt/hadoop-2.5文件   (这个地址是在core-site.xml文件中hadoop.tmp.dir中指定的)

把生成的hadoop-2.5文件拷贝到其他namenode的机器上 命令  [root@node22 bin]# scp -r /opt/hadoop-2.5/ node11:/opt/

15、格式化zookeeper  在namenode主机其中的一台上执行命令  [root@node11 bin]# ./hdfs zkfc -formatZK

16、启动hdfs  在namenode(这个namenode要设置在其他机器的免登录)的机器上执行 命令 start-dfs.sh 

17、查看hdfs集群搭建成功否    在浏览器输入 http://192.168.52.136:50070  显示如图所示  该namenode是active

在浏览器输入 http://192.168.52.138:50070  显示如图所示  该namenode是standby

 

杀掉active的namenode进程    在浏览器输入 http://192.168.52.138:50070  显示如图所示  该namenode是active     到此hdfs集群高可用配置成功!!!!

三、mapredurce  HA集群安装步骤

1、编辑/hadoop-2.5.1/etc/hadoop 下的yarn-site.xml  内容如下

<configuration>
 <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
<property>
   <name>yarn.resourcemanager.ha.enabled</name>
   <value>true</value>
 </property>
 <property>
   <name>yarn.resourcemanager.cluster-id</name>  #指定mapredurce集群的服务名称  不能和其他集群服务重复
   <value>hadoopmapred</value>
 </property>
 <property>
   <name>yarn.resourcemanager.ha.rm-ids</name>   #mapredurce集群的主机名
   <value>rm1,rm2</value>
 </property>
 <property>
   <name>yarn.resourcemanager.hostname.rm1</name>
   <value>node11</value>
 </property>
 <property>
   <name>yarn.resourcemanager.hostname.rm2</name>
   <value>node22</value>
 </property>
 <property>
   <name>yarn.resourcemanager.zk-address</name>  #zookeeper地址
   <value>node22:2181,node33:2181,node44:2181</value>
 </property>
</configuration>

2、把/hadoop-2.5.1/etc/hadoop 下的mapred-site-template.xml重名命为 mapred-site.xml命令 mv mapred-site.xml.template  mapred-site.xml    修改mapred-site.xml 内容如下

<configuration>
    <property>
        <name>mapreduce.framework.name</name>     #让mapredurce运行在yarn环境上
        <value>yarn</value>
    </property>
</configuration>

3、启动resourcemanager   命令  start-yarn.sh 
 

4、备resourcemanager不会自动启动要手动启动    在备resourcemanager机器上执行命令 

yarn-daemon.sh start  resourcemanager

5、测试mapredurce 集群安装是否成功   在浏览器中输入  http://192.168.52.136:8088/  显示如下界面

再在浏览器中输入    http://192.168.52.138:8088/ 显示如下

在把 node11中的resourcemanager 进程杀掉后  再在浏览器中输入 http://192.168.52.138:8088/ 显示如下

  mapreduce集群高可用安装成功!!!!!

 

 

 

© 著作权归作者所有

xiaozhou18
粉丝 4
博文 44
码字总数 89781
作品 0
哈尔滨
程序员
私信 提问

暂无文章

关于AsyncTask的onPostExcute方法是否会在Activity重建过程中调用的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/XG1057415595/article/details/86774575 假设下面一种情况...

shzwork
今天
6
0
object 类中有哪些方法?

getClass(): 获取运行时类的对象 equals():判断其他对象是否与此对象相等 hashcode():返回该对象的哈希码值 toString():返回该对象的字符串表示 clone(): 创建并返此对象的一个副本 wait...

happywe
今天
6
0
Docker容器实战(七) - 容器中进程视野下的文件系统

前两文中,讲了Linux容器最基础的两种技术 Namespace 作用是“隔离”,它让应用进程只能看到该Namespace内的“世界” Cgroups 作用是“限制”,它给这个“世界”围上了一圈看不见的墙 这么一...

JavaEdge
今天
8
0
文件访问和共享的方法介绍

在上一篇文章中,你了解到文件有三个不同的权限集。拥有该文件的用户有一个集合,拥有该文件的组的成员有一个集合,然后最终一个集合适用于其他所有人。在长列表(ls -l)中这些权限使用符号...

老孟的Linux私房菜
今天
7
0
面试套路题目

作者:抱紧超越小姐姐 链接:https://www.nowcoder.com/discuss/309292?type=3 来源:牛客网 面试时候的潜台词 抱紧超越小姐姐 编辑于 2019-10-15 16:14:56APP内打开赞 3 | 收藏 4 | 回复24 ...

MtrS
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部