Hadoop2.x入门讲解

本文介绍了Hadoop2.x的主要模块,包括HDFS、MapReduce和YARN的系统架构。HDFS由NameNode、DataNode和Secondary NameNode组成,负责文件系统的管理和数据存储。YARN包含ResourceManager、ApplicationMaster和NodeManager,管理任务调度和资源。MapReduce是离线计算框架,通过Map和Reduce阶段进行数据处理。此外,文章还提到了Hadoop2.x环境的伪分布配置步骤及服务组件配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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文件中一行为一个DataNode
hadoop-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文件中一行为一个NodeManager
hadoop-senior.ibeifeng.com


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值