之前都是单节点进行的操作与测试,现在进行真正的多节点系统搭建

1. 准备系统与配置

  共准备4台机器搭建Hadoop集群。基于CentOS6.2,jdk1.6.0_31,Hadoop2.2.0版本

  192.168.1.132  NameNode  Master132.Hadoop (Master)
  192.168.1.110  DateNode   Slave110.Hadoop   (Slave) 
  192.168.1.141  DateNode     Slave141.Hadoop   (Slave)
  192.168.1.131  DateNode   Slave131.Hadoop   (Slave)

2. 首先都分别对几台机器建立Hadoop用户  

    groupadd hadoop
useradd -g hadoop hadoop
passwd hadoop

  增加用户组和用户都是hadoop,我这里设置的密码 111111

3. 分别使用root用户,安装jdk并进行设置

  我这里JDK的安装路径是 /usr/java/jdk1.6.0_31

  修改设置文件/etc/profile,增加如下内容

    export JAVA_HOME=/usr/java/jdk1.6.0_31/
    export JRE_HOME=/usr/java/jdk1.6.0_31/jre
    export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
    export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
  为了使配置马上生效,请执行 source /etc/profile 命令

4. 修改Hosts文件,以便彼此可以访问

  文件的内容如下:(注意,把原有的内容都删除掉,否则可能有问题,这个问题困扰我很久)

  192.168.1.110 Slave110.Hadoop
  192.168.1.141 Slave141.Hadoop
  192.168.1.131 Slave131.Hadoop
  192.168.1.132 Master132.Hadoop
5. 修改主机名

  编辑 /etc/sysconfig/network 文件,修改其中的主机名

NETWORKING=yes
HOSTNAME=Master132.Hadoop
GATEWAY=192.168.1.1

  这个步骤需要重启,可以通过 hostname Maseter132.Hadoop 命令直接修改主机名

  每一台机器都需要修改,设置我们预期的主机名称

6. 修改ssh免密码连接的设置

  编辑/etc/ssh/sshd_config文件,使如下的配置生效

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

  重启服务  service sshd restart

7. 关闭防火墙

  chkconfig iptables off

以上所有的操作都是在root权限下进行的,下面的操作主要是使用hadoop用户(除非是没有权限)

9. 设置ssh免密码连接

  9.1 在/home/hadoop目录下,执行如下的命令

      ssh-keygen -t rsa

     多次回车之后,将会在 /home/hadoop/.ssl/目录下生产两个文件 id_rsa,id_rsa.pub

  9.2 执行 如下命令

    cat id_rsa.pub >> authorized_keys
    chmod 600 ~/.ssh/authorized_keys  (root权限)

  9.3 将所有的Slave节点的 id_rsa.pub 文件导入到Master节点的authorized_keys文件中

    cat id_rsa.pub >> ~/.ssh/authorized_keys

  9.4 使用同样的办法将Master节点的id_rsa.pub文件也导入到各个Slave节点的authorized_keys文件中

  9.5 验证相互之间免密码连接是否成功:ssh Slave110.Hadoop 等命令

10. 安装Hadoop(在Master机器上进行,root权限)

  10.1 使用之前已经编译好的文件:hadoop-2.2.0.tar.gz

  10.2 解压安装在相同的路径,我安装的路径为 /usr/hadoop/

  10.3 进行环境设置,修改/etc/profile文件,增加如下内容

export HADOOP_HOME=/usr/hadoop
export PATH=$PATH:$HADOOP_HOME/bin

    别忘了执行 source /etc/profile

  10.4 修改安装路径的权限(将hadoop目录的读权限给hadoop组的hadoop用户)

    chown –R hadoop:hadoop hadoop

11. 配置Hadoop(在Master机器上进行,hadoop权限)

  11.1 修改 /usr/hadoop/libexec/hadoop-env.sh 文件,对JAVA_HOME进行明确指定
      export JAVA_HOME=/usr/java/jdk1.6.0_31

  11.2 修改 /usr/hadoop/etc/hadoop/core-site.xml

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Master132.Hadoop:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value></value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/hadoop/tmp</value>
</property> <property>
<name>fs.default.name</name>
<value>hdfs://Master132.Hadoop:8010</value>
</property>
</configuration>

  11.3 修改 /usr/hadoop/etc/hadoop/hdfs-site.xml

<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Master132.Hadoop:</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.replication</name>
<value></value> 此处请注意,数值不能大于你的Datanode节点数
</property>
</configuration>

  11.4 修改 /usr/hadoop/etc/hadoop/mapred-site.xml

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>Master132.Hadoop:</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>Master132.Hadoop:</value>
</property>
</configuration>

  11.5 修改 /usr/hadoop/etc/hadoop/slaves

Slave110.Hadoop
Slave131.Hadoop
Slave141.Hadoop

12. 在Slave节点执行10,11步骤

  可以将Master节点的配置直接拷贝到其它节点,然后执行10步的内容,完成全部设置

至此,所有的配置完成,下面可以启动一下系统

