Hadoop2.1全分布式集群安装

标签: hadoop2 分布 集群 | 发表时间:2013-09-24 06:23 | 作者:bhq2010
出处:http://blog.csdn.net

1. 环境

5个节点,配置如下:

dual core x86_64, 4GB RAM, 10GB Disk

Centos 6.4_x64

OpenJDK 1.7.0_9

hadoop-2.1.0-beta

互相之间千兆网连接。

每台机器上用于安装和启动hadoop的用户名都是xc

节点的hostname、安装的服务和ip如下:

hostname 安装服务 ip
h1-1 NN 172.16.0.198
h1-2 RM + SNN 172.16.0.199
h1-3 NM + DN 172.16.0.200
h1-4 NM + DN 172.16.0.201
h1-5 NM + DN 172.16.0.202

2. 准备

每个节点上的jdk已经装好了。
还需要设置ssh无密钥登录。我设置了h1-1和h1-2到所有节点的ssh无密钥登录,必须使得h1-1和h1-2这两个master都能够无密钥ssh登陆其他所有节点,包括自己。

还需要设置系统的/etc/hosts文件,将集群中各个节点的ip和主机名加入文件中:
172.16.0.198 h1-1
172.16.0.199 h1-2
172.16.0.200 h1-3
172.16.0.201 h1-4
172.16.0.202 h1-5

3. 配置

下载hadoop-2.1.0-beta,解压。
配置文件在etc/hadoop/下,启动脚本在sbin/下,功能脚本在bin/下
需要修改的配置文件有:
hadoop-env.sh
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
slaves
具体如下:
在hadoop-env.sh中设置JAVA_HOME。

core-site.xml设置:
<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://h1-1:9000</value>
  </property>
</configuration>

hdfs-site.xml设置:
<configuration>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/home/xc/dfs/name</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/home/xc/dfs/data</value>
  </property>
  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>
</configuration>

mapred-site.xml文件需要自己创建,配置如下:
<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>h1-2:10020</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>h1-2:19888</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.intermediate-done-dir</name>
    <value>/mr-history/tmp</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.done-dir</name>
    <value>/mr-history/done</value>
  </property>
</configuration>
虽然这里配置了jobhistory的web端口,但启动hadoop后,访问这个端口没有响应。telnet上面那两个端口也木有响应,暂时不知道为毛,但是不影响hdfs和跑mapreduce。

yarn-site.xml配置:
<configuration>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce.shuffle</value>
  </property>
  <property> 
    <description>The address of the applications manager interface in the RM.</description> 
    <name>yarn.resourcemanager.address</name> 
    <value>h1-2:18040</value> 
  </property> 
  <property> 
    <description>The address of the scheduler interface.</description> 
    <name>yarn.resourcemanager.scheduler.address</name> 
    <value>h1-2:18030</value> 
  </property> 

  <property> 
    <description>The address of the RM web application.</description> 
    <name>yarn.resourcemanager.webapp.address</name> 
    <value>h1-2:18088</value> 
  </property> 
  
  <property> 
    <description>The address of the resource tracker interface.</description> 
    <name>yarn.resourcemanager.resource-tracker.address</name> 
    <value>h1-2:8025</value> 
  </property> 
</configuration>

slaves配置:
h1-3
h1-4
h1-5

将配置好的文件分发到所有的节点。

4. 启动

启动前检查一下ssh是不是设置好了。在h1-1和h1-2上执行一边:
ssh 0.0.0.0
ssh h1-1/2/3/4/5
都能无密钥登录即可。
然后,在h1-1,即namenode所在的节点上执行:
$ cd hadoop_home_dir
$ ./bin/hdfs namenode -format
格式化hdfs。格式化后会在namenode节点和slaves节点上建立对应的目录(/home/xc/dfs)

PS: 我在h1-2节点上执行format后没有能够成功启动hdfs。

在h1-2,即resourcemanager所在的节点上执行:
$ cd hadoop_home_dir
$ ./sbin/start-all.sh

PS:我在h1-1上执行启动脚本,没有能够成功启动resourcemanager

启动完成后,在http://h1-1:50030能查看hdfs的状态,在http://h1-2:18088可以查看resourcemanager的状态

5. mapreduce

传一个文本文件到hdfs上,运行wordcount:
$ cd hadoop_home_dir
$ ./bin/hdfs dfs -put <src> <dst>
$ ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.1.0-beta.jar wordcount  

疑问:

1、为啥jobhistory看不到?
2、貌似hadoop2.1的hdfs没法和hadoop1.x的hdfs之间拷贝文件,不知到为啥?
3、明明我的3个nodemanager节点都是4G的内存,resourcemanager的web ui中却显示了3*8=24GB的内存,不知为啥?我装了一个伪分布的倒是显示了正确的内存容量。

作者:bhq2010 发表于2013-9-23 22:23:29 原文链接
阅读:68 评论:0 查看评论

