Hadoop学习之路----生态系统及其版本衍化总结(第一讲)

2024-02-09 06:40

本文主要是介绍Hadoop学习之路----生态系统及其版本衍化总结(第一讲),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Hadoop学习之路----生态系统及其版本衍化总结(第一讲)

课程讲到了第七周,感概颇多,如果我当初自己学的时候能够听到这样的课程,会少走多少弯路,曾静一个的小问题耗费一个月时间的情况都有。所以请大家不要灰心,不管遇到什么困难,坚持坚持在坚持,理解理解在理解。
       论坛其实有很多不错的帖子,如果你认真思考Ta的问题,也许就是你知识的盲点或是你没思考过的问题。是一个很大提升自己的过程,毕竟听懂和讲给别人是完全不同的,大家定要积极...你对待Hadoop的态度就决定了你能学到什么程度(也许大家处于不同的城市,但是做IT我想大多漂泊外在,我们能奋斗和拼搏的时光也就3-5,珍惜时间,时间在北上广才是最宝贵的...大家轻喷肺腑之言)!

第一讲课程重点
1.Hadoop生态系统概述
2.Hadoop生态系统版本衍化
3.Hadoop该如何学习

1.Hadoop生态系统概述
主要认识Hadoop生态系统都包括那些子项目,每个项目都有什么特点,每个项目都能解决哪一类问题,能回答这三个问题就可以了(本将属于热身...重在理解Hadoop生态系统组成,现状,发展,将来)


HDFS:
HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)是Hadoop体系中数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。
MapReduce:
MapReduce是一种计算模型,用以进行大数据量的计算。Hadoop的MapReduce实现,和Common、HDFS一起,构成了Hadoop发展初期的三个组件。MapReduce将应用划分为Map和Reduce两个步骤,其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。MapReduce这样的功能划分,非常适合在大量计算机组成的分布式并行环境里进行数据处理。
HBase
HBase是一个针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。和传统关系数据库不同,HBase采用了BigTable的数据模型:增强的稀疏排序映射表(Key/Value),其中,键由行关键字、列关键字和时间戳构成。HBase提供了对大规模数据的随机、实时读写访问,同时,HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美地结合在一起。
Hive
Hive是Hadoop中的一个重要子项目,最早由Facebook设计,是建立在Hadoop基础上的数据仓库架构,它为数据仓库的管理提供了许多功能,包括:数据ETL(抽取、转换和加载)工具、数据存储管理和大型数据集的查询和分析能力。Hive提供的是一种结构化数据的机制,定义了类似于传统关系数据库中的类SQL语言:Hive QL,通过该查询语言,数据分析人员可以很方便地运行数据分析业务(将SQL转化为MapReduce任务在Hadoop上执行)。
Pig
Pig运行在Hadoop上,是对大型数据集进行分析和评估的平台。它简化了使用Hadoop进行数据分析的要求,提供了一个高层次的、面向领域的抽象语言:Pig Latin。通过Pig Latin,数据工程师可以将复杂且相互关联的数据分析任务编码为Pig操作上的数据流脚本,通过将该脚本转换为MapReduce任务链,在Hadoop上执行。和Hive一样,Pig降低了对大型数据集进行分析和评估的门槛。
Zookeeper
在分布式系统中如何就某个值(决议)达成一致,是一个十分重要的基础问题。ZooKeeper作为一个分布式的服务框架,解决了分布式计算中的一致性问题。在此基础上,ZooKeeper可用于处理分布式应用中经常遇到的一些数据管理问题,如统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。ZooKeeper常作为其他Hadoop相关项目的主要组件,发挥着越来越重要的作用。
Mahout
Mahout起源于2008年,最初是Apache Lucent的子项目,它在极短的时间内取得了长足的发展,现在是Apache的顶级项目。Mahout的主要目标是创建一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout现在已经包含了聚类、分类、推荐引擎(协同过滤)和频繁集挖掘等广泛使用的数据挖掘方法。除了算法,Mahout还包含数据的输入/输出工具、与其他存储系统(如数据库、MongoDB 或Cassandra)集成等数据挖掘支持架构。
Flume
Flume是Cloudera开发维护的分布式、可靠、高可用的日志收集系统。它将数据从产生、传输、处理并最终写入目标的路径的过程抽象为数据流,在具体的数据流中,数据源支持在Flume中定制数据发送方,从而支持收集各种不同协议数据。同时,Flume数据流提供对日志数据进行简单处理的能力,如过滤、格式转换等。此外,Flume还具有能够将日志写往各种数据目标(可定制)的能力。总的来说,Flume是一个可扩展、适合复杂环境的海量日志收集系统。
Sqoop
Sqoop是SQL-to-Hadoop的缩写,是Hadoop的周边工具,它的主要作用是在结构化数据存储与Hadoop之间进行数据交换。Sqoop可以将一个关系型数据库(例如MySQL、Oracle、PostgreSQL等)中的数据导入Hadoop的HDFS、Hive中,也可以将HDFS、Hive中的数据导入关系型数据库中。Sqoop充分利用了Hadoop的优点,整个数据导入导出过程都是用MapReduce实现并行化,同时,该过程中的大部分步骤自动执行,非常方便。

