layout: "post"

title: "Hadoop分布式集群搭建"

date: "2017-08-17 10:23"

catalog: true

---

基础环境


## 环境准备

1,软件版本

(1)在VMWare上面跑了三台虚拟机:CentOS7,系统内核3.10

(2)三台虚拟机的IP:192.168.102.3,192.168.102.4,192.168.102.5。三台机器分别作为hadoop的master,slaveA,slaveB。

(3)jdk1.8。

(4)hadoop2.7.3.download:http://apache.claz.org/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz

2,hostname设置

设置每台主机的hostname,这个文件位置随着系统的不同而不同,下面是CentOS7的hostname文件位置。

#vim /etc/hostname

文件中添加

Master

相应的其它两台机器设置此文件中的内容为SlaveA,SlaveB,重启有效,在下一步重启。

3, hosts配置(ip-hostname映射)

vim /etc/hosts
 192.168.102.3  Master
 192.168.102.4  SlaveA
 192.168.102.5  SlaveB

三台机器都需要做相同的设置,然后重启三台机器,让文件修改生效。

## SSH免密登录

一,关闭防火墙和SELINUX

配置ssh免密登录首先需要关闭防火墙和SELINUX。

1,我这里在本机CentOS7中进行了永久的防火墙关闭

关闭防火墙(其它的发行版关闭防火墙的命令是不同的)

//永久关闭防火墙
#chkconfig firewalld off
//查看防火墙状态
#systemctl status firewalld

关闭SELINUX

vim /etc/SELINUX/config
//注释掉所有,然后添加下面一行
SELINUX=disabled

以上两个步骤在三台机器中都要进行配置和设置。

二,配置ssh的免密登录

#cd ~/.ssh
#ssh-keygen -t rsa
//生成密钥的过程连续输入回车即可。

上述命令完成后~/.ssh目录中会多出id_rsa和id_rsa.pub文件。

1,配置master可以免密登录本机master

//将id_rsa.pub的文件内容追加到文件authorized_keys中
#cd ~/.ssh
#cat id_rsa.pub>>authorized_keys

这个时候使用以下命令登录主机master应该是不用输入密码可以直接登录的。

ssh master

2,配置master可以免密登录slaveA

//将master的id_rsa.pub拷贝到slaveA
#scp ~/.ssh/id_rsa.pub root@slaveA:/root/
//登录到slaveA,将拷贝过来的id_rsa.pub内容追加到~/.ssh/authorized_keys
#cd ~
#cat id_rsa.pub>>.ssh/authorized_keys

这个回到主机master进行登录主机slavaA是不用输入密码的。

ssh slaveA

3,配置master可以免密登录slaveB

这个过程和第二步中免密登录slaveA是同样的操作。

# Hadoop集群搭建

master环境搭建

1,下载hadoop2.7.3,然后进行解压

2,将hadoop系列命令加入PATH路径

#vim /etc/profile
//HADOOP_HOME变量的值换成自己的路径
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin

3,配置core-site.xml

#vim $HADOOP_HOME/etc/hadoop/core-site.xml
//添加如下内容
<configuration>
     <!--
    指定hadoop临时目录,否则默认是在/tmp下面,这个目录每次系
    统重启后会删除,所以每次启动hadoop都要执行namenode格式化。
    这里的目录需要自己创建。
      -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary
         directories.</description>
    </property>
    <!--设定namenode的ip/host和port,这里host换成你自己的
      hostname
    -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
</configuration>

4,配置hdfs-site.xml

#vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml

//添加如下内容
<configuration>
    //设定数据的复制份数,因为我这里有两台slave,所以设置为2
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    //设置namenode节点的数据存储目录,这个目录需要自己创建
    <property>
        <name>dfs.name.dir</name>
        <value>/usr/local/hadoop/hdfs/name</value>
    </property>
    //设置datanode节点的数据存储目录,这个目录需要自己创建
    <property>
        <name>dfs.data.dir</name>
        <value>/usr/local/hadoop/hdfs/data</value>
    </property>
</configuration>

5,配置mapred-site.xml

#cd $HADOOP_HOME/etc/hadoop
#cp mapred-site.xml.default mapred-site.xml
#vim mapred-site.xml
//添加以下内容
<configuration>
  <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
  </property>
   <property>
      <name>mapred.job.tracker</name>
      <value>http://master:9001</value>
  </property>
</configuration>

6,配置yarn-site.xml

<configuration>
<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    //指定resourceManager节点
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
</configuration>

7,配置slavas文件

#cd $HADOOP_HOME/etc/hadoop
#vim slaves
//添加两台slave
slaveA
slaveB

slaves环境搭建

这里配置slave的环境将master中配置好的hadoop目录中多有文件复制过来即可,包括复制hadoop目录和自己创建的数据目录,这里使用scp命令进行远程复制。

1,复制hadoop目录

#scp $HADOOP_HOME root@slaveA:$HADOOP_HOME/..
#scp $HADOOP_HOME root@slaveB:$HADOOP_HOME/..

2,复制data目录

同样使用scp命令将master中创建的data目录和tmp目录复制到两个slave中。

至此hadoop集群搭建完成,下面进行测试。

启动Hadoop


1,第一次启动需要进行格式化。

#hdfs namenode -format

2,启动hadoop集群,下面命令在master中进行

#start-all.sh

使用jsp命令查看在各个机器中的进程,如果显示以下进程则说明配置正确。

#jsp

master中进程

NameNode

SecondaryNameNode

ResourceManager

slave中进程

DataNode

NodeManager

Hadoop分布式集群搭建的更多相关文章

  1. Hadoop分布式集群搭建hadoop2.6+Ubuntu16.04

    前段时间搭建Hadoop分布式集群,踩了不少坑,网上很多资料都写得不够详细,对于新手来说搭建起来会遇到很多问题.以下是自己根据搭建Hadoop分布式集群的经验希望给新手一些帮助.当然,建议先把HDFS ...

  2. hadoop分布式集群搭建(2.9.1)

    1.环境 操作系统:ubuntu16 jdk:1.8 hadoop:2.9.1 机器:3台,master:192.168.199.88,node1:192.168.199.89,node2:192.1 ...

  3. Hadoop分布式集群搭建_1

    Hadoop是一个开源的分布式系统框架 一.集群准备 1. 三台虚拟机,操作系统Centos7,三台主机名分别为k1,k2,k3,NAT模式 2.节点分布 k1: NameNode DataNode ...

  4. hadoop分布式集群搭建前期准备(centos7)

    那玩大数据,想做个大数据的从业者,必须了解在生产环境下搭建集群哇?由于hadoop是apache上的开源项目,所以版本有些混乱,听说都在用Cloudera的cdh5来弄?后续研究这个吧,就算这样搭建不 ...

  5. [过程记录]Centos7 下 Hadoop分布式集群搭建

    过程如下: 配置hosts vim /etc/hosts 格式: ip hostname ip hostname 设置免密登陆 首先:每台主机使用ssh命令连接其余主机 ssh 用户名@主机名 提示是 ...

  6. Centos 7下Hadoop分布式集群搭建

    一.关闭防火墙(直接用root用户) #关闭防火墙 sudo systemctl stop firewalld.service #关闭开机启动 sudo systemctl disable firew ...

  7. 使用Docker在本地搭建Hadoop分布式集群

    学习Hadoop集群环境搭建是Hadoop入门必经之路.搭建分布式集群通常有两个办法: 要么找多台机器来部署(常常找不到机器) 或者在本地开多个虚拟机(开销很大,对宿主机器性能要求高,光是安装多个虚拟 ...

  8. 分布式计算(一)Ubuntu搭建Hadoop分布式集群

    最近准备接触分布式计算,学习分布式计算的技术栈和架构知识.目前的分布式计算方式大致分为两种:离线计算和实时计算.在大数据全家桶中,离线计算的优秀工具当属Hadoop和Spark,而实时计算的杰出代表非 ...

  9. 大数据系列之Hadoop分布式集群部署

    本节目的:搭建Hadoop分布式集群环境 环境准备 LZ用OS X系统 ,安装两台Linux虚拟机,Linux系统用的是CentOS6.5:Master Ip:10.211.55.3 ,Slave ...

随机推荐

  1. Unreal Engine 4 Radiant UI 插件入门(三)——从蓝图中调用JS

    不知道大家有没有混淆.这篇教程说的是从蓝图中调用JS的功能(以改变H5内的内容). 在安装了UE4和RadiantUI的前提下学习这篇教程.本篇教程接着上一篇教程,建议请先看上一篇. 第一步:在网页中 ...

  2. Angular表单控件需要类型和实际值类型不一致时实现双向绑定

    适用Angular版本为:>=2.本文同样适用于Ionic这类的基于Angular实现的框架. 本文的思路也适用于控件显示的值和实际的值不一样时实现双向绑定. 1. 问题描述 在使用md2的da ...

  3. Nodejs cluster模块深入探究

    由表及里 HTTP服务器用于响应来自客户端的请求,当客户端请求数逐渐增大时服务端的处理机制有多种,如tomcat的多线程.nginx的事件循环等.而对于node而言,由于其也采用事件循环和异步I/O机 ...

  4. serv-u 多域配置

    serv-U后,默认情况下可以通过在浏览器中输入http://IP 的方式登录到serv-u ftp 服务器控制台,也就是说serv-u在80端口监听,这样,如果想配置多个域或者是想在自己电脑上安装A ...

  5. mysql中csv文件的导入导出

    导出例子: select *from testinto outfile 'D:test.csv'fields terminated by ',' optionally enclosed by '&qu ...

  6. zabbix 配置发送邮件报警

    标签:监控/SQLServer/Windows 概述 本篇文章主要介绍如何配置zabbix借助外部邮件进行发送邮件报警,zabbix通过配置文件调用mailx来进行邮件的发送.在Centos6以上的版 ...

  7. 《Unity3D-播放被打中的时候粒子的特效的代码》

    //思路:首先我们需要给这个敌人身上放置上被打中的时候的粒子效果的组件,然后在获取和初始化这个组件然后在播放这个组件.虽然这个过程很简单但是我们要让 组件随着敌人的移动的时候随时触发就必须将这个组件的 ...

  8. 如何使用lxml的XPath功能

    用python写爬虫呢,最常见的过滤方式有BeautifulSoup, css selector, XPath, 如果使用前两个,BeautifulSoup包就能解决,然而使用XPath,就要引入lx ...

  9. 关于Oracle连接超时的问题

    测试环境ORACLE 11.2.0. 如果连接池设置单个连接闲置时间大于数据库连接超时时间,则连接池中的连接发出数据请求时会出现Connect timeout occurred错误, 这是由于连接超时 ...

  10. 接口自动化(Python)-利用正则表达式从返回的HTML文本中截取自己想要的值

    例如一个功能接口的返回值 是一个HTML文本: 例如我们要取上图中标识的id的值,并且这个值是动态的,这是我们就需要用到正则表达式进行匹配. 如下是正则匹配的方法(代码中都有注释): 我们在真正使用的 ...