Hadoop环境搭建

Hadoop环境搭建

在前人的基础上自己写的,内容上有些借鉴!

概述

Hadoop是一个分布式系统基础架构,需要多台服务器才能有效工作。本文采用虚拟机模拟多台服务器的情况,server-1作为NameNode,server-2与server-3作为DataNode,简单介绍Hadoop环境的搭建步骤。重点介绍SSH协议免密码访问配置和NameNode ,DataNode的配置。虚拟服务器的安装以及jdk的安装在这里不做详细叙述。

环境

三台虚拟Linux服务器(操作系统均为ubuntu-14.04.4-server-amd64)

server-1: NameNode

server-2: DataNode

server-3: DataNode

操作时使用的用户均为wisedu

创建用户的命令如下:

suduuseradd -d /usr/wisedu -m wisedu -g hadoop -G adm

(hadoop为创建的组)

JDK1.8

Hadoop2.7.3(只支持JDK1.7+)

安装步骤

一、安装jdk及配置环境变量

该步骤为必须!在此不做详叙。

二、配置Hosts文件

该步骤主要是为了后面操作各服务器方便,不需要输入IP地址,直接输入服务器名就可以访问。

将各个服务器的信息加入到hosts文件里,三个服务器的hosts文件都要修改。如下图:

三、配置SSH免密码进入

Hadoop集群的各个结点之间需要进行数据的访问,被访问的结点对于访问用户结点的可靠性必须进行验证,Hadoop采用的是SSH的方法通过密钥验证及数据加解密的方式进行远程安全登录操作,SSH主要通过RSA算法来产生公钥与私钥,在数据传输过程中对数据进行加密来保障数据的安全性和可靠性。当然,如果Hadoop对每个结点的访问均需要进行验证,其效率将会大大降低,所以才需要配置SSH免密码的方法直接远程连入被访问结点,这样将大大提高访问效率。

1) 为每个节点分别产生公、私密钥

开始之前我们先用ssh登陆下本机或者其他服务器,可以看到无论是本机还是其他主机,都是需要输入密码的:

键入命令:ssh-keygen -t dsa -f~/.ssh/id_dsa 该命令会产生公钥和私钥,产生目录在用户主目录下的.ssh目录下,如下图:

Id_dsa为私钥,id_dsa.pub为公钥。

输入命令:cp id_dsa.pub authorized_keys 将公钥文件复制成authorized_keys文件。

完成以上步骤,在本服务器上生成公钥和私钥的步骤基本完成,下面验证单机回环ssh免密码登录测试:

如图所示,直接输入ssh localhost不再需要输入密码,说明操作成功。在server-2与server-3上也按同样的方法生成公钥和私钥。

2) 让主结点(server-1)能通过SSH免密码登录两个子结点(server-2,server-3)

登陆server-2服务器,使用scp命令,

scp wisedu@server-1:~/.ssh/id_dsa.pub ./server-1.pub 将server-1服务器上的公钥文件复制到本地,如下:

使用命令 cat server-1.pub >> authorized.pub 将主服务器公钥server-1.pub追加到本机的公钥文件authorized.pub文件中。

如果不出问题,此时server-1服务就可以通过SSH免密码访问server-2了。测试如下图所示 表示成功了。

在server-3上做同样的操作,使server-1可以免密码登陆server-3。

四、安装并配置hadoop

1) 下载haddop

访问Hadoop官网下载安装包,2.7以后的版本只支持jdk1.7+

将下载的压缩包放到server-1/usr/wisedu/hadoop目录下。

在安装目录下创建四个目录:tmp、hdfs、hdfs/data、hdfs/name

2) _配置core-_site.xml文件

进入Hadoop安装目录下的etc/hadoop目录下,修改core-site.xml文件,在配置中加入如下内容,server-1为NameNode服务器名称。

fs.defaultFS

hdfs://server-1:9000

hadoop.tmp.dir

file:/usr/wisedu/hadoop/hadoop-2.7.3/tmp

io.file.buffer.size

131702

如图:

3) 配置hdfs-site.xml

