一、环境要求:

1、        虚拟机安装并设置网络;

2、        修改主机地址映射;

3、        必备软件:Jdk、Development Tools   Development Libraries gcc c++等已安装;

4、        修改windows主机C:\Windows\System32\drivers\etc\hosts

在hosts文件中添加虚拟机中的主机地址映射如下:

Ip地址             Linux主机名

5、         配置四台主机免密登录,两台namenode互相免密,namenode节点均免密登录至其他节点。

二、节点规划

 

NN

DN

ZK

ZKFC

JN

RM

NM

V1

Y

 

Y

Y

 

Y

 

V2

Y

Y

Y

Y

Y

 

Y

V3

 

Y

Y

 

Y

 

Y

V4

 

Y

 

 

Y

 

Y

三、配置步骤:

  1、每台Linux主机都要修改/etc/profile,添加Hadoop环境变量

  export HADOOP_HOME=/usr/software/hadoop-2.7.1

  export PATH=$PATH:$HADOOP_HOME/bin

修改之后,source /etc/profile          使系统变量生效

  2、配置HADOOP守护进程,这部分主要处理给出的配置文件中设置一些重要参数,配置好后,将文件拷贝至其他需要安装hadoop的主机。

  l  etc/hadoop/core-site.xml

  <configuration>

    <property>

     <name>fs.defaultFS</name>

      <value>hdfs://V1:9000</value>

    </property>

    <property>

    <name>ha.zookeeper.quorum</name>

       <value>V1:2181,V2:2181,V3:2181</value>

    </property>

    <property>

    <name>hadoop.tmp.dir</name>

    <value>/opt/hadoop_data/tmp</value>

  (注释:要手动创建目录)

   </property>

     <property>

      <name>io.file.buffer.size</name>

    <value>131702</value>

   </property>

  </configuration>

  解释:

Fs.default,使用逻辑路径,避免双namenode切换带来路径不一致问题

Hadoop.tmp.dir,hadoop文件系统依赖的基础配置,许多路径均依赖它,若hdfs.site.xml中未配置namenode和datanode的存放位置,默认就存放在此配置路径。

ha.zookeeper.quorum,指定zookeeper服务所在主机及端口号

io.file.buffer.size,在序列化文件中使用的读/写缓冲区大小

  l  etc/hadoop/hdfs-site.xml

  <configuration>

  <property>

   <name>dfs.replication</name>

    <value>2</value>

  </property>

   <property>

     <name>dfs.namenode.name.dir</name>

   <value>/opt/hadoop_data/namenode</value>

  (注释:要手动创建目录)

  </property>

   <property>

    <name>dfs.datanode.data.dir</name>

  <value>/opt/hadoop_data/datanode</value>

  (注释:要手动创建目录)

  </property>

  <property>

   <name>dfs.nameservices</name>

   <value>dy</value>

  </property>

    <property>

   <name>dfs.ha.namenodes.dy</name>

    <value>V1,V2</value>

    </property>

   <property>

     <name>dfs.namenode.rpc-address.dy.V1</name>

    <value>V1:9000</value>

    </property>

  <property>

   <name>dfs.namenode.rpc-address.dy.V2</name>

    <value>V2:9000</value>

   </property>

  <property>

  <name>dfs.namenode.http-address.dy.V1</name>

   <value>V1:50070</value>

    </property>

  <property>

    <name>dfs.namenode.http-address.dy.V2</name>

    <value>V2:50070</value>

  </property>

   <property>

    <name>dfs.namenode.shared.edits.dir</name>

    <value>qjournal://V2:8485;V3:8485;V4:8485/dy</value>

  </property>

    <property>

     <name>dfs.client.failover.proxy.provider.dy</name>

     <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>

  </property>

   <property>

    <name>dfs.ha.fencing.methods</name>

   <value>sshfence</value>

   </property>

  <property>

   <name>dfs.ha.fencing.ssh.private-key-files</name>

    <value>/root/.ssh/id_rsa</value>

   </property>

  <property>

   <name>dfs.journalnode.edits.dir</name>

    <value>/opt/hadoop_data/journal</value>

  </property>

  </configuration>

  解释:

dfs.replication是HDFS文件的副本数,不可超过datanode的个数

dfs.namenode.name.dor     namenode本地文件系统存放名字空间和传输日志的路径

dfs.datanode.data.dir          datanode的数据存放位置

dfs.nameservices         命名空间的逻辑名称,

