这里是hadoop最小的配置,也就是修改最少量的东西让hadoop跑起来。

系统是 Centos6.7 64位, hadoop是2.6.0,虚拟机是VMWare WorkStation

假设虚拟机启动了4台机子:192.168.0.80 、192.168.0.155、192.168.0.157、192.168.0.146。这四台都做slave, 同时80还兼任master。我把root用户最为hadoop的使用者,没有新建别的用户

(设置虚拟机时还有个坑:每个虚拟机的网络连接必须选择桥接模式,并且一定要勾选复制物理网络连接状态,当然用虚拟可能还有其他问题,比如设置静态IP什么的,见)

1.在hadoop1机子上配置/etc/hosts。下面是我的配置。 注意要严格按照 IP 主机名 别名 的格式配置,切记切记。否则后面会发生很蛋疼的结果。 hadoop1做master, hadoop1/2/3/4做slaves

2.使hadoop1能够通过ssh登录所有的机子(包括他自己),在hadoop1上运行命令

  ssh-keygen -t dsa -f ~/.ssh/id_dsa    //这里使用的DSA加密,当然也可以用RSA

  分别运行四条命令

ssh-copy-id -i ~/.ssh/id_dsa.pub root@hadoop1     //要输入root用户在hadoop1机子上的密码

  ssh-copy-id -i ~/.ssh/id_dsa.pub root@hadoop2     //要输入root用户在hadoop2机子上的密码

  ssh-copy-id -i ~/.ssh/id_dsa.pub root@hadoop3     //要输入root用户在hadoop3机子上的密码

  ssh-copy-id -i ~/.ssh/id_dsa.pub root@hadoop4     //要输入root用户在hadoop4机子上的密码

3.修改hadoop配置文件中的yarn-env.sh 和hadoop-env.sh,在两个sh文件中把 JAVA_HOME配置上

3.修改core-site.xml,改为

  

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop1:9000</value>
</property>
</configuration>

4.修改hdfs-site.xml,改为

<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop1:9001</value>
</property>
<!--可以不配置下面的两个 dfs.namenode.name.dir 和 dfs.datanode.data.dir,不过如果配置了,那么得在master上建立这两个文件夹-->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/modules/hadoopData/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/modules/hadoopData/data</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>

4.把配置文件中的mapred-site.xml.template名称改为mapred-site.xml,同时把里面内容改为

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

5.修改yarn-site.xml,改为

<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
 <!--一定一定要有下面这个配置,他是告诉每个slave resourcemanager的位置-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop1</value>
</property>
</configuration>

6.修改slaves文件,每行一个,分别添加hadoop1,hadoop2,hadoop3,hadoop4

7.通过scp命令把/etc/hosts和hadoop以及jdk都复制到每个slave上

  scp /etc/hosts root@hadoop2:/etc/             //相同的文件会自动覆盖

我把hadoop和jdk都放在同一个文件夹下 ,如 /opt/modules 下面,那么只要命令

  scp -r /opt/modules root@hadoop2:/op/ 就可以了

8.格式化hdfs并启动hadoop

  命令 hadoop namenode -format

  在master上面,hadoop安装目录下的sbin目录,运行 start-dfs.sh 和 start-yarn.sh 就可以了

9.运行例子

  进入hadoop目录下的bin目录, 运行  ./hadoop jar ../share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep /input /ouput 'dfs[a-z.]+' 看看

附 :1. namenode WEB UI 的默认端口是 50070;resourcemanager WEB UI的默认端口是8088。 可以通过这两个端口用浏览器查看hadoop的状态(namenode 和 resourcemanager 都是在master上的)

  2.可以把hadoop下的bin和sbin都加入系统的PATH