相关 [hadoop2 分布 集群] 推荐:

BDRP分布式redis集群

- - 百度运维团队技术博客
BDRP(baidu distributed redis platform)是包含 twemproxy, redis,redis-sentinel等多个模块开发的分布式redis平台. bdrp已经在github上进行了开源, bdrp的github项目点这里. 目前redis集群架构主要有以下几个组件: twemproxy:redis的代理系统,可以选择多种数据分片算法 redis:集群的redis存储节点 sentinel:redis官方的集群高可用组件,可以监控redis主节点故障,并进行主备切换.

Nutch1.8+Hadoop1.2+Solr4.3分布式集群配置

- - 开源软件 - ITeye博客
Nutch 是一个开源Java 实现的搜索引擎. 它提供了我们运行自己的搜索引擎所需的全部工具. 当然在百度百科上这种方法在Nutch1.2之后,已经不再适合这样描述Nutch了,因为在1.2版本之后,Nutch专注的只是爬取数据,而全文检索的部分彻底的交给Lucene和Solr,ES来做了,当然因为他们都是近亲关系,所以Nutch抓取完后的数据,非常easy的就能生成全文索引.

Hadoop2.1全分布式集群安装

- - CSDN博客云计算推荐文章
每台机器上用于安装和启动hadoop的用户名都是xc. 节点的hostname、安装的服务和ip如下:. 每个节点上的jdk已经装好了. 还需要设置ssh无密钥登录. 我设置了h1-1和h1-2到所有节点的ssh无密钥登录,必须使得h1-1和h1-2这两个master都能够无密钥ssh登陆其他所有节点,包括自己.

分布式与集群的区别

- - 博客园_知识库
  简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率.   如果一个任务由10个子任务组成,每个子任务单独执行需1小时,则在一台服务器上执行改任务需10小时.   采用分布式方案,提供10台服务器,每台服务器只负责处理一个子任务,不考虑子任务间的依赖关系,执行完这个任务只需一个小时.

分布式和集群区别

- - 开源软件 - ITeye博客
分布式:一个业务分拆多个子业务,部署在不同的服务器上. 集群:同一个业务,部署在多个服务器上. 集群是解决高可用的,而分布式是解决高性能、高并发的. 1:分布式是指将不同的业务分布在不同的地方. 而集群指的是将几台服务器集中在一起,实现同一业务. 分布式中的每一个节点,都可以做集群. 举例:就比如新浪网,访问的人多了,他可以做一个群集,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将给哪一台去完成.

分布式集群环境hadoop、hbase、zookeeper搭建(全)

- - CSDN博客云计算推荐文章
集群环境至少需要3个节点(也就是3台服务器设备):1个Master,2个Slave,节点之间局域网连接,可以相互ping通,下面举例说明,配置节点IP分配如下:. 三个节点均使用centos 6.3系统,为了便于维护,集群环境配置项最好使用相同用户名、用户密码、相同hadoop、hbase、zookeeper目录结构.

亿级Web系统搭建——单机到分布式集群

- - 博客园_知识库
  当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题. 为了解决这些性能压力带来问题,我们需要在Web系统架构层面搭建多个层次的缓存机制. 在不同的压力阶段,我们会遇到不同的问题,通过搭建不同的服务和架构来解决.

集群、分布式你想好怎么用了吗?

- - 互联网 - ITeye博客
集群、分布式你想好怎么用了吗.        做互联网、做电子商务,我们都盼望着用户数和访问量不断的攀升,这意味着我们将有更多的业务,将有更多的订单,将会有更多的盈利. 欣喜之余,我们开始有更多的担忧,我们的应用能不能抗得住啊,当一个个的问题在高访问量的时候一个个的暴露出来时,我们的压力也就接踵而来,我们忙前忙后焦头烂额.

quartz集群分布式(并发)部署解决方案-Spring

- - 企业架构 - ITeye博客
项目中使用分布式并发部署定时任务,多台跨JVM,按照常理逻辑每个JVM的定时任务会各自运行,这样就会存在问题,多台分布式JVM机器的应用服务同时干活,一个是加重服务负担,另外一个是存在严重的逻辑问题,. 比如需要回滚的数据,就回滚了多次,刚好quartz提供很好的解决方案. 集群分布式并发环境中使用QUARTZ定时任务调度,会在各个节点会上报任务,存到数据库中,执行时会从数据库中取出触发器来执行,如果触发器的名称和执行时间相同,则只有一个节点去执行此任务.

HBase入门笔记(四)--完全分布式HBase集群安装配置

- - 学着站在巨人的肩膀上
HBase 是一个开源的非关系(NoSQL)的可伸缩性分布式数据库. 它是面向列的,并适合于存储超大型松散数据. HBase适合于实时,随机对Big数据进行读写操作的业务环境. 关于HBase的更多介绍请参见 HBase项目官网.     本文环境与上一讲-- 完全分布式Hadoop集群配置一致.