hadoop3.0.0-alpha1+jdk1.8.0

    xiaoxiao2021-04-02  38

    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)

    <configuration> 

     <property> 

       <name>fs.defaultFS</name>  

        <value>hdfs://192.168.1.121:9000</value> 

     </property> 

     

     <property> 

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

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

     </property> 

    </configuration>

     

    2.hdfs-site.xml 配置

     

    <configuration> 

     <property> 

      <name>dfs.replication</name> 

      <value>3</value> 

     </property> 

     <property> 

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

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

     </property> 

     <property> 

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

      <value>/opt/hadoop-3.0.0-alpha1hdfs/data</value> 

     </property> 

     

     <property> 

         <name>dfs.permissions</name> 

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

     </property> 

     

    </configuration> 

     

    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 

    <configuration> 

       <property> 

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

           <value>yarn</value> 

       </property> 

     

    <property> 

     <name>mapreduce.application.classpath</name> 

     <value> 

      /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/* 

     </value> 

    </property> 

    </configuration> 

     

    5.yarn.site.xml

    <configuration> 

     

    <!-- Site specific YARN configurationproperties --> 

       <property> 

           <name>yarn.nodemanager.aux-services</name> 

           <value>mapreduce_shuffle</value> 

       </property> 

       <property> 

           <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> 

           <value>org.apache.hadoop.mapred.ShuffleHandle</value> 

       </property> 

       <property> 

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

           <value>192.168.1.121:8025</value> 

       </property> 

       <property> 

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

           <value>192.168.1.121:8030</value> 

       </property> 

       <property> 

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

           <value>192.168.1.121:8040</value> 

       </property> 

    </configuration> 

     

    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 查看是否成功

    转载请注明原文地址: https://ju.6miu.com/read-665713.html

    最新回复(0)