13. 在Master节点启动系统

  13.1 运行如下命令进行格式化

    hadoop namenode -format

  13.2 正式启动hadoop

    start-all.sh

  13.3 验证启动的结果,执行如下命令:

    hadoop dfsadmin -report

    基本上,如果几个datenode都正常就可以了!

如果过程中有问题,请到/usr/hadoop/log 下面查看日志,寻找问题的线索

   

  

Hadoop学习历程(五、真正的分布式系统搭建)的更多相关文章

  1. Hadoop学习笔记—22.Hadoop2.x环境搭建与配置

    自从2015年花了2个多月时间把Hadoop1.x的学习教程学习了一遍,对Hadoop这个神奇的小象有了一个初步的了解,还对每次学习的内容进行了总结,也形成了我的一个博文系列<Hadoop学习笔 ...

  2. [Hadoop] Hadoop学习历程 [持续更新中…]

    1. Hadoop FS Shell Hadoop之所以可以实现分布式计算,主要的原因之一是因为其背后的分布式文件系统(HDFS).所以,对于Hadoop的文件操作需要有一套全新的shell指令来完成 ...

  3. Hadoop学习历程(一、编译)

    近期对Hadoop很感兴趣,下面是在CentOS系统上进行编译的分享 系统情况如下: 1. CentOS 6.2 64位    2. hadoop-2.2.0    3. jdk 1.6.0_31   ...

  4. Hadoop学习笔记五

    一.uber(u:ber)模式 MapReduce以Uber模式运行时,所有的map,reduce任务都在一个jvm中运行,对于小的mapreduce任务,uber模式的运行将更为高效. uber模式 ...

  5. Hadoop学习历程(四、运行一个真正的MapReduce程序)

    上次的程序只是操作文件系统,本次运行一个真正的MapReduce程序. 运行的是官方提供的例子程序wordcount,这个例子类似其他程序的hello world. 1. 首先确认启动的正常:运行 s ...

  6. Hadoop学习历程(三、第一个程序)

    根据之前的操作,我们已经可以正常的启动Hadoop了,关于真正的集群我会在之后进行说明.现在我们来看一下第一个程序吧 1. 在eclipse上建立一个java项目 2. 将 /usr/hadoop/s ...

  7. Hadoop学习历程(二、配置)

    以下是进行单节点Hadoop配置的内容,多节点也类似 1. 进行Hadoop的安装 1.1 上文进行了Hadoop的编译,将编译结果目录 hadoop-2.2.0 拷贝为 /usr/hadoop 目录 ...

  8. 【Hadoop学习之五】win7+Eclipse+hadoop3搭建本机开发环境

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 hadoop-3.1.1 拓扑: 知识准备: 1.eclip ...

  9. Hadoop学习之路(4)Intelij+Maven搭建Hadoop项目

    1创建工程 点击project--Maven--next 2通过maven导入项目依赖jar包 (1)设置maven自动导入依赖jar包 勾选 Import Maven projects automa ...

随机推荐

  1. DbUtility-第一次接触

    DbUtility这个以前就知道,可是由于底层是4.5的框架,我就一直没有仔细看过,最近自己的开发框架升级到了4.5,就开始学习这个组件. 总体来说,这个组件用起来非常简单.举例说明: await d ...

  2. WebService实现文件上传下载

    一:服务端:一个普通java web工程 package com.wzh.file; import com.sun.xml.ws.developer.StreamingAttachment; impo ...

  3. uva 10026 Problem C: Edit Step Ladders

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...

  4. 介绍PS大局观很不错的转文

    http://blog.chinaunix.net/uid-20535506-id-1931615.html PowerShell初探 PowerShell的一些特点: ü         内含上百种 ...

  5. PCB Layout爬电距离、电气间隙的确定

    爬电距离的确定:首先需要确定绝缘的种类:基本绝缘:一次电路与保护地工作绝缘 ① :一次电路内部:二次电路内部工作绝缘 ② :输入部分(输入继电器之前)内部,二次电路与保护地加强绝缘:一次电路与二次电路 ...

  6. Filter Conditions 过滤条件

    <pre name="code" class="html">Filter Conditions 过滤条件: Rsyslog 提供4种不同类型的&qu ...

  7. HDU5029--Relief grain (树链剖分+线段树 )

    题意:n个点构成的无根树,m次操作, 对于操作 x y z, 表示 x 到 y 路径上的 每个点 加一个 z 数字,可重复加.最后输出每个点 加的次数最多的那个数字,如果没有输出0. 赤裸裸的树链剖分 ...

  8. 【剑指offer】面试题24:二叉搜索树的后序遍历序列

    题目: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 思路: 递归 注意,主要就是假定数组为空时结果为fa ...

  9. 好吧,使用sql实现Dijkstra算法

    我本来不想做这么蛋疼的事情的,可是更蛋疼的是我看了王大神的博客然后中毒了!我发誓再!不!看!了!不过问题本身还是有一点意思的,正好学过图论没有实现过dijkstra,刚好在慕课上又学了一点pl/sql ...

  10. Bozo排序

    Bogo的变种,继续卖萌... Bogo每次都随机打乱数组,而Bozo每次随机选择两个位置,然后交换这两个位置的值.相同的是不断靠概率不断查看有序了没... public static void bo ...