很多概念和组件也许你还是很不理解,其实没有关系,随着课程的进度就会慢慢理解

2.Hadoop生态系统版本衍化

对于这个问题很好解决看董的blog就可以了下面给出了链接地址:

http://dongxicheng.org/mapreduce-nextgen/how-to-select-hadoop-versions/

3.Hadoop该如何学习

Hadoop该如何学习呢,我就发表一些自己的个人体会

Hadoop权威指南(必看)

Hadoop实战(没看过想必肯定不错)

老师的推荐阅读(必看反复看)

Hadoop权威指南,有些厚的书,其实不必上来就想着看完。书的结构都是有组织的你可以根据自己需求来阅读。

比如你想对集群的安装和部署学习一下,那么你可以先看第九章和第十章Setting Up a Hadoop Cluster和Administering Hadoop,你对集群配置有了了解以后再去网上找一些配置blog(不然折磨的体无完肤)。看着两张花一天时间肯定够了,一般同学都是上来搞配置一点理论都不看,这样是肯定不行的,因为刚刚接触一个事物对它不了解的地方太多了。所以安心在家里看完这两章会有一种豁然开朗的感觉。你甚至能看到有些blog中的错误和不合理的地方。

然后开始看第一章,Meet Hadoop不要着急练代码,先理解第一章的整体思路(我自己读书第一遍都是不会练代码的,一般第三遍或更多的时候才会开始练代码,因为我始终觉得代码只是思路的具体实现)。第一章完了看第二章吧....讲述了一个完整的MapReduce案例,需要耐心看,反复体会。一定要对MapReduce这种编程模型有大体的认识。现在我觉得可以去读第六章了How MapReduce Works和第七章MapReduce Types and Formats,都是重点,这三章看完对MapReduce理解就没有问题了。尤其是第六章读吧,我不知道读了多少遍...某些段落看10多遍都很正常一边看我是一边用笔画,毕竟我自己学习的时候还是没有视频的。很多东西很难理解。最后我认为可以看3,4,5章了。

第三章主要是HDFS,熟悉读写过程,HDFS机架感知,副本存放策略等等就可以了,

第四章其实一直觉得都是要会自己实现writable类,Hadoop支持的压缩类型,那些支持切分,了解为什么Hadoop为什么要有新的序列化机制

第五章就是讲的调试过程,开发过程的一般步骤

前面这七章需要反复看,理解了看后面的都好办了。(理解了这本书余下的自己就知道该如何学习了,写的比较乱,大家有好的心得,可以分享!)


原文地址:http://bbs.chinahadoop.cn/forum.php?mod=viewthread&tid=5611

这篇关于Hadoop学习之路----生态系统及其版本衍化总结(第一讲)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/693420

相关文章

python版本切换工具pyenv的安装及用法

《python版本切换工具pyenv的安装及用法》Pyenv是管理Python版本的最佳工具之一,特别适合开发者和需要切换多个Python版本的用户,:本文主要介绍python版本切换工具pyen... 目录Pyenv 是什么?安装 Pyenv(MACOS)使用 Homebrew:配置 shell(zsh

C# List.Sort四种重载总结

《C#List.Sort四种重载总结》本文详细分析了C#中List.Sort()方法的四种重载形式及其实现原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录1. Sort方法的四种重载2. 具体使用- List.Sort();- IComparable

SpringBoot项目整合Netty启动失败的常见错误总结

《SpringBoot项目整合Netty启动失败的常见错误总结》本文总结了SpringBoot集成Netty时常见的8类问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、端口冲突问题1. Tomcat与Netty端口冲突二、主线程被阻塞问题1. Netty启动阻

SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)

《SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)》本文总结了SpringBoot项目整合Kafka启动失败的常见错误,包括Kafka服务器连接问题、序列化配置错误、依赖配置问题、... 目录一、Kafka服务器连接问题1. Kafka服务器无法连接2. 开发环境与生产环境网络不通二、序

python3中正则表达式处理函数用法总结

《python3中正则表达式处理函数用法总结》Python中的正则表达式是一个强大的文本处理工具,用于匹配、查找、替换等操作,在Python中正则表达式的操作主要通过内置的re模块来实现,这篇文章主要... 目录前言re.match函数re.search方法re.match 与 re.search的区别检索

Python包管理工具uv下载python版本慢问题解决办法

《Python包管理工具uv下载python版本慢问题解决办法》uv是一个非常快的Python包和项目管理器,用Rust编写,使用热缓存安装Trio的依赖项的速度对比,:本文主要介绍Python包... 目录发现问题对于 MACOS / linux 用户 (zsh/bash):对于 Windows 用户:总

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法