栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Hadoop源码分析-综述

Hadoop源码分析-综述

2021SC@SDUSC
本学期分析的项目为hadoop,我将会围绕hadoop部分核心源码展开为期一学期的详细分析。下面将粗略介绍hadoop的基本信息以及小组内的具体分工。

综述目录
    • 一、什么是hadoop
    • 二、hadoop可以做什么
    • 三、hadoop的安装
    • 四、小组分工

一、什么是hadoop

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统( Distributed File System),其中一个组件是HDFS(Hadoop Distributed File System)。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。

二、hadoop可以做什么

hadoop擅长日志分析,facebook就用Hive来进行日志分析,2009年时facebook就有非编程人员的30%的人使用HiveQL进行数据分析;淘宝搜索中的自定义筛选也使用的Hive;利用Pig还可以做高级的数据处理,包括Twitter、linkedIn 上用于发现您可能认识的人,可以实现类似Amazon.com的协同过滤的推荐效果。在Yahoo!的40%的Hadoop作业是用pig运行的,包括垃圾邮件的识别和过滤,还有用户特征建模。

Hadoop框架允许用户快速编写和测试分布式系统。该框架是高效的,在计算机之间自动分布数据和工作,利用CPU内核的底层并行机制。

Hadoop不依赖于硬件来提供容错和高可用性(FTHA),相反,Hadoop库本身的设计就是用于在应用层级探测和处理故障的发生。能够动态地向集群添加服务器、或者从集群中删除服务器,Hadoop持续运行状态不会被打断。

Hadoop另一个大优势是,除了开源之外,由于是基于Java技术研发的,所以对于所有平台都兼容。

三、hadoop的安装

本次小组统一hadoop版本为3.3.1,安装环境为Ubuntu20.0.4。

  1. 官网下载

https://archive.apache.org/dist/hadoop/common/

  1. 本地安装

切换到下载文件的位置/Downloads,找到下载的文件进行安装。

sudo tar -zxvf  hadoop-3.2.1.tar.gz -C /usr/local    #解压到/usr/local目录下
cd /usr/local
#sudo mv  hadoop-3.2.1    hadoop                      #重命名为hadoop,可改可不改,如果修改下边的名字也要对应
sudo chown -R hadoop ./hadoop-3.3.1                        #修改文件权限
  1. 环境配置

给hadoop配置环境变量,将下面代码添加到.bashrc文件:

#Hadoop Environment
export HADOOP_HOME=/usr/local/hadoop-3.3.1
export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  1. 检查安装是否成功

执行source ~./bashrc使设置生效,并查看hadoop version是否安装成功,若出现hadoop版本即为安装成功。

hadoop version
四、小组分工

Hadoop框架大致可分为以下五个模块:

Hadoop common:这些模块是其他Hadoop模块所需要的Java类库和工具。这些类库提供文件系统和操作系统级别的抽象,包含启动Hadoop必须的Java文件和脚本。

Hadoop YARN:这是一个用于任务排班和集群资源管理的框架。

Hadoop分布式文件系统(HDFS):一个分布式文件系统,提供高吞吐量的应用程序数据访问方式。

Hadoop MapReduce:这是一个基于YARN的系统,用于大规模数据集的并行处理。

Hadoop tools : 提供一些命令行工具,如DistCp,archive。

我主要负责MapReduce部分的代码分析。

Hadoop MapReduce是一个易于编写程序的软件框架,基于大型硬件集群(上千个节点)、以并行方式处理大规模数据,并确保系统拥有高可靠性和容错性。

术语MapReduce实际是指以下Hadoop程序运行的两项不同任务:

映射任务/Map Task:这是首要任务,把输入数据转换成一系列数据,把个体元素分解为元组(键/值对)。

缩减任务/Reduce:该任务把映射任务的输出数据作为输入,把这些数据元组合并为更小的元组集合。缩减任务总是在映射任务之后执行。

通常情况下,输入和输出数据都存储在一个文件系统中。该框架负责任务调度,监控任务,并重新运行失败任务。

MapReduce框架由每个集群节点的一个单一主控JobTracker和一个从属TaskTracker构成。主控JobTracker负责资源管理,跟踪资源消耗/可用性,调度从属TaskTracker上的作业组件任务,监控这些任务,并重新运行失败任务。从属TaskTracker按照主控JobTracker的指示执行任务,并定期向主控JobTracker提供任务状态信息。

MapReduce在hadoop生态中具有极其重要的意义,是hadoop的核心,因此极具分析价值。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/282809.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号