dfs.ha.namenodes           命名空间中所有namenode的唯一标识名称,可以配置多个,使用逗号分割。该名称让datanode知道每个集群的所有namenode。

dfs.namenode.rpc-address.[nameservice ID].[namenode ID]        每个namenode监听的RPC地址

  dfs.namenode.http-address. [nameservice ID].[namenode ID]           每个namenode监听的http地址

  dfs.namenode.shared.edits.dir         是namenode读写journal node组的URI,通过这个URI,namenode可以读写edit log内容。URI的格式"qjournal://host1:port1;host2:port2;host3:port3/journalId”.

  dfs.client.failover.proxy.provider.[nameservice ID]             这里配置HDFS客户端连接到Active namenode的一个java类.

  dfs.ha.fencing.methods           配置active namenode出错时的处理类.当active namenode出错时,一般需要关闭该进程.处理方式可以是ssh也可以是shell.推荐使用ssh! 
  fs.journalnode.edits.dir           这是journalnode进程保持逻辑状态的路径.这是在linux服务器文件的绝对路径.

  l  etc/hadoop/yarn-site.xml

<configuration>

<property>

<name>yarn.resourcemanager.hostname</name>

<value>V1</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

</configuration>

解释:

yarn.resourcemanager.hostname        指的是运行ResourceManager机器所在的节点. 
yarn.nodemanager.aux-services   在hadoop2.2.0版本中mapreduce_shuffle,一定要看清楚.

etc/hadoop/mapred-site.xml

<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

</configuration>

解释:

mapreduce.framework.name 指的是使用yarn运行mapreduce程序.

etc/hadoop/slaves

V2

V3

V4

解释:

指定hdfs中的datanode节点

etc/hadoop/hadoop-env.sh

export JAVA_HOME=/usr/java/jdk1.7.0_71

解释:

hadoop集群格式化以及启动时会到次目录下寻找环境变量,必须配置。

将相关配置文件拷贝至其他主机。

3、配置zookeeper,

解压zookeeper-3.4.6.tar.gz;

拷贝一份配置文件 cp zoo_sample.cfg

(1)在所有zookeeper节点中的zoo.cfg文件作如下配置:

l  zoo.cfg

修改dataDir=/opt/zookeeper(注释:要手动创建目录)

server.1=V1:2888:3888

server.2=V2:2888:3888

server.3=V3:2888:3888

在所有zookeeper节点的dataDir(此处为/opt/zookeeper)目录中创建一个myid的文件,文件内容分别为1,2,3

(2)配置/etc/profile,

export ZOOKEEPER_HOME=/usr/software/zookeeper-3.4.6

export PATH=$PATH:$ZOOKEEPER_HOME/bin

将以上配置拷贝至其他zookeeper主机

4、集群初始化操作

(1)启动三个zookeeper:./zkServer.sh start

(2)启动JournalNode集群:./hadoop-daemon.sh start journalnode

(3)在其中一个namenode上格式化:./hdfs namenode -format

(4)把刚刚格式化之后的元数据同步到另外一个namenode上

a)启动刚刚格式化的namenode---- hadoop-daemon.sh start namenode;

b)在没有格式化的namenode上执行:hdfs namenode –bootstrapStandby;

c)启动第二个namenode;

(5)在其中一个namenode上初始化zkfc:hdfs zkfc –formatZK

解释:

格式化ZooKeeper集群,目的是在ZooKeeper集群上建立HA的相应节点

(6)停止上面节点:stop-dfs.sh

(7)全面启动:start-all.sh

注:zookeeper相关进程仍然需要手动开启