进入Hadoop安装目录下的etc/hadoop目录下,修改_hdfs-site_.xml文件,在配置中加入如下内容:

dfs.namenode.name.dir

file:/usr/wisedu/hadoop/hadoop-2.7.3/hdfs/name

dfs.datanode.data.dir

file:/usr/wisedu/hadoop/hadoop-2.7.3/hdfs/data

dfs.replication

2

dfs.namenode.secondary.http-address

server-1:9001

dfs.webhdfs.enabled

true

4) 配置mapred-site.xml

进入Hadoop安装目录下的etc/hadoop目录下,修改mapred-site.xml文件,在配置中加入如下内容:

mapreduce.framework.name

yarn

mapreduce.jobhistory.address

server-1:10020

mapreduce.jobhistory.webapp.address

server-1:19888

如图:

5) 配置yarn-site.xml

进入Hadoop安装目录下的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

server-1:8032

yarn.resourcemanager.scheduler.address

server-1:8030

yarn.resourcemanager.resource-tracker.address

server-1:8031

yarn.resourcemanager.admin.address

server-1:8033

yarn.resourcemanager.webapp.address

server-1:8088

yarn.nodemanager.resource.memory-mb

768

如图:

6) 修改slaves,增加从服务器

进入Hadoop安装目录下的etc/hadoop目录下,修改slaves文件,增加从服务器,如下图:

7) 配置hadoop-env.sh、yarn-env.sh的JAVA_HOME

就算是配置了全局的环境变量JAVA_HOME也要配置这个!

进入Hadoop安装目录下的etc/hadoop目录下,修改hadoop-env.sh、yarn-env.sh两个文件,增加 exportJAVA_HOME=/usr/java/jdk1.8.0_111 (根据实际情况设置)。

五、向各节点复制Hadoop

使用scp命令像各个从服务器复制Hadoop:

scp-r./hadoop wisedu@server-2:/usr/wisedu/

scp-r./hadoop wisedu@server-3:/usr/wisedu/

六、格式化NameNode

在Hadoop安装目录下执行:bin/hdfs namenode -format

七、启动Hadoop

使用sbin目录下的start-all.sh启动服务

验证安装是否成功

用jps检验各后台进程是否成功启动

在namenode节点server-1上查看,显示如下图则表示启动成功。

在datanode节点上查看,显示如下则表示datanode节点启动成功。

通过网站查看集群情况

输入:http://192.168.220.129:8088得到如下页面,查看的是ResrouceManager状态

输入:http://192.168.220.129:50070得到如下页面,查看的是Hdfs状态

集群功能简单验证

1) hdfs文件系统功能简单验证

目录的验证:

在server-1服务器上,在hdfs系统根目录下新建目录test,

使用命令:hadoopfs -mkdir /test创建目录,并使用hadoop fs -ls/ 查看目录 ,如下图:

然后在server-2和server-3上查看是否也已经创建了该文件夹:

如图所示 server-2与server-3上均已创建该文件夹。

再在server-1上删除test文件夹,查看server-2,server-3上是否已经被删除,删除文件夹命令:haddop fs -rm -r /test,如下图所示:

如图所示,server-2,server-3上的文件夹也都被删除了,说明文件夹验证成功。

文件的验证:

在server-1上新建文件,查看server-2,server-3上是否同时会生成文件。

在/user/wisedu/temp/目录下新建两个文件test1.txt,test2.txt,内容如下图:

将temp目录下的所有文件复制到hdfs系统的in目录下面,

命令:hadoop fs -put /usr/wisedu/temp/* /in 如下图所示:

虽然报错了,但是文件依然成功上传上去了,并且内容没有丢失。再看server-2和server-3上是否也生成了文件,如下图:

如图中所示,server-2,server-3上也都成功生成了文件,并且内容无误。

再删除test1.txt,测试是不是所有服务上都删除了该文件,

删除命令:hadoop fs -rm /in/test1.txt ,如下图所示:

如图所示,server-1上删除test1.txt后,server-2,server-3上也都不存在该文件了。

至此我们可以判断hdfs系统工作正常!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值