zoukankan      html  css  js  c++  java
  • 二、Hadoop-2.6的完全分布式安装模式

    一、Hadoop的3中运行模式

    1.1、单机模式。安装简单,几乎不用作任何配置,但仅限于调试用途;

    1.2、伪分布式模式。在单节点上同时启动namenode、secondary namenode、datanode、JobTracker、TaskTracker 5个进程,模拟分布式运行的各个节点。

    1.3、完全分布式模式。正常的Hadoop集群,由多个节点构成。

    二、Hadoop-2.6的完全分布式安装模式

    2.0、准备文件

    (1)Jdk1.7(或其他版本):jdk-7u79-linux-x64.tar.gz

    (2)Hadoop安装包:hadoop-2.6.4.tar.gz

    可在Apache官方网站或者镜像网站下载Hadoop。

    http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.6.4/

    下载hadoop-2.6.4-tar.gz后,使用tar解压。

    2.1、为虚拟机添加hadoop账号

    2.2、安装jdk

    export JAVA_HOME=/home/hadoop/jdk1.7

    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

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

    此时,虚拟机拷贝多份。

    --------------------------拷贝多份虚拟机---------------------------

    2.3、修改虚拟机为固定IP地址(每个虚拟机都进行修改)

    2.4、配置hostname(每个虚拟机都进行修改)

    (1)sudo vim /etc/hostname

    每个虚拟机都进行修改,内容分别为(master、slave1、slave2…)

    2.5、配置hosts文件(每个虚拟机都进行修改)

    sudo vim /etc/hosts,将每台主机的ip地址、主机名都添加进来,该文件的内容如下:

    127.0.0.1 localhost

    192.168.0.40  master

    192.168.0.41  slave1

    192.168.0.42  slave2

    2.6、重启每个虚拟机

    2.7、配置ssh

    (1)ssh-keygen -t rsa   # 会有提示,都按回车就可以

    (2)cd ~/.ssh    

    (3)cat id_rsa.pub >> authorized_keys  # 将本机加入授权

    (4)将所有虚拟机的authorized_keys文件的内容,全都合并到一起,然后替换掉所有的authorized_keys文件。

    每个虚拟机都进行以上4步操作。

     

        测试:ssh localhost

           ssh 127.0.0.1

           ssh master

           ssh slave1

           ssh slave2

    问题: ssh: connect to host localhost port 22: Connection refused

    解决办法:sudo apt-get install openssh-server    // 安装ssh-serve

    注意事项:在进行ssh测试时,在这一步:

    Are you sure you want to continue connecting (yes/no)?

        此时输入:yes,而不能直接按回车,否则会连接失败。

    --------------------------部署hadoop-2.6---------------------------

    2.8、解压hadoop到某个目录下。并配置环境变量(所有虚拟机都要配置)

    (1)sudo vim /etc/profile。输入如下内容:

        #hadoop 

    export HADOOP_HOME=/home/hadoop/hadoop-2.6.4

    export PATH=$PATH:$HADOOP_HOME/bin

    export PATH=$PATH:$HADOOP_HOME/sbin

    (2)source /etc/profile,重新加载环境变量。

    9~14步:仅修改一个虚拟机

    2.9、修改配置文件 $HADOOP_HOME/etc/hadoop/core-site.xml

    该配置文件是hadoop的全局配置文件,下面的内容是配置NameNode的ip地址、监听的端口,以及tmp目录(tmp内容需要修改)。配置该文件的内容如下:

    <configuration>
    <!--指定namenode的地址-->
            <property>
                    <name>fs.defaultFS</name>
                    <value>hdfs://master:9000</value>
            </property>
    <!--用来指定使用hadoop时产生文件的存放目录--> 
            <property>
                    <name>hadoop.tmp.dir</name>
                   <value>/home/hadoop/hadoopdata</value>   
            </property>

    </configuration>

    属性fs.defaultFS表示NameNode节点地址,由“hdfs://主机名(或ip):端口号”组成。

    2.10、修改配置文件 $HADOOP_HOME/etc/hadoop/hdfs-site.xml

    该文件是hdfs的配置文件。修改内容如下:

    <configuration>

    <property>

    <name>dfs.replication</name>

    <value>1</value>

    </property>

    <property>

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

    <value>Master:50090</value>

    </property>

    <property>

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

    <value>file:/home/hadoop/hdfs/namenode</value>

    </property>

    <property>

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

    <value>file:/home/hadoop/hdfs/datanode</value>

    </property>

    </configuration>

    (1)属性“dfs.namenode.name.dir”表示NameNode

    存储命名空间和操作日志相关的元数据信息的本地文件系统目录,该项默认本地路

    径为”/tmp/hadoop-{username}/dfs/name”;

    (2)属性”dfs.datanode.data.dir“表示DataNode节点存储HDFS

    文件的本地文件系统目 录,由”file://本地目录”组成,该项默认本地路

    径为”/tmp/hadoop-{username}/dfs/data”。

    (3)属性“dfs.namenode.secondary.http-address”表示SecondNameNode

    主机及端口号(如果无需额外指定SecondNameNode角色,可以不进行此项配置);

    (4)属性“dfs.replication”表示,一个文件上传到hadoop上的副本数目,该值为1表示该文件只保存一份。

    2.11、修改配置文件 $HADOOP_HOME/etc/hadoop/mapred-site.xml

    该文件是mapReduce的配置文件。修改内容如下:

    <configuration>

    <property>     

    <name>mapreduce.framework.name</name>     <value>yarn</value>  

    </property>

    <property>

    <name>mapreduce.job.tracker</name>

    <value>hdfs://master:8888</value>

    <final>true</final>

    </property>

    </configuration>

    属性”mapreduce.framework.name“表示执行mapreduce任务所使用的运行框架,默认为 local,需要将其改为”yarn”.

    2.12、修改配置文件 $HADOOP_HOME/etc/hadoop/yarn-site.xml

    <configuration>   

    <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.log-aggregation-enable</name>

    <value>true</value>

    </property>

    <property>

    <name>yarn.log-aggregation.retain-seconds</name>

    <value>604800</value>

    </property>

    </configuration>

    (1)属性”yarn.resourcemanager.hostname”用来指定ResourceManager主机地址;

    (2)属性”yarn.nodemanager.aux-service“表示MR applicatons所使用的shuffle工具类。

    2.13、修改配置文件$HADOOP_HOME/etc/hadoop/hadoop-env.sh

    配置JAVA_HOME

    2.14、修改配置文件$HADOOP_HOME/libexec/hadoop-config.sh

    在下面3行注释下面添加JAVA_HOME:

    # Newer versions of glibc use an arena memory allocator that causes virtual

    # memory usage to explode. This interacts badly with the many threads that

    # we use in Hadoop. Tune the variable down to prevent vmem explosion.

    export JAVA_HOME= . . .

    2.15、把该配置好的hadoop目录移动到另外两个slave虚拟机中

    先压缩hadoop成压缩包,然后利用scp移动到其他虚拟机。

    scp /root/hadoop-2.6.4.tar.gz slave1:/home/hadoop

    scp /root/hadoop-2.6.4.tar.gz slave2:/home/hadoop

    然后,ssh连接到其他虚拟机之后,再解压。

    2.16、仅修改master节点的配置文件:$HADOOP_HOME/etc/hadoop/slaves

    集群中的master节点(NameNode、ResourceManager)需要配置其所拥有的slave节点,其中: 

    NameNode节点的slaves内容为:slave1 slave2

    ----------------------------配置完毕---------------------------------

    格式化并开启hadoop。以下操作需在master节点中运行。

    2.17、格式化hdfs文件系统

    $HADOOP_HOME/bin/hdfs namenode -format  //格式化

    此处,需要hdfs-site.xml的配置文件的dir目录已经创建。

    2.18、开启hadoop

    分别登陆如下主机并执行相应命令(位于$HADOOP_HOME/sbin目录下): 

    ①  执行start-yarn.sh命令,启动集群资源管理系统yarn ;

    ②  执行start-dfs.sh命令启动集群HDFS文件系统;

    查看进程的状态:输入jps

    分别登陆各master/slave节点执行jps命令,查看每个节点是否有如下Java进程运行:

    master节点运行的进程:ResourceManager、NameNode、SecondaryNameNode 

    slave节点运行的进程: NodeManager、DataNode  

    如果以上操作正常则说明Hadoop集群已经正常启动。

    此外,还可通过浏览器查看hadoop的运行状态:

    http://master:8088/

    http://master:50070/

  • 相关阅读:
    「APIO2017」商旅
    【CQOI2017】小Q的表格
    【HNOI2016】树
    【NOI2018模拟】Yja
    测试
    Loj #6073.「2017 山东一轮集训 Day5」距离
    「AHOI / HNOI2017」影魔
    Loj 6068. 「2017 山东一轮集训 Day4」棋盘
    【SDOI2014】向量集
    远程服务器安装nginx
  • 原文地址:https://www.cnblogs.com/yuan2016/p/5779323.html
Copyright © 2011-2022 走看看