Hadoop2.x入门讲解

来源:互联网 发布:windows 3.0 编辑:程序博客网 时间:2024/05/23 13:53

Hadoop项目主要包括一下四个模块

1、Hadoop Common
    为其他Hadoop模块提供基础设施。
2、Hadoop HDFS
    一个高可靠、高吞吐量的分布式文件系统
3、Hadoop MapReduce
    一个分布式的离线并行计算框架。
4、Hadoop YARN
    一个新的MapReduce框架,任务调度与资源管理。

HDFS系统架构

1、NameNode:是主节点,存储文件的元数据,如文件名、文件目录结构、文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在DataNode等信息。NameNode的元数据中一部分存放在内存中的进程中,另一部分存放在本地磁盘(fsimage镜像文件和edits编辑日志)。
2、DataNode:在本地文件系统存储文件块数据,以及块的校验和。
3、Secondary NameNode:用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。(配置HA后,不启动)

Yarn系统架构

1、ResourceManager:处理客户端请求;启动/监控ApplicationMaster;监控NodeManager;资源的分配和调度。
2、ApplicationMaster:数据切分;为应用程序申请资源,并分配给内部任务;任务监控与容错。
3、NodeManager:单节点上的资源管理;处理来自ResourceManager的命令;处理来自ApplicationMaster的命令。
4、Container:对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息。


MapReduce分布式离线计算框架

1、将计算过程分为两个阶段,Map和Reduce
        Map阶段并行处理输入数据
        Reduce阶段对Map结果进行汇总
2、Shuffle连接Map和Reduce两个阶段
       Map Task将数据写到本地磁盘
       Reduce Task从每个Map Task上读取一份数据
3、仅适合离线批处理
      具有很好的容错性和扩展性
      适合简单的批处理任务
4、缺点明显
      启动开销大、过多使用磁盘导致效率低

Hadoop2.X环境的搭建伪分布配置

1、安装相应软件

    (1)设置静态ip

        在centos桌面右上角的图标上,右键修改
        重启网卡:service network restart
        验证:ifconfig
    (2)修改主机名
        修改当前回话的主机名:hostname hadoop-senior.ibeifeng.com
        修改配置文件中的主机名:vi /etc/sysconfig/network
        验证:重启电脑 reboot
    (3)主机名和ip绑定
        vi /etc/host
        192.168.217.130    hadoop-senior.ibeifeng.com    hadoop-senior
    (4)关闭防火墙
        执行命令:service iptables stop
        验证:chkconfig --list | grep iptables
    (5)SSH(secure shell)免密码登录
        执行命令: ssh-keygen ot rsa 产生密钥,位于~/.ssh文件夹中
        执行命令: cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
        验证:ssh localhost
    (6)安装jdk1.7、配置环变量
        ./jdk-7u24-linux-i586.bin
        配置环境变量 vi /etc/profile
        export JAVA_HOME=/usr/local/jdk1.7
        export PATH=.:$JAVA_HOME/bin:$PATH
        执行source /etc/profile
        验证:java -version
    (7)安装Hadoop2.5.0
        tar  -zxvf hadoop-2.5.0.tar.gz -C /opt/modules/hadoop-2.5.0/

2、HDFS的配置文件

hadoop-env.sh

export JAVA_HOME=${JAVA_HOME} ###如果JAVA_HOME的环境变量配置好可以不修改,这里统一修改为echo $JAVA_HOMT的地址

core-site.xml:

<pre name="code" class="plain"><property><name>fs.defaultFS</name><value>hdfs://hadoop-senior.ibeifeng.com:8020</value>  --改成自己的主机信息</property><property><name> hadoop.tmp.dir</name><value>/opt/modules/hadoop-2.5.0/data/tmp</value>   --改成自己的位置</property>

