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的无password登陆

下面配置将只在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.1的分布式集群的更多相关文章

  1. 搭建Hadoop2.7.1的分布式集群

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

  2. Hadoop(二)CentOS7.5搭建Hadoop2.7.6完全分布式集群

    一 完全分布式集群(单点) Hadoop官方地址:http://hadoop.apache.org/ 1  准备3台客户机 1.1防火墙,静态IP,主机名 关闭防火墙,设置静态IP,主机名此处略,参考 ...

  3. CentOS7.5搭建Hadoop2.7.6完全分布式集群

    一 完全分布式集群搭建 Hadoop官方地址:http://hadoop.apache.org/ 1  准备3台客户机 1.2 关闭防火墙,设置静态IP,主机名 关闭防火墙,设置静态IP,主机名此处略 ...

  4. Centos7.5搭建Hadoop2.8.5完全分布式集群部署

    一.基础环境设置 1. 准备4台客户机(VMware虚拟机) 系统版本:Centos7.5 节点配置: 192.168.208.128 --Master 192.168.208.129 --Slave ...

  5. Docker中搭建Hadoop-2.6单机伪分布式集群

    1 获取一个简单的Docker系统镜像,并建立一个容器. 1.1 这里我选择下载CentOS镜像 docker pull centos 1.2 通过docker tag命令将下载的CentOS镜像名称 ...

  6. 基于hadoop2.6.0搭建5个节点的分布式集群

    1.前言 我们使用hadoop2.6.0版本配置Hadoop集群,同时配置NameNode+HA.ResourceManager+HA,并使用zookeeper来管理Hadoop集群 2.规划 1.主 ...

  7. 超详细从零记录Hadoop2.7.3完全分布式集群部署过程

    超详细从零记录Ubuntu16.04.1 3台服务器上Hadoop2.7.3完全分布式集群部署过程.包含,Ubuntu服务器创建.远程工具连接配置.Ubuntu服务器配置.Hadoop文件配置.Had ...

  8. 搭建hbase1.2.5完全分布式集群

    简介 有一段时间,没写博客了,因为公司开发分布式调用链追踪系统,用到hbase,在这里记录一下搭建过程 1.集群如下: ip 主机名 角色 192.168.6.130 node1.jacky.com ...

  9. 摘要: CentOS 6.5搭建Redis3.2.8伪分布式集群

    from https://my.oschina.net/ososchina/blog/856678     摘要: CentOS 6.5搭建Redis3.2.8伪分布式集群 前言 最近在服务器上搭建了 ...

随机推荐

  1. (Go)07.strings与strconv的示例

    package main import ( "strconv" "fmt" "strings" ) func main() { str := ...

  2. Python 45 长度及颜色单位 、字体样式 、文本样式 、背景样式 、css基础选择器

    一:长度及颜色单位   长度单位       px(像素)        in(英寸)       pt(点),一个标准的长度单位,1pt = 1/72in       mm(毫米)       cm ...

  3. Eclipse 添加本地 SVN插件以及运行项目的流程

    去网上下载SVN插件包.里面包含文件如图: 把features和plugins文件夹里面的东西全部复制粘贴到eclipse安装目录下的features和plugins文件夹中就行.然后重启eclips ...

  4. C#微信公众号的开发——服务配置

    最近因为需要用C#开发微信公众号的一些功能,记录一下开发公众号的一些坑..... 首先先介绍一下,微信公众号的官方文档.虽然这个文档我感觉比较糙,但是还是可以借鉴一下让我们摸着石头过河的. 首先我们得 ...

  5. Spring Boot (13) druid监控

    druid druid是和tomcat jdbc一样优秀的连接池,出自阿里巴巴.除了连接池,druid哈hi有一个很实用的监控功能. pom.xml 添加了以下依赖后,会自动用druid连接池替代默认 ...

  6. SQLServer外部数据导入--Excel版

    例如要在test表里插入多行数据 假设字段有: ID.Name 首先要有需要导入的数据的Excel A1 对应ID B1 对应Name 选中Excel第一行的空白处,比如C1,在工具栏的函数文本框里输 ...

  7. [转]深入javascript——原型链和继承

    在上一篇post中,介绍了原型的概念,了解到在javascript中构造函数.原型对象.实例三个好基友之间的关系:每一个构造函数都有一个“守护神”——原型对象,原型对象心里面也存着一个构造函数的“位置 ...

  8. 打开手机摄像头扫描二维码或条形码全部操作(代码写的不好,请提出指教,共同进步,我只是一个Android的小白)

    (1)下载二维码的库源码 链接:http://pan.baidu.com/s/1pKQyw2n 密码:r5bv 下载完成后打开可以看到 libzxing 的文件夹,最后添加进 Android  Stu ...

  9. 【PostgreSQL-9.6.3】创建、修改、删除数据库

    1.创建数据库 create database database_name; 2.修改数据库的名称 alter database database_name rename to new_databas ...

  10. Percona Xtrabackup导出/导入单表

    默认情况下,InnoDB表不能通过直接复制表文件的方式在mysql服务器之间进行移植,即便使用了innodb_file_per_table选项.而使用Xtrabackup工具可以实现此种功能,不过,此 ...