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服务器名称。

<property>

       <name>fs.defaultFS</name>

       <value>hdfs://server-1:9000</value>

   </property>

   <property>

       <name>hadoop.tmp.dir</name>

       <value>file:/usr/wisedu/hadoop/hadoop-2.7.3/tmp</value>

   </property>

   <property>

       <name>io.file.buffer.size</name>

       <value>131702</value>

</property>

 

如图:

 

 

3)  配置hdfs-site.xml

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

<property>

 <name>dfs.namenode.name.dir</name>

<value>file:/usr/wisedu/hadoop/hadoop-2.7.3/hdfs/name</value>

  </property>

<property>

  <name>dfs.datanode.data.dir</name>

  <value>file:/usr/wisedu/hadoop/hadoop-2.7.3/hdfs/data</value>

</property>

<property>

       <name>dfs.replication</name>

        <value>2</value>

</property>

<property>

       <name>dfs.namenode.secondary.http-address</name>

       <value>server-1:9001</value>

</property>

<property>

<name>dfs.webhdfs.enabled</name>

<value>true</value>

</property>

 

4)  配置mapred-site.xml

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

<property>

       <name>mapreduce.framework.name</name>

       <value>yarn</value>

   </property>

   <property>

       <name>mapreduce.jobhistory.address</name>

       <value>server-1:10020</value>

   </property>

   <property>

      <name>mapreduce.jobhistory.webapp.address</name>

       <value>server-1:19888</value>

   </property>

 

如图:

 

5)  配置yarn-site.xml

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

<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>server-1:8032</value>

   </property>

   <property>

      <name>yarn.resourcemanager.scheduler.address</name>

       <value>server-1:8030</value>

   </property>

   <property>

      <name>yarn.resourcemanager.resource-tracker.address</name>

       <value>server-1:8031</value>

   </property>

   <property>

      <name>yarn.resourcemanager.admin.address</name>

       <value>server-1:8033</value>

   </property>

   <property>

      <name>yarn.resourcemanager.webapp.address</name>

       <value>server-1:8088</value>

   </property>

   <property>

      <name>yarn.nodemanager.resource.memory-mb</name>

       <value>768</value>

   </property>

 

如图:

 

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值