# 从零开始搭建Hadoop2.7.1的分布式集群

2016年01月17日 21:49:43

Hadoop 2.7.1 (2015-7-6更新),Hadoop的环境配置不是特别的复杂,但是确实有很多细节需要注意,不然会造成许多配置错误的情况。尽量保证一次配置正确防止反复修改。

网上教程有很多关于Hadoop配置的,但是每一个教程都对应了一个版本信息,有一些教程也存在很大的问题,配置环境,系统环境都没说清楚。在此我将记录下来从零搭建Hadoop2.7.1的过程,以及搭建过程中所遇到的一些问题。

一 操作环境说明

1.1 :操作系统: window8.1

1.2 :虚拟机版本:VMware12

二 材料准备

2.1 ubuntu-14.10-desktop-amd64.iso (Ubuntu 光盘映像)

2.2 jdk-8u65-linux-x64.gz (Java 环境包)

2.3 hadoop-2.7.1.tar.gz (Hadoop 环境包)

三 搭建开始

3.1 Vmware 创建虚拟机

根据Hadoop的调度规则,我们将使用VMware 12 加载 ubuntu….iso来创建三个Ubuntu 虚拟机。创建用典型安装即可,以下是虚拟机的一些信息

虚拟机1:Master Ubuntu 14.10 64bit
虚拟机2:Slave1 Ubuntu 14.10 64bit
虚拟机3:Slave2 Ubuntu 14.10 64bit

以下操作将需要在所有配置机器上进行

3.2 解压文件

将jdk-8u65-linux-x64.gz 和hadoop-2.7.1.tar.gz 拷贝到3台虚拟机的一个文件夹中。我这里拷贝到了Home/Download文件夹中, 然后右键选择 Extract Here. (当然也可以zxvf)

3.3 配置JAVA

把jdk-8u65-linux-x64 重命名为jdk-8u65-linux-x64.tar.gz 并右键Extract Here,生成文件jdk 1.8.0_65

打开终端输入命令:
sudo mkdir /usr/lib/jvm

sudo cp -r Downloads/jdk1.8.0_65 /usr/lib/jvm/

添加环境变量

sudo gedit /etc/profile

在末尾加上四行:

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_65
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

输如命令使环境生效

source /etc/profile

输如命令查看环境是否配置成功

java –version

出现如上信息说明配置成功

3.4 SSH 安装以及配置

更新apt (由于是新系统可能会花一些时间)

sudo apt-get update

安装ssh

sudo apt-get install openssh-server

已有ssh或者安装成功了的输入命令

ps -e | grep ssh

如果用的是和我相同的ubuntu版本安装会遇到问题。安装过程中遇到404 Not Find(如果没有则跳过直接验证SSH)

这里写图片描述

下载sources.list 存入Home目录下输入命令覆盖原文件

sudo cp sources.list /etc/apt/sources.list

更行apt-get

sudo apt-get update

再次安装ssh

sudo apt-get install openssh-server

如遇到版本问题则参考以下命令安装

sudo apt-get install openssh-client=1:6.6p1-2ubuntu1

验证SSH是否成功安装输入

ssh localhost

出现以下提示说明安装成功

这里写图片描述

生成密钥Pair

ssh-keygen –t rsa

输入后一直回车选择默认即可

这里写图片描述

mater主机中输入命令复制一份公钥到home中

cp .ssh/id_rsa.pub ~/id_rsa_master.pub

把master的home目录下的id_rsa_master.pub拷到slave1,slave2的home下

slave1和 slave2的home目录下分别输入命令

cat id_rsa_master.pub >> .ssh/authorized_keys

至此实现了mater对slave1, slave2的无密码登陆

以下配置将仅仅在master主机上进行
3.5 配置 Hadoop
(为了配置方便,将解压缩好的hadoop-2.7.1文件夹拷贝到home根目录下面)
在hadoop-2.7.1文件夹下创建文件,输入

mkdir hadoop-2.7.1/tmp
mkdir hadoop-2.7.1/hdfs
mkdir hadoop-2.7.1/hdfs/name
mkdir hadoop-2.7.1/hdfs/data

输入命令查看ip地址

ifconfig -a

eg. 我所使用的IP地址

虚拟机1:Master   192.168.152.128
虚拟机2:Slave1   192.168.152.129
虚拟机3:Slave2   192.168.152.130

修改hosts

sudo gedit /etc/hosts

具体IP地址由上面给出,可根据自己的配置情况自行调整

这里写图片描述
为了方便修改hostname

sudo gedit /etc/hostname

master 的改为 master
slave1 的改为 slave1
slave2 的改为 slave2

修改环境变量

cd ~/hadoop-2.7.1/

(1)hadoop-env.sh

gedit etc/hadoop/hadoop-env.sh

找到JAVA_HOME=… 一行修改为JAVA HOME的路径

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_65

(2)core-site.xml

gedit etc/hadoop/core-site.xml

在configuration标签中添加

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

    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/zhaoli/hadoop-2.7.1/tmp</value>
    </property>

(3)mapred-site.xml

创建并编辑

cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
gedit etc/hadoop/mapred-site.xml

在configuration标签中添加

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

    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/zhaoli/hadoop-2.7.1/tmp</value>
    </property>

(4)hdfs-site.xml

gedit etc/hadoop/hdfs-site.xml

在configuration标签中添加

    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/zhaoli/hadoop-2.7.1/hdfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/zhaoli/hadoop-2.7.1/hdfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:9001</value>
    </property>

(5)yarn-site.xml

gedit etc/hadoop/yarn-site.xml

