zoukankan      html  css  js  c++  java
  • 完全分布式Hadoop2.3安装与配置

    一、Hadoop基本介绍

    Hadoop优点

    1.高可靠性:Hadoop按位存储和处理数据

    2.高扩展性:Hadoop是在计算机集群中完成计算任务,这个集群可以方便的扩展到几千台

    3.高效性:Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度快

    4.高容错性:Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配

    5.低成本:Hadoop是开源的,集群是由廉价的PC机组成

    Hadoop架构和组件

    Hadoop是一个分布式系统基础架构,底层是HDFS(Hadoop Distributed File System)分布式文件系统,它存储Hadoop集群中所有存储节点上的文件(64MB块),HDFS上一层是MapReduce引擎(分布式计算框架),对分布式文件系统中的数据进行分布式计算。

    1.HDFS架构

    NameNodeHadoop集群中只有一个NameNode,它负责管理HDFS的目录树和相关文件的元数据信息

    Sencondary NameNode有两个作用,一是镜像备份,二是日志与镜像定期合并,并传输给NameNode

    DataNode负责实际的数据存储,并将信息定期传输给NameNode

    2.MapReduce架构(Hadoop0.23以后采用MapReduce v2.0或Yarn)

    Yarn主要是把jobtracker的任务分为两个基本功能:资源管理和任务调度与监控,ResourceManager和每个节点(NodeManager)组成了新处理数据的框架。

    ResourceManager负责集群中的所有资源的统一管理和分配,接受来自各个节点(NodeManager)的资源汇报信息,并把这些信息按照一定的策略分配给各种应用程序(ApplicationMaster)。

    NodeManager与ApplicationMaster承担了MR1框架中的tasktracker角色,负责将本节点上的资源使用情况和任务运行进度汇报给ResourceManager。

    wKioL1MS0-vDQ_JSAABrjdkYbj0500.jpg

               MapReduce v1.0框架(图1)

    wKioL1MS0_aRv39tAAELEZ6oI_U104.jpg

                MapReduce v2.0框架(图2)

    环境介绍:

    master-hadoop 192.168.0.201

    slave1-hadoop 192.168.0.202

    slave2-hadoop 192.168.0.203

    最新稳定版:http://www.apache.org/dist/hadoop/core/hadoop-2.3.0/

    JDK下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

    参考官方文档:http://hadoop.apache.org/docs/r2.3.0/hadoop-project-dist/hadoop-common/ClusterSetup.html

    Hadoop三种运行方式:单节点方式(单台)、单机伪分布方式(一个节点的集群)与完全分布式(多台组成集群)

    二、准备环境

    1.Hadoop是用Java开发的,必须要安装JDK1.6或更高版本

    2.Hadoop是通过SSH来启动slave主机中的守护进程,必须安装OpenSSH

    3.Hadoop更新比较快,我们采用最新版hadoop2.3来安装

    4.配置对应Hosts记录,关闭iptables和selinux(过程略)

    5.创建相同用户及配置无密码认证

    三、安装环境(注:三台配置基本相同)

    1.安装JDK1.7

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [root@master-hadoop ~]# tar zxvf jdk-7u17-linux-x64.tar.gz
    [root@master-hadoop ~]# mv jdk1.7.0_17/ /usr/local/jdk1.7
    [root@slave1-hadoop ~]# vi/etc/profile    #末尾添加变量
    JAVA_HOME=/usr/local/jdk1.7
    PATH=$PATH:$JAVA_HOME/bin
    CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
    export JAVA_HOME CLASSPATHPATH
    [root@slave1-hadoop ~]#source /etc/profile
    [root@slave1-hadoop ~]# java-version      #显示版本说明配置成功
    java version"1.7.0_17"
    Java(TM) SE RuntimeEnvironment (build 1.7.0_17-b02)
    Java HotSpot(TM) 64-BitServer VM (build 23.7-b01, mixed mode)

    2.创建hadoop用户,指定相同UID

    1
    2
    3
    4
    5
    6
    [root@master-hadoop ~]#useradd -u 600 hadoop
    [root@master-hadoop ~]#passwd hadoop
    Changing password for userhadoop.
    New password:
    Retype new password:
    passwd: all authenticationtokens updated successfully.

    3.配置SSH无密码登录(注:master-hadoop本地也要实现无密码登录

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    [root@master-hadoop ~]# su - hadoop
    [hadoop@master-hadoop ~]$ ssh-keygen -t rsa     #一直回车生成密钥
    [hadoop@master-hadoop ~]$ cd/home/hadoop/.ssh/
    [hadoop@master-hadoop .ssh]$ ls
    id_rsa  id_rsa.pub
    [hadoop@slave1-hadoop ~]$ mkdir /home/hadoop/.ssh   #登录两台创建.ssh目录
    [hadoop@slave2-hadoop ~]$ mkdir /home/hadoop/.ssh
    [hadoop@master-hadoop .ssh]$ scp id_rsa.pub hadoop@slave1-hadoop:/home/hadoop/.ssh/
    [hadoop@master-hadoop .ssh]$ scp id_rsa.pub hadoop@slave2-hadoop:/home/hadoop/.ssh/
    [hadoop@slave1-hadoop ~]$ cd/home/hadoop/.ssh/
    [hadoop@slave1-hadoop .ssh]$ cat id_rsa.pub >> authorized_keys
    [hadoop@slave1-hadoop .ssh]$ chmod 600 authorized_keys
    [hadoop@slave1-hadoop .ssh]$ chmod 700 ../.ssh/   #目录权限必须设置700
    [root@slave1-hadoop ~]# vi /etc/ssh/sshd_config   #开启RSA认证
    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile      .ssh/authorized_keys
    [root@slave1-hadoop ~]# service sshd restart

    四、Hadoop的安装与配置(注:三台服务器配置一样,使用scp复制过去)

    1
    2
    3
    4
    5
    6
    7
    [root@master-hadoop ~]# tar zxvf hadoop-2.3.0.tar.gz -C /home/hadoop/
    [root@master-hadoop ~]# chown hadoop.hadoop -R /home/hadoop/hadoop-2.3.0/
    [root@master-hadoop ~]# vi /etc/profile   #添加hadoop变量,方便使用
    HADOOP_HOME=/home/hadoop/hadoop-2.3.0/
    PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    export HADOOP_HOME PATH
    [root@master-hadoop ~]# source /etc/profile

    1. hadoop-env.sh设置jdk路径

    1
    2
    3
    [hadoop@master-hadoop ~]$ cd hadoop-2.3.0/etc/hadoop/
    [hadoop@master-hadoop hadoop]$ vi hadoop-env.sh
    export JAVA_HOME=/usr/local/jdk1.7/

    2.slaves设置从节点

    1
    2
    3
    [hadoop@master-hadoophadoop]$ vi slaves
    slave1-hadoop
    slave2-hadoop

    3.core-site.xml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <configuration>
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master-hadoop:9000</value>
    </property>
    <property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
    </property>
    <property>
    <name>hadoop.tmp.dir</name>
    <value>file:/home/hadoop/tmp</value>
    </property>
    </configuration>
    4.hdfs-site.xml
    <configuration>
    <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/home/hadoop/dfs/name</value>
    </property>
    <property>
    <name>dfs.namenode.data.dir</name>
    <value>file:/home/hadoop/dfs/data</value>
    </property>
    <property>
    <name>dfs.replication</name>    #数据副本数量,默认3,我们是两台设置2
    <value>2</value>
    </property>
    </configuration>

    6.yarn-site.xml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <configuration>
    <property>
    <name>yarn.resourcemanager.address</name>
    <value>master-hadoop:8032</value>
    </property>
    <property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>master-hadoop:8030</value>
    </property>
    <property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>master-hadoop:8031</value>
    </property>
    <property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>master-hadoop:8033</value>
    </property>
    <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>master-hadoop:8088</value>
    </property>
    <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.ShuffleHandler</value>
    </property>
    </configuration>

    7.mapred-site.xml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <configuration>
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    <property>
    <name>mapreduce.jobhistory.address</name>
    <value>master-hadoop:10020</value>
    </property>
    <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>master-hadoop:19888</value>
    </property>
    </configuration>

    五、格式化文件系统并启动

    1.格式化新的分布式文件系统(hdfs namenode -format

    wKiom1MS1DSiAgo4AAXvONDFnvs364.jpg

    2.启动HDFS文件系统并使用jps检查守护进程是否启动

    wKiom1MS1D7CRuM-AAL910T_7Zo320.jpg

    wKioL1MS1ETy_saEAAA_Z9hlJyI709.jpg

    可以看到master-hadoop已经启动NameNode和SecondaryNameNode进程,slave-hadoop已经启动DataNode进程说明正常。

    3.启动新mapreduce架构(YARN)

    wKiom1MS1JSTJYZuAAGsL2ftiq4313.jpg

    wKioL1MS1HiSqDLnAABLaZvuy0c392.jpg

    可以看到master-hadoop已经启动ResourceManger进程,slave-hadoop已经启动NodeManager进程说明正常。

    4.查看集群状态

    wKiom1MS1KfSbrq-AAFu2a1fmHQ432.jpg

    5.通过web查看资源(http://192.168.0.201:8088)

    wKiom1MS1NHwFfDFAAOdMhjRyTw847.jpg

    6、查看HDFS状态(http://192.168.0.201:50070)

    wKiom1MS1N2wI6cEAALawzAGv98814.jpg

    本文出自 ““企鹅”那点事儿” 博客,请务必保留此出处http://going.blog.51cto.com/7876557/1365883

  • 相关阅读:
    HDU2027 统计元音 一点点哈希思想
    湖南工业大学第一届ACM竞赛 数字游戏 字符串处理
    湖南工业大学第一届ACM竞赛 我素故我在 DFS
    HDU3293sort
    HDU2082 找单词 母函数
    HDU1018 Big Number 斯特林公式
    湖南工业大学第一届ACM竞赛 分糖果 位操作
    UVA 357 Let Me Count The Ways
    UVA 147 Dollars
    UVA 348 Optimal Array Multiplication Sequence
  • 原文地址:https://www.cnblogs.com/zhwl/p/3660636.html
Copyright © 2011-2022 走看看