环境:

操作系统:CentOS 6.5 64bit

Hadoop:Version 1.2.1

Servers:hadoopnamenode,hadoop2ndnamenode,hadoopdatanode1,hadoopdatanode2

注:为方便起见,在这4台server上,我都直接使用root账户进行操作

下载及环境变量设置:

在所有4台server上:

从Apache网站下载hadoop-1.2.1-bin.tar.gz,解压后放置在某个目录下,我放在了/usr/local下,为方便起见,我把目录hadoop-1.2.1改名为hadoop。

修改.bashrc,添加下面的环境变量:

export HADOOP_PREFIX=/usr/local/hadoop

export PATH=$PATH:$HADOOP_PREFIX/bin

配置hosts文件:

在/etc/hosts中添加:

153.65.170.11  hadoopnamenode

153.65.170.45  hadoop2ndnamenode

153.65.171.174  hadoopdatanode1

153.65.171.24  hadoopdatanode2

配置ssh

在hadoopnamenode上执行:

ssh-keygen//生成公钥、私钥

ssh-copy-id   –i   ~/.ssh/id_rsa.pub   root@hadoop2ndnamenode//将hadoopnamenode的公钥copy到其它三台server上

ssh-copy-id   –i   ~/.ssh/id_rsa.pub   root@hadoopdatanode1

ssh-copy-id   –i   ~/.ssh/id_rsa.pub   root@hadoopdatanode2

这么做的目的是可以不需要密码从hadoopnamenode上ssh到其它三台server上。经过ssh-copy-id后,这个公钥实际上会被添加到其它三台server的~/.ssh/authorized_keys文件中。

例如要从hadoopnamenode登录hadoop2ndnamenode,其流程大概是:hadoop2ndnamenode向hadoopnamenode发送一段随机字符串,hadoopnamenode用自己的私钥加密后,再发回来。hadoop2ndnamenode用事先储存的hadoopnamenode公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。

配置Hadoop

一般地,我们将使用下面的命令启动hdfs(即name node, secondary name node, data node)及MapReduce:

/usr/local/hadoop/bin/start-dfs.sh

/usr/local/hadoop/bin/start-mapred.sh

start-dfs.sh的流程大概是这样:

  1. 执行该命令的机器自动成为name node(以及job tracker),
  2. 启动/usr/local/hadoop/conf /slaves中列出的所有机器并作为data node(以及task tracker),
  3. 启动/usr/local/hadoop/conf /masters中列出的所有机器并作为secondary name node。

start-mapred.sh的流程类似:

  1. 执行该命令的机器自动成为job tracker,
  2. 启动/usr/local/hadoop/conf /slaves中列出的所有机器并作为task tracker

注:conf/masters文件往往给人带来困惑,直观上让人觉得它是为配置name node所用,但是因为(1)的原因,name node是不需要特别配置到conf/masters中,需要配置的只有secondary name node。

根据以上描述,我们可以开始修改hadoopnamenode上的masters文件,删除原内容,添加一行:

hadoop2ndnamenode

修改hadoopnamenode上的slaves文件,删除原内容,添加两行:

hadoopdatanode1

hadoopdatanode2

除此之外,需要在hadoopdatanode1与hadoopdatanode2上作出配置,使得data node知道name node,task tracker知道job tracker。所以分别修改hadoopdatanode1与hadoopdatanode2上的conf/core-site.xml:

<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://hadoopnamenode:10001</value>

</property>

</configuration>

及conf/mapred-site.xml:

<configuration>

<property>

<name>mapred.job.tracker</name>

<value>hadoopnamenode:10002</value>

</property>

</configuration>

格式化name node

在hadoopnamenode上执行:

hadoop  namenode  -format

启动Hadoop

首先,在hadoopnamenode上执行下面命令来启动所有name node, secondary name node, data node:

start-dfs.sh

可以使用jps命令在4台server上查看当前运行的java进程,正常情况你会看到:

hadoopnamenode上有进程:NameNode

hadoop2ndnamenode上有进程:SecondaryNameNode

hadoopdatanode1/hadoopdatanode2上有进程:DataNode

其次,在hadoopnamenode上执行下面命令来启动所有job tracker, task tracker:

start-mapred.sh

继续使用jps命令在4台server上查看当前运行的java进程,正常情况你会看到:

hadoopnamenode上有进程:NameNode, JobTracker

hadoop2ndnamenode上有进程:SecondaryNameNode

hadoopdatanode1/hadoopdatanode2上有进程:DataNode, TaskTracker

关闭Hadoop

在hadoopnamenode上:

stop-mapred.sh

stop-dfs.sh

其它:

Name node管理界面:http://hadoopnamenode:50070/

Job tracker 管理界面:http://hadoopnamenode:50030/

