zoukankan      html  css  js  c++  java
  • Hadoop2.6.0完全分布式安装

    1、修改主机名称

    对master/slave1/slave2同时配置为Master/Slave1/Slave2

    master@Master:~$ sudo gedit /etc/hostname


     上述3个虚机结点均需要进行以上步骤

    2、填写主机IP

    对master/slave1/slave2同时配置

    master@Master:~$ sudo gedit /etc/hosts

    192.168.48.128 master
    192.168.48.129 slave1
    192.168.48.130 slave2

     上述3个虚机结点均需要进行以上步骤

    3、建立hadoop用户组及新用户

    对master/slave1/slave2同时配置

    为hadoop集群专门设置一个用户组及用户

    master@Master:~$ sudo groupadd hadoop    //设置hadoop用户组

    master@Master:~$ sudo useradd -s /bin/bash -d /home/hnu -m hnu -g hadoop   //添加一个hnu用户,此用户属于hadoop用户组。

    master@Master:~$ sudo passwd hnu   //设置用户hnu登录密码

    master@Master:~$ su hnu  //切换到hnu用户中

    上述3个虚机结点均需要进行以上步骤

    4、 配置ssh免密码连入

    Ubuntu14.04系统下:

    对master/slave1/slave2同时配置

    master@Master:~$ sudo apt-get install openssh-client=1:6.6p1-2ubuntu1

    master@Master:~$ sudo apt-get install openssh-server

    上述3个虚机结点均需要进行以上步骤

    (1) 每个结点分别产生公私密钥。

    hnu@Master:~$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

    以上命令是产生公私密钥,产生目录在用户主目录下的.ssh目录中,如下:

    hnu@Master:~$ cd .ssh

    hnu@Master:~$ ls

    Id_dsa.pub为公钥,id_dsa为私钥,紧接着将公钥文件复制成authorized_keys文件,这个步骤是必须的,过程如下:

    hnu@Master:~/.ssh$ cat id_dsa.pub >> authorized_keys

    hnu@Master:~/.ssh$ ls

    用上述同样的方法在剩下的两个结点中如法炮制即可。

     上述3个虚机结点均需要进行以上步骤

     

    (2)本机ssh免密码登录测试

    hnu@Master:~$ ssh localhost

    在单机结点上用ssh进行登录,这将为后续对子结点SSH远程免密码登录作好准备。

    用上述同样的方法在剩下的两个结点中如法炮制即可。

    上述3个虚机结点均需要进行以上步骤

    (3)    让主结点(master)能通过SSH免密码登录两个子结点(slave)

    1)对slave1节点操作:

    为了实现这个功能,两个slave结点的公钥文件中必须要包含主结点的公钥信息,这样当master就可以顺利安全地访问这两个slave结点了。操作过程如下:

    hnu@Slave1:~/.ssh$ scp hnu@master:~/.ssh/id_dsa.pub ./master_dsa.pub

    hnu@Slave1:~/.ssh$  cat master_dsa.pub >> authorized_keys

    如上过程显示了slave1结点通过scp命令远程登录master结点,并复制master的公钥文件到当前的目录下,这一过程需要密码验证。接着,将master结点的公钥文件追加至authorized_keys文件中,通过这步操作,如果不出问题,master结点就可以通过ssh远程免密码连接slave1结点了。

    2)对slave2节点同样进行以上步骤

    在master结点中对两个子节点进行免密登陆:

    hnu@Master:~$ ssh slave1

    slave1结点首次连接时需要输入yes后成功接入,紧接着注销退出至master结点。然后再执行一遍ssh slave1,如果没有要求你输入”yes”,就算成功了,对node2结点也可以用同样的方法进行上述操作。

    表面上看,这两个节点的ssh免密码登录已经配置成功,但是我们还需要对主节点master也要进行上面的同样工作,据说是真实物理结点时需要做这项工作,因为jobtracker有可能会分布在其它结点上,jobtracker有不存在master结点上的可能性。

    3)对master自身进行ssh免密码登录测试工作:

    hnu@Master:~/.ssh$ scp hnu@master:~/.ssh/id_dsa.pub  ./master_dsa.pub

    hnu@Master:~/.ssh$ cat master_dsa.pub  >> authorized_keys

    hnu@Master:~/.ssh$ ssh master

    至此,SSH免密码登录已经配置成功。

    5、JDK与HADOOP环境变量配置

    对master/slave1/slave2同时配置

    解压JDK

    master@Master:~$ sudo tar -zxvf jdk-8u91-linux-x64.tar.gz -C /opt

    master@Master:~$ sudo gedit /etc/profile

    #JAVA

    export JAVA_HOME=/opt/jdk1.8.0_91

    export PATH=$PATH:$JAVA_HOME/bin

    export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

    #HADOOP

    export HADOOP_PREFIX=/home/hnu/hadoop-2.6.0

    export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin

    export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_PREFIX}/lib/native

    export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib:$HADOOP_PREFIX/lib/native"

    上述3个虚机结点均需要进行以上步骤

    6、HADOOP安装与配置

    对master配置

    解压hadoop

    master@Master:~$ sudo tar -zxvf hadoop-2.6.0.tar.gz -C /home/hnu

    master@Master:/home/hnu/hadoop-2.6.0/etc/hadoop$

    1)  core-site.xml

    <configuration>

    <property>

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

    <value>file:/home/hnu/hadoop-2.6.0/tmp</value>

    <description>A base for other temporary directories.</description>

    </property>

    <property>

    <name>fs.defaultFS</name>

    <value>hdfs://master:9000</value>

    </property>

    <property>

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

    <value>4096</value>

    </property>

    </configuration>

    
    

    2)   hadoop-env.sh 添加如下环境变量(一定要添加切勿少了) 

    export JAVA_HOME=/opt/jdk1.8.0_91

    export HADOOP_PID_DIR=/home/hnu/hadoop-2.6.0/pids

    在yarn-env.sh下添加如下环境变量

    export JAVA_HOME=/opt/jdk1.8.0_91

    export YARN_PID_DIR=/home/hnu/hadoop-2.6.0/pids

    3) hdfs-site.xml 

    <configuration>

    <property>

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

    <value>file:/home/hnu/hadoop-2.6.0/name</value>

    </property>

    <property>

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

    <value>file:/home/hnu/hadoop-2.6.0/data</value>

    </property>

    <property>

    <name>dfs.replication</name>

    <value>2</value>

    </property>

    <property>

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

    <value>master:50090</value>

    </property>

    <property>

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

    <value>true</value>

    </property>

    </configuration>

    4)  mapred-site.xml 

    <configuration>

    <property>

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

    <value>yarn</value>

    <final>true</final>

    </property>

    <property>

    <name>mapreduce.jobtracker.http.address</name>

    <value>master:50030</value>

    </property>

    <property>

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

    <value>master:10020</value>

    </property>

    <property>

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

    <value>master:19888</value>

    </property>

    <property>

    <name>mapred.job.tracker</name>

    <value>http://master:9001</value>

    </property>

    </configuration>

    5) yarn-site.xml 

    <configuration>

    <!-- Site specific YARN configuration properties -->

    <property>

    <name>yarn.resourcemanager.hostname</name>

    <value>master</value>

    </property>

    <property>

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

    <value>mapreduce_shuffle</value>

    </property>

    <property>

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

    <value>master:8032</value>

    </property>

    <property>

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

    <value>master:8030</value>

    </property>

    <property>

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

    <value>master:8031</value>

    </property>

    <property>

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

    <value>master:8033</value>

    </property>

    <property>

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

    <value>master:8088</value>

    </property>

    </configuration>

    6)slaves

    slave1

    slave2

    7、向各节点复制hadoop

    向slave1节点复制hadoop:

    hnu@Master:~$  scp -r ./hadoop-2.6.0/ slave1:~

    向slave2节点复制hadoop:

    hnu@Master:~$  scp -r ./hadoop-2.6.0/ slave2:~

    8、赋予权限

    对master/slave1/slave2执行相同操作

    将目录hadoop文件夹及子目录的所有者和组更改为用户hnu和组hadoop

    root@Master:/home/hnu# chown -R hnu:hadoop hadoop-2.6.0

    9、格式化hadoop

    hnu@Master:~$ source /etc/profile

    hnu@Master:~$ hdfs namenode -format

     

    10、启动/关闭hadoop

    start-all.sh/stop-all.sh

    start-dfs.sh/start-yarn.sh

    stop-dfs.sh/stop-dfs.sh

     

    查看hdfs/RM

    192.168.48.128:50070/192.168.48.128:8088

    master:50070/master:8088

    注:

    (1)hadoop集群启动jps查看后没有DATANODE 

    删除slave1/slave2  中  /home/hnu/hadoop/data/current/VERSION文件后重启即可

    微信扫一扫
    关注该公众号

     
     
  • 相关阅读:
    axis2的wsdl无法使用eclipse axis1插件来生成client--解决方法
    引用的存在价值
    阿里亲心小号实測
    UVA 1328
    XMPP 协议工作流程具体解释
    10g异机恢复后EM无法启动故障处理一例
    JVM 内存
    abstract class和interface有什么区别?
    ArrayList 如何增加大小
    IndexOutOfBoundsException ArrayList 访问越界
  • 原文地址:https://www.cnblogs.com/zhangguangxu98/p/8434212.html
Copyright © 2011-2022 走看看