hadoop3.0.0-alpha1+jdk1.8.0_121+ubuntu16.04LTS分布式搭建

Hadoop:Hadoop-3.0.0-alpha1     http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.0.0-alpha1/hadoop-3.0.0-alpha1.tar.gz

jdk:jdk_1.8.0_121     http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Ubuntu16.04LTS(未在root权限下搭建)

节点:namenode  192.168.1.121

datanode  192.168.1.124

datanode  192.168.1.125


第一步:安装jdk 

(1)选择一个路径(/usr/lib/jvm 其中jvm是我自己创建)将jdk的gz包移动到该目录下

(2)然后在该目录下:tar zxvf jdk-*-tar.gz

(3)配置环境变量vim  ~/.bashrc

export JAVA_HOME=/usr/lib/jvm/java1.8.0_121(相应的jdk版本号)

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib

export PATH=$JAVA_HOME/bin:$PATH

(4)source  ~/.bashrc 使配置生效

(5)使用java -version 检查是否成功

 

第二步先配置好ssh免密登录

(1)首先设置好主机名称在/etc/hostname里面设置

     设置好hosts 在/etc/hosts下设置  (设置 hostname-ip的映射)

注意:在每个节点下我都不是在root权限下操作。

用户名   主机名(hostname)     IP

Leename Lee-Master  192.168.1.121

Leedata1 Lee-Slaves1  192.168.1.124

Leedata2 Lee-Slaves2  192.168.1.125

(用户名在配置workersssh使用)

 

(2)使用检查ssh是否已经安装否则使用apt-get install ssh

(3)执行命令生成密钥:ssh-keygen –t rsa 一直回车

(4)cd ~/.ssh文件夹中观察生成的文件

(5)将生成的公钥id_rsa.pub内容追加到authorized_keys (执行命令:cat id_rsa.pub >> authorized_keys)

(6)可使用ssh localhost判断是否成功

(7)节点间的互相免密登录:

     前面步骤一样,后面在DataNode中将生成的公钥都发送到名称节点NameNode中执行命令:scp id_rsa.pub 用户名@主机名(或者ip):/tmp/id_rsa.pub.d1(d1是在传过       来后命名,表示是节点一的,自己设置,传输到tmp是因为不能直接传输到相应文件夹下)

     然后 mv /tmp/id_rsa.pub.d1~/.ssh

     同样 catid_rsa.pub.d1 >> authorized_keys

     这样就完成了一个节点的免密访问

     其他节点均是如此。

(8)将NameNode的authorized_keys 文件通过scp复制到所有的节点上,就实现了所有节点之间的免密登录。

 

第三步:配置Hadoop

1.core-site.xml文件配置(均为vim)

 

  

   fs.defaultFS  

    hdfs://192.168.1.121:9000 

  

 

  

     hadoop.tmp.dir 

      /opt/hadoop-3.0.0-alpha1/hdfs/tmp  //(hdfs/tmp是自己创建)

  

 

2.hdfs-site.xml 配置

 

 

  

  dfs.replication 

  3 

  

  

  dfs.namenode.name.dir 

  /opt/hadoop-3.0.0-alpha1/hdfs/name  //hdfs/name自己创建的

  

  

  dfs.datanode.data.dir 

  /opt/hadoop-3.0.0-alpha1hdfs/data 

  

 

  

     dfs.permissions 

      false  //不检查文件权限,有可能是我没使用root问题,如果加上权限检查总是显示无权访问,即使在DataNode中检测到数据节点已经正确启动(jps后有                                                     datanode线程),NameNode也检测不到。加上这句,去掉权限检查就好了

  

 

 

 

3.workers配置

leename@Lee-Master

leedata1@Lee-Slaves1 

leedata2@Lee-Slaves2

 

4.配置 mapred-site.xml

该步参考博客:http://blog.csdn.net/u010499619/article/details/52886872

先执行:cp mapred-site.xml.template mapred-site.xml 

 

    

       mapreduce.framework.name 

       yarn 

    

 

 

 mapreduce.application.classpath 

  

  /opt/hadoop-3.0.0-alpha1/etc/hadoop, 

  /opt/hadoop-3.0.0-alpha1/share/hadoop/common/*, 

  /opt/hadoop-3.0.0-alpha1/share/hadoop/common/lib/*, 

  /opt/hadoop-3.0.0-alpha1/share/hadoop/hdfs/*, 

  /opt/hadoop-3.0.0-alpha1/share/hadoop/hdfs/lib/*, 

  /opt/hadoop-3.0.0-alpha1/share/hadoop/mapreduce/*, 

  /opt/hadoop-3.0.0-alpha1/share/hadoop/mapreduce/lib/*, 

  /opt/hadoop-3.0.0-alpha1/share/hadoop/yarn/*, 

  /opt/hadoop-3.0.0-alpha1/share/hadoop/yarn/lib/* 

  

 

 

 

5.yarn.site.xml

 

 

 

    

       yarn.nodemanager.aux-services 

       mapreduce_shuffle 

    

    

       yarn.nodemanager.aux-services.mapreduce.shuffle.class 

       org.apache.hadoop.mapred.ShuffleHandle 

    

    

       yarn.resourcemanager.resource-tracker.address 

       192.168.1.121:8025 

    

    

       yarn.resourcemanager.scheduler.address 

       192.168.1.121:8030 

    

    

       yarn.resourcemanager.address 

       192.168.1.121:8040 

    

 

 

6.hadoop-env.sh配置

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

 

第四步:

将配置好的Hadoop发送到各个节点下。

执行命令:scp hadoop-3.0.0-alpha1 用户名@主机名(或者ip):/tmp

然后mv hadoop-3.0.0-alpha1 /opt

 

配置完成

 

第五步测试:

1.格式化namenode

bin/hdfs namenode –format

2. 启动dfs和yarn

sbin/start-dfs.sh 

sbin/start-yarn.sh

3.打开页面http://192.168.1.121:8088及http://192.168.1.121:9870 查看是否成功

你可能感兴趣的:(hadoop3.0.0-alpha1+jdk1.8.0_121+ubuntu16.04LTS分布式搭建)