hadoop2.6.0完全分布式部署的更多相关文章

  1. 基于Hadoop2.2.0版本号分布式云盘的设计与实现

    基于Hadoop2.2.0版本号分布式云盘的设计与实现 一.前言 在学习了hadoop2.2一个月以来,我重点是在学习hadoop2.2的HDFS.即是hadoop的分布式系统,看了非常久的源代码看的 ...

  2. 琐碎-hadoop2.2.0伪分布式和完全分布式安装(centos6.4)

    环境是centos6.4-32,hadoop2.2.0 伪分布式文档:http://pan.baidu.com/s/1kTrAcWB 完全分布式文档:http://pan.baidu.com/s/1s ...

  3. hadoop-2.6.0为分布式安装

    hadoop-2.6.0为分布式安装 伪分布模式集群规划(单节点)------------------------------------------------------------------- ...

  4. Hadoop2.5.0伪分布式环境搭建

    本章主要介绍下在Linux系统下的Hadoop2.5.0伪分布式环境搭建步骤.首先要搭建Hadoop伪分布式环境,需要完成一些前置依赖工作,包括创建用户.安装JDK.关闭防火墙等. 一.创建hadoo ...

  5. 在Win7虚拟机下搭建Hadoop2.6.0伪分布式环境

    近几年大数据越来越火热.由于工作需要以及个人兴趣,最近开始学习大数据相关技术.学习过程中的一些经验教训希望能通过博文沉淀下来,与网友分享讨论,作为个人备忘. 第一篇,在win7虚拟机下搭建hadoop ...

  6. hyperledger fabric 1.0.5 分布式部署 (八)

    gdb debug peer 程序 在开始我们从 github 上download 下来的源码包,实际上已经包含了可执行的 peer 程序,但是该程序是使用 release 方式编译的,并不支持gdb ...

  7. hyperledger fabric 1.0.5 分布式部署 (七)

    fabric 使用 fabric-ca 服务 准备部分 首先需要用户从github上download fabric-ca 的工程代码 cd $GOPATH/src/github.com/hyperle ...

  8. hyperledger fabric 1.0.5 分布式部署 (六)

    如何在相同的peer 节点上创建多个 channel 作者在hyperledger fabric 1.0.5 分布式部署 (五)已经向读者们介绍了一个简单的fabric 的部署流程,那么根据上一篇博客 ...

  9. hyperledger fabric 1.0.5 分布式部署 (五)

    梳理fabric e2e_cli 测试程序的具体步骤 作者在 hyperledger fabric 1.0.5 分布式部署 (一)中给读者们介绍了如何从零开始部署一个测试的 demo 环境,如果细心的 ...

随机推荐

  1. linux 指令(经常更新)

    添加一个服务 # sudo update-rc.d 服务名 defaults 99 删除一个服务 # sudo update-rc.d 服务名 remove 临时重启一个服务 # /etc/init. ...

  2. 收缩VC数据库

    注意: 在收缩日志前必须截断事务日志. 一. SQL Server 2008 收缩日志 (1) 使用SQL管理器收缩日志 第一步执行如下命令 ALTER DATABASE dbname SET REC ...

  3. [算法]String to Integer(atoi)

    Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cases. ...

  4. 好久没更了,确实太忙了--dedecms篇

    最近写了一个地方新闻网站,可以看看:www.qiluhuabao.com.模仿www.bashan.com写的 用的是dedecms,只听过,没用过.终于在上周来了一个必须用到cms的项目,现学现卖, ...

  5. ML二(决策树学习)

    决策树学习 Decision Tree Learning 1 基本概念 属性(attribute):树上的每个结点说明了对实例的某个属性的测试,该结点的每一个后继分支对应该属性的一个可能值. 熵(en ...

  6. 大话设计模式--访问者模式 Visitor -- C++实现实例

    1. 访问者模式: 表示一个作用于某对象结构中的和元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作. 访问者模式把数据结构和作用于结构上的操作之间的耦合脱开,使得操作集合可以 ...

  7. ListOperations

    RedisOperations<K,V> getOperations()  V index(K key, long index)  V leftPop(K key)  V leftPop( ...

  8. HashOperations

    存储格式:Key=>(Map<HK,HV>) 1.put(H key, HK hashKey, HV value) putAll(H key, java.util.Map<? ...

  9. getline()函数详解 (2013-03-26 17:19:58)

     学习C++的同学可能都会遇到一个getline()函数,譬如在C++premer中,标准string类型第二小节就是“用getline读取整行文本”.书上给的程序如下: int main() {   ...

  10. L99

    You're not obligated to win. You're obligated to keep trying.你不一定要获胜,但你必须不断尝试.He announced an expans ...