百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

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

bigegpt 2025-02-27 14:22 9 浏览

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
  • 1

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

添加环境变量

sudo gedit /etc/profile
  • 1

在末尾加上四行:

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_65export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:$PATH
  • 1

  • 2

  • 3

  • 4

  • 5

输如命令使环境生效

source /etc/profile
  • 1

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

java –version
  • 1

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

3.4 SSH 安装以及配置

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

sudo apt-get update
  • 1

安装ssh

sudo apt-get install openssh-server
  • 1

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

ps -e | grep ssh
  • 1

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

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

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

更行apt-get

再次安装ssh

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

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

验证SSH是否成功安装输入

ssh localhost
  • 1

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

生成密钥Pair

ssh-keygen –t rsa
  • 1

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

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

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

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

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

cat id_rsa_master.pub >> .ssh/authorized_keys
  • 1

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

以下配置将仅仅在master主机上进行

3.5 配置 Hadoop

(为了配置方便,将解压缩好的hadoop-2.7.1文件夹拷贝到home根目录下面)

在hadoop-2.7.1文件夹下创建文件,输入

mkdir hadoop-2.7.1/tmpmkdir hadoop-2.7.1/hdfsmkdir hadoop-2.7.1/hdfs/namemkdir hadoop-2.7.1/hdfs/data
  • 1

  • 2

  • 3

  • 4

输入命令查看ip地址

ifconfig -a
  • 1

eg. 我所使用的IP地址

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

  • 2

  • 3

  • 4

修改hosts

sudo gedit /etc/hosts
  • 1

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

为了方便修改hostname

sudo gedit /etc/hostname
  • 1

master 的改为 master

slave1 的改为 slave1

slave2 的改为 slave2

修改环境变量

cd ~/hadoop-2.7.1/
  • 1

(1)hadoop-env.sh

gedit etc/hadoop/hadoop-env.sh
  • 1

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

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

(2)core-site.xml

gedit etc/hadoop/core-site.xml
  • 1

在configuration标签中添加

  fs.defaultFS hdfs://master:9000   hadoop.tmp.dir file:/home/zhaoli/hadoop-2.7.1/tmp 
  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

(3)mapred-site.xml

创建并编辑

cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xmlgedit etc/hadoop/mapred-site.xml
  • 1

  • 2

  • 3

(4)hdfs-site.xml

gedit etc/hadoop/hdfs-site.xml
  dfs.namenode.name.dir file:/home/zhaoli/hadoop-2.7.1/hdfs/name   dfs.datanode.data.dir file:/home/zhaoli/hadoop-2.7.1/hdfs/data   dfs.replication 2   dfs.namenode.secondary.http-address master:9001 
  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

  • 17

(5)yarn-site.xml

gedit etc/hadoop/yarn-site.xml
  yarn.nodemanager.aux-services mapreduce_shuffle   yarn.nodemanager.auxservices.mapreduce.shuffle.class org.apache.hadoop.mapred.ShuffleHandler   yarn.resourcemanager.address master:8032   yarn.resourcemanager.scheduler.address master:8030   yarn.resourcemanager.resource-tracker.address master:8031   yarn.resourcemanager.admin.address master:8033   yarn.resourcemanager.webapp.address master:8088 
  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

  • 17

  • 18

  • 19

  • 20

  • 21

  • 22

  • 23

  • 24

  • 25

  • 26

  • 27

  • 28

  • 29

(6)slaves文件

gedit etc/hadoop/slaves
  • 1

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

slave1 slave2
  • 1

  • 2

  • 3

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

前提是设置好ssh

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

  • 2

  • 3

格式化hdfs

进入hadoop home目录

bin/hdfs namenode-format
  • 1

启动集群

sbin/start-all.sh
  • 1

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

如上则说明启动成功

运行wordcount测试集群

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

bin/hadoop fs –mkdir /input
  • 1

查看文件是否被创建

bin/hadoop fs –ls /
  • 1

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

in1.txt

Hello world hello hadoop

in2.txt

Hello Hadoop hello whatever

上传两个文件进input

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

查看输入文件是否传入

bin/hadoop fs -ls /input
  • 1

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

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

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

bin/hadoop fs -ls /output
  • 1

查看结果

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

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

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

注:转载文章均来自于公开网络,仅供学习使用,不会用于任何商业用途,版权归原作者所有,如果无意中侵犯到原作者的权益,请您与我们联系删除或者授权事宜,联系邮箱:contact@dataunion.org。转载数盟网站文章请注明原文章作者,否则产生的任何版权纠纷与数盟无关。文章投稿邮箱:contact@dataunion.org

关于我们ID:DataScientistUnion

数盟网站:www.dataunion.org

数盟微博:@数盟社区