在configuration标签中添加

    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>master:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
    </property>

(6)slaves文件

gedit etc/hadoop/slaves

删除原有内容,根据配置修改,此处为

slave1
slave2

分发配置好的hadoop文件夹到slave1, slave2

前提是设置好ssh

scp -r hadoop-2.7.1 zhaoli@slave1:~/ 
scp -r hadoop-2.7.1 zhaoli@slave2:~/ 

格式化hdfs
进入hadoop home目录

bin/hdfs namenode -format

启动集群

sbin/start-all.sh

启动后分别在master, slave下输入jps查看进程

这里写图片描述

这里写图片描述

如上则说明启动成功

运行wordcount测试集群

进入hadoop home目录
在hdfs(分布式文件系统)中创建一个名为input的文件夹

bin/hadoop fs –mkdir /input

查看文件是否被创建

bin/hadoop fs –ls /

hadoop home 下创建一个inputfile 文件夹,并在inputfile里创建两个文件

in1.txt

Hello world hello hadoop

in2.txt

Hello Hadoop hello whatever

上传两个文件进input

bin/hadoop fs -put inputfiles/*.txt /input

查看输入文件是否传入

bin/hadoop fs -ls /input

这里写图片描述

用hadoop jar命令运行Hadoop自带的wordcount

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount /input /output

这里写图片描述

程序开始运行,成功后查看输出文件夹

bin/hadoop fs -ls /output

查看结果

bin/hadoop fs -cat /output/part-r-00000

这里写图片描述

至此hadoop分布式集群配置完成!

以上是对Hadoop的配置信息,希望能够尽可能的写得详细,但是终究不能概括所有的bug。之前也看了很多集群搭建的书和博客,还是遇到了很多困难,本次从零开始配置也是为了排除一些干扰,希望能够帮助到和我一样摸索前进的人吧。

Hadoop2.7.3完全分布式集群搭建和测试

这几天在学习Hadoop相关的东西,前些时候,搭建了单机和伪分布式的集群。但是在搭建完全分布式集群的时候遇到很多问题,网上找到很多文章,感觉都有些差别,因此,再次汇总一下,把我的详细的搭建过程记录下来...
  • XiaoXIANGZI222
  • XiaoXIANGZI222
  • 2016年10月08日 15:38
  • 28069

Hadoop单机、伪分布式集群搭建(十分详细)

要搭建Hadoop HA集群请戳这 今天终于把老师布置的项目做完了,闲来无事在机房的电脑上装了Ubuntu(用EasyBCD步骤非常简单,请自行百度),上学期在虚拟机上装了Hadoop,现在可以在实...
  • Dr_Guo
  • Dr_Guo
  • 2016年11月25日 17:15
  • 9829

Hadoop单机、伪分布式集群搭建(十分详细)

下面我就一边搭建一边写怎么搭建Hadoop伪分布模式。 1.下载jdk并安装 去官网下就可以了,下完之后把文件移到/opt/Java下 [plain] view plain cop...
  • XiaoXIANGZI222
  • XiaoXIANGZI222
  • 2016年09月25日 16:08
  • 2267

Hadoop2.7.2之集群搭建(三台)

如果你还没有虚拟机,请参考:http://blog.csdn.net/uq_jin/article/details/51355124 如果你还没有试过单机模式,请参考:http://blog.csd...
  • u010435203
  • u010435203
  • 2016年05月27日 12:43
  • 9118

史上最详细的Hadoop环境搭建

GitChat 作者:鸣宇淳 原文: 史上最详细的Hadoop环境搭建 关注公众号:GitChat 技术杂谈,一本正经的讲技术 【不要错过文末活动哦】前言Hadoop在大数据技术体系中的地位至关重要,...
  • hliq5399
  • hliq5399
  • 2017年10月10日 15:23
  • 5792

Hadoop学习笔记-Hadoop HDFS环境搭建

Hadoop HDFS环境配置
  • u012342408
  • u012342408
  • 2016年01月18日 22:14
  • 11338

新手上路——hadoop2.7.3单机模式环境搭建

目的本人是一只hadoop新手,本篇文章主要是个人学习hadoop的学习笔记,内容是搭建单机模式下hadoop2.7.3开发环境。搭建环境及所需软件VMWare 12(64位),ubuntu-16.0...
  • zjsghww
  • zjsghww
  • 2017年02月04日 23:02
  • 2049

hadoop2.8.0的搭建

hadoop2.8.0环境搭建介绍我们使用最新的hadoop版本2.8.0来进行hadoop环境的搭建。操作系统环境如下: Ubuntu 14.04 CPU Intel(R) Core(...
  • hongbochen1223
  • hongbochen1223
  • 2017年06月05日 23:13
  • 2886

Hadoop2.7.2之集群搭建(单机)

首先新建一台虚拟主机,如果你还不会请参考 Vm配置安装CentOS-7-Minimal 然后安装JAVA运行环境,如果你还不会请参考 CentOS7 安装 Java 8 以及Tomcat8 开...
  • u010435203
  • u010435203
  • 2016年05月19日 13:53
  • 10763

Hadoop-2.7.1集群环境搭建

由于日志数据量越来越大,数据处理的逻辑越来越复杂,同时还涉及到大量日志需要批处理,当前的flume-kafka-storm-hbase-web这一套流程已经不能满足当前的需求了,所以只能另寻出路,于是...
  • u014039577
  • u014039577
  • 2015年11月13日 11:44
  • 3333
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:# 从零开始搭建Hadoop2.7.1的分布式集群
举报原因:
原因补充:

(最多只允许输入30个字)