hdfs-site.xml:
<property><name>dfs.replication </name><value>1 /value>   </property>
3、格式化文件系统
$ bin/hdfs namenode –format
4、启动NameNode daemon 和DataNode daemon
$ sbin/start-dfs.sh  或者$ sbin/hadoop-daemon.sh start namenode  $ sbin/hadoop-daemon.sh start datanode 
启动的时候会产生日志文件,日志文件在logs文件夹下
.log文件记录大部分应用程序的日志信息
.out记录标准输出和标准错误日志
日志文件命令规则:
    框架名称-用户名-进程名-主机名-日志格式后缀

5、HDFS提供的Web界面,端口号50070。

http://hadoop-senior.ibeifeng.com:50070/
6、HDFS的shell命令
$ bin/hdfs dfs –mkdir –p /user/beifeng/$ bin/hdfs dfs –ls –R .......
7、Yarn的配置
yarn-env.sh

export JAVA_HOME=${JAVA_HOME} ###如果JAVA_HOME的环境变量配置好可以不修改,这里统一修改为echo $JAVA_HOMT的地址
yarn-site.xml:

<property><name>yarn.resourcemanager.hostname</name> <value>hadoop-senior.ibeifeng.com</value>   </property><property>    <name>yarn.nodemanager.aux-services</name>    <value>mapreduce_shuffle</value></property>
slaves配置从节点信息,一行代表一个主机

8、yarn的启动

$ sbin/start-yarn.sh  或者$ sbin/yarn-daemon.sh  start  resourcemanager$ sbin/yarn-daemon.sh  start  nodemanager
9、Yarn的监控界面端口号为:8088
http://hadoop-senior.ibeifeng.com:8088/
10、配置MapReduce运行到yarn上
mapred-env.sh

export JAVA_HOME=${JAVA_HOME} ###如果JAVA_HOME的环境变量配置好可以不修改,这里统一修改为echo $JAVA_HOMT的地址
mapred-site.xml

<property><name>mapreduce.framework.name</name><value>yarn</value></property>
11、mr测试程序

$ sbin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount /user/input /user/output 
12、启动历史服务器
    查看已经运行完成的MR作业记录,比如用了多少时间,多少个Reduce、作业提交时间、作业启动时间、作业完成时间等。
    默认情况下,历史服务器是没有启动的。

$ sbin/mr-jobhistory-daemon.sh start historyserver 
13、yarn的日志聚集功能配置和使用,LogAggregation
    聚集:应用程序完成之后,将日志信息上传到HDFS系统。

yarn-site.xml

<property><name>yarn.log-aggregation-enable</name><value>true</value></property><property>    <name>yarn.log-aggregation.retain-seconds</name>    <value>设置存在的时间多少秒</value></property>
14、hdfs垃圾回收(误删除可以在回收站找回)

配置core-site.xml:

<property><name>fs.trash.interval</name><value>在垃圾回收站的存留时间分钟</value> </property>

Hadoop2.x各个服务组件如何配置在哪台服务器

1、HDFS模块:

NameNode:是由哪个文件中的哪个配置属性指定的呢?

core-site.xml文件中;<property>    <name>fs.defaultFS</name>    <value>hdfs://hadoop-senior.ibeifeng.com:8020</value></property>
DataNodes:是由哪个文件中的哪个配置属性指定的呢?
slaves文件中一行为一个DataNodehadoop-senior.ibeifeng.com
SecondaryNameNode:是由哪个文件中的哪个配置属性指定的呢?
hdfs-site.xml文件中;<property><name>dfs.namenode.secondary.http-address</name><value>hadoop-senior.ibeifeng.com:50090</value></property>
2、YARN模块:

ResourceManager:是由哪个文件中的哪个配置属性指定的呢?

yarn-site.xml文件中;<property><name>yarn.resourcemanager.hostname</name><value>hadoop-senior.ibeifeng.com</value></property>
NodeManagers:是由哪个文件中的哪个配置属性指定的呢?
slaves文件中一行为一个NodeManagerhadoop-senior.ibeifeng.com


0 0