史上最完整Hadoop2.x完全分布式安装部署-小白也能学会的更多相关文章

  1. 史上最完整promise源码手写实现

    史上最完整的promise源码实现,哈哈,之所以用这个标题,是因为开始用的标题<手写promise源码>不被收录 promise自我介绍 promise : "君子一诺千金,承诺 ...

  2. hadoop2.6完全分布式安装HBase1.1

    本文出自:http://wuyudong.com/archives/119 对于全分布式的HBase安装,需要通过hbase-site.xml文档来配置本机的HBase特性,由于各个HBase之间通过 ...

  3. Hbase-0.96.2全然分布式安装部署

    Hbase-0.96.2全然分布式安装部署 环境: Hadoop-2.2.0 Zookeeper-3.4.6 hbase-0.96.2 1.下载hbase-0.96.2-hadoop2-bin.tar ...

  4. Hadoop-2.7.2分布式安装手册

    目录 目录 1 1. 前言 3 2. 特性介绍 3 3. 部署 5 3.1. 机器列表 5 3.2. 主机名 5 3.2.1. 临时修改主机名 6 3.2.2. 永久修改主机名 6 3.3. 免密码登 ...

  5. Hadoop-2.4.0分布式安装手册

    目录 目录 1 1. 前言 2 2. 部署 2 2.1. 机器列表 2 2.2. 主机名 2 2.2.1. 临时修改主机名 3 2.2.2. 永久修改主机名 3 2.3. 免密码登录范围 4 3. 约 ...

  6. Hadoop-2.4.0分布式安装手冊

    文件夹 文件夹 1 1. 前言 2 2. 部署 2 2.1. 机器列表 2 2.2. 主机名 2 2.2.1. 暂时改动主机名 3 2.2.2. 永久改动主机名 3 2.3. 免password登录范 ...

  7. Hadoop2.2.0分布式安装配置详解[2/3]

    前言 本文主要通过对hadoop2.2.0集群配置的过程加以梳理,所有的步骤都是通过自己实际测试.文档的结构也是根据自己的实际情况而定,同时也会加入自己在实际过程遇到的问题.搭建环境过程不重要,重要点 ...

  8. Hadoop2.2.0分布式安装配置详解[1/3]

    前言 在寒假前的一段时间,开始调研Hadoop2.2.0搭建过程,当时苦于没有机器,只是在3台笔记本上,简单跑通一些数据.一转眼一两个月过去了,有些东西对已经忘了.现在实验室申请下来了,分了10台机器 ...

  9. Hadoop-2.8.0分布式安装手册

    目录 目录 1 1. 前言 3 2. 特性介绍 3 3. 部署 5 3.1. 机器列表 5 3.2. 主机名 5 3.2.1. 临时修改主机名 6 3.2.2. 永久修改主机名 6 3.3. 免密码登 ...

随机推荐

  1. 第三章 Struts2配置详解

    3.1 Struts2执行过程    1.获取Struts2资源    2.在应用程序中导入Struts2的类库    3.在web.xml中配置StrutsPrepareAndExecuteFilt ...

  2. 第五章 HQL实用技术

    第五章   HQL实用技术5.1  使用HQL查询语句(面向对象查询语句)    5.1.1 编写HQL语句        5.1.1.1 from子句                    例:fr ...

  3. .NET Core中文分词组件jieba.NET Core

    .NET Core中文分词组件jieba.NET Core,由于实际的一些需求,需要做中文分词. 找到了一个jieba.NET https://github.com/anderscui/jieba.N ...

  4. [.NET产品源码保护].NET防止反编译(非混淆加密)

    .NET产品源码保护产生的背景: .NET源码加密方案支持C#及VB.NET等语言开发的ASP.NET及WINFORM应用.利用.NET支持托管代码与非托管代码共存的特性,将C#代码经过处理放于非托管 ...

  5. STM32F0的flash读写

    flash大小64k Rom+8k Ram的大小,stm32f051有64k Rom,总的分为 64页,一页1024byte ,在flash的Rom里面写数据掉电保存,相当于W25q80 uint32 ...

  6. JS 实现banner图的滚动和选择效果

    CSS+JS实现banner图滚动和点击切换 HTML 部分代码: <body> <div id="banner"> <div id="in ...

  7. bootstrap快速入门笔记(九)-响应式工具

    一,可用的类   超小屏幕手机 (<768px) 小屏幕平板 (≥768px) 中等屏幕桌面 (≥992px) 大屏幕桌面 (≥1200px) .visible-xs-* 可见 隐藏 隐藏 隐藏 ...

  8. DirectFB 之 字体显示

    通过本文,可以简单地了解directfb字体内部运行机制. 简介 SetFont函数,是每次写字体前必须调用的一个函数,否则directfb程序将会报错.这个函数是将某种字体与某个surface相关联 ...

  9. C#1所搭建的核心基础

    一,委托 委托封装了包含特殊返回类型和一组参数的行为,类似包含单一方法接口. 委托类型声明中所描述的类型签名决定了哪个方法可以用于创建委托实例,同时决定了调用的签名:委托类型实际上只是参数类型的一个列 ...

  10. [HNOI2004]宠物收养场 Treap前驱后继

    凡凡开了一间宠物收养场.收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物. 每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领 ...