数盟微信:DataScientistUnion

数盟【机器学习群】463848712

数盟【数据可视化群】 179287077

数盟【数据分析群】 174306879

相关推荐

Linux 系统启动完整流程

一、启动系统流程简介如上图,简述系统启动的大概流程:1:硬件引导UEFi或BIOS初始化,运行POST开机自检2:grub2引导阶段系统固件会从MBR中读取启动加载器,然后将控制权交给启动加载器GRU...

超专业解析!10分钟带你搞懂Linux中直接I/O原理

我们先看一张图:这张图大体上描述了Linux系统上,应用程序对磁盘上的文件进行读写时,从上到下经历了哪些事情。这篇文章就以这张图为基础,介绍Linux在I/O上做了哪些事情。文件系统什么是...

linux入门系列12--磁盘管理之分区、格式化与挂载

前面系列文章讲解了VI编辑器、常用命令、防火墙及网络服务管理,本篇将讲解磁盘管理相关知识。本文将会介绍大量的Linux命令,其中有一部分在“linux入门系列5--新手必会的linux命令”一文中已经...

Linux环境下如何设置多个交叉编译工具链?

常见的Linux操作系统都可以通过包管理器安装交叉编译工具链,比如Ubuntu环境下使用如下命令安装gcc交叉编译器:sudoapt-getinstallgcc-arm-linux-gnueab...

可算是有文章,把Linux零拷贝技术讲透彻了

阅读本文大概需要6.0分钟。作者:卡巴拉的树链接:https://dwz.cn/BaQWWtmh本文探讨Linux中主要的几种零拷贝技术以及零拷贝技术适用的场景。为了迅速建立起零拷贝的概念...

linux软链接的创建、删除和更新

大家都知道,有的时候,我们为了省下空间,都会使用链接的方式来进行引用操作。同样的,在系统级别也有。在Windows系列中,我们称其为快捷方式,在Linux中我们称其为链接(基本上都差不多了,其中可能...

Linux 中最容易被黑客动手脚的关键目录

在Linux系统中,黑客攻击后常会针对关键目录和文件进行修改以实现持久化、提权或隐藏恶意活动。本文介绍下黑客最常修改的目录及其手法。一、/etc目录关键文件有:/etc/passwd和/et...

linux之间传文件命令之Rsync傻瓜式教程

1.前言linux之间传文件命令用什么命令?本文介绍一种最常用,也是功能强大的文件同步和传输工具Rsync,本文提供详细傻瓜式教程。在本教程中,我们将通过实际使用案例和最常见的rsync选项的详细说...

Linux下删除目录符号链接的方法

技术背景在Linux系统中,符号链接(symlink)是一种特殊的文件,它指向另一个文件或目录。有时候,我们可能需要删除符号链接,但保留其指向的目标目录。然而,在删除符号链接时可能会遇到一些问题,例如...

阿里云国际站注册教程:aa云服务器怎么远程链接?

在全球化的今天,互联网带给我们无以计数的便利,而云服务器则是其中的重要基础设施之一。这篇文章将围绕阿里云国际站注册、aa云服务器如何远程链接,以及服务器安全防护如Ddos防火墙、网站应用防护waf防火...

Linux 5.16 网络子系统大范围升级 多个新适配器驱动加入

Linux在数据中心中占主导地位,因此每个内核升级周期的网络子系统变化仍然相当活跃。Linux5.16也不例外,周一最新与网络相关的更新加入了大量的驱动和新规范的支持。一个较新硬件的驱动是Realt...

搭建局域网文件共享服务(Samba),手机电脑都能看喜欢的影视剧

作为一名影视爱好者,为了方便地观看自己喜欢的影视作品,在家里搞一个专门用来存放电影的服务器是有必要的。蚁哥选则用一台Ubuntu系统的电脑做为服务器,共享影音文件,其他同一个局域网内的电脑或手机可以...

分享一个实用脚本—centos7系统巡检

概述这周闲得慌,就根据需求写了差不多20个脚本(部分是之前分享过的做了一些改进),今天主要分享一个给平时运维人员用的centos7系统巡检的脚本,或者排查问题检查系统情况也可以用..实用脚本#!/bi...

Linux 中创建符号链接的方法

技术背景在Linux系统里,符号链接(SymbolicLink),也被叫做软链接(SoftLink),是一种特殊的文件,它指向另一个文件或者目录。符号链接为文件和目录的管理带来了极大的便利,比...

一文掌握 Linux 符号链接

符号链接(SymbolicLink),通常被称为“软链接”,是Linux文件系统中一种强大而灵活的工具。它允许用户创建指向文件或目录的“快捷方式”,不仅简化了文件管理,还在系统配置、软件开发和日...