一个4节点Hadoop集群的配置示例的更多相关文章

  1. 【Big Data】HADOOP集群的配置(一)

    Hadoop集群的配置(一) 摘要: hadoop集群配置系列文档,是笔者在实验室真机环境实验后整理而得.以便随后工作所需,做以知识整理,另则与博客园朋友分享实验成果,因为笔者在学习初期,也遇到不少问 ...

  2. 【Big Data】HADOOP集群的配置(二)

    Hadoop集群的配置(二) 摘要: hadoop集群配置系列文档,是笔者在实验室真机环境实验后整理而得.以便随后工作所需,做以知识整理,另则与博客园朋友分享实验成果,因为笔者在学习初期,也遇到不少问 ...

  3. 基于Docker快速搭建多节点Hadoop集群--已验证

    Docker最核心的特性之一,就是能够将任何应用包括Hadoop打包到Docker镜像中.这篇教程介绍了利用Docker在单机上快速搭建多节点 Hadoop集群的详细步骤.作者在发现目前的Hadoop ...

  4. Hadoop集群的配置(一)

    摘要: hadoop集群配置系列文档,是笔者在实验室真机环境实验后整理而得.以便随后工作所需,做以知识整理,另则与博客园朋友分享实验成果,因为笔者在学习初期,也遇到不少问题.但是网上一些文档大多互相抄 ...

  5. Hadoop的学习前奏(二)——Hadoop集群的配置

    前言: Hadoop集群的配置即全然分布式Hadoop配置. 笔者的环境: Linux:  CentOS 6.6(Final) x64   JDK:    java version "1.7 ...

  6. hadoop 集群的配置

    在经过几天折腾,终于将hadoop环境搭建成功,整个过程中遇到各种坑,反复了很多遍,光虚拟机就重新安装了4.5次,接下来就把搭建的过程详细叙述一下 0.相关工具: 1,系统环境说明: 我这边给出我的集 ...

  7. Hadoop集群安装配置教程_Hadoop2.6.0_Ubuntu/CentOS

    摘自:http://www.powerxing.com/install-hadoop-cluster/ 本教程讲述如何配置 Hadoop 集群,默认读者已经掌握了 Hadoop 的单机伪分布式配置,否 ...

  8. 从VMware虚拟机安装到hadoop集群环境配置详细说明(第一期)

    http://blog.csdn.net/whaoxysh/article/details/17755555 虚拟机安装 我安装的虚拟机版本是VMware Workstation 8.04,自己电脑上 ...

  9. 三节点Hadoop集群搭建

    1. 基础环境搭建 新建3个CentOS6.5操作系统的虚拟机,命名(可自定)为masternode.slavenode1和slavenode2.该过程参考上一篇博文CentOS6.5安装配置详解 2 ...

随机推荐

  1. Java 线程池的原理与实现

    最近在学习线程池.内存控制等关于提高程序运行性能方面的编程技术,在网上看到有一哥们写得不错,故和大家一起分享. 建议:在阅读本文前,先理一理同步的知识,特别是syncronized同步关键字的用法.关 ...

  2. HTTP学习笔记(2)HTTP报文

    1,什么是http报文? 上一节我们了解到数据在浏览器和服务器之间进程传送,这些数据被称为报文流,报文流有流入流出之分,当然在也有上游和下游,这些都是来确定报文的流向. 报文的流向都是向下,而不会回流 ...

  3. poj 3613 经过k条边最短路 floyd+矩阵快速幂

    http://poj.org/problem?id=3613 s->t上经过k条边的最短路 先把1000范围的点离散化到200中,然后使用最短路可以使用floyd,由于求的是经过k条路的最短路, ...

  4. Magicodes.WeiChat——ASP.NET Scaffolding生成增删改查、分页、搜索、删除确认、批量操作、批量删除等业务代码

    关于T4代码生成这块,我之前写过几篇帖子,如:<Magicodes.NET框架之路——让代码再飞一会(ASP.NET Scaffolding)>(http://www.cnblogs.co ...

  5. 在服务器端将现有Git项目导入GitLab

    GitLab是由Ruby语言开发的基于Linux的Git服务器,是我见过的最强大的Git服务器.发现它之后,立即决定将Git服务器换成GitLab. 但安装好GitLab之后面临一个问题,如何将服务器 ...

  6. hmailserver

    开始使用: www.hmailserver.org 问题 让hmailserver的用户使用各自的中继来发送邮件: http://dagai.net/archives/968

  7. Unity3D——键盘控制移动

    public float speed = 6f; Vector3 movement; void FixedUpdate () { float h = Input.GetAxisRaw("Ho ...

  8. Unity开发游戏 flapybird 无广告老马版分享

    Flapybird确实是一款非常好玩的游戏,但是上手难度比较大.经过老马模仿加工,把游戏难度降低,而且不加入任何广告. 特此分享.下载地址:http://files.cnblogs.com/fly_d ...

  9. 拉勾网ThoughtWorks面试题代码实现

    今天看到一个很有意思的面试活动(活动链接),不需要简历,只有一道编程题目,在线提交你的代码即可. 本菜鸟对面试不感兴趣,但题目让我很兴奋,特来挑战一下~ 或许当你看到这篇博文的时候活动已经失效了,所以 ...

  10. jenkins2 Jenkinsfile和load

    更复杂的pipeline实例,使用了Jenkinsfile和load. 文章来自:http://www.ciandcd.com 文中的代码来自可以从github下载: https://github.c ...