Hadoop学习路线

article/2025/10/8 15:49:31

Hadoop基础

Hadoop是一个能够对大量数据进行分布式处理的软件框架,它是一种技术的实现,是云计算技术中重要的组成部分,云计算的概念更广泛且偏向业务而不是必须拘泥于某项具体技术,云计算的存在只是一种新的商业计算模型和服务模式。因此,云计算才会出现“横看成岭侧成峰,远近高低各不同”,各种各样层出不穷的理解。

对于初学hadoop的朋友来说可能基于迫切寻找一本入门的书,我个人觉得不用于急于寻找书,先了解hadoop是否做什么、它能做什么、能带来什么 hadoop使用场景、Hadoop到底能做什么?怎么用hadoop?,当大家对这些有所了解,就会如何入手学习hadoop接下来大家应该进行系统性的学习hadoop了,我个人建议不要盲目的去搭建hadoop环境,熟悉了解hadoop基本知识及其所需要的知识例如java基础、linux环境、linux常用命令,它相关产品及其衍生产品,他们之间是什么关系如何工作,每个产品它们的特点是什么

hadoop一些基本知识包括:

  • hadoop HDFS文件系统的特征
  • Hadoop简介(1):什么是Map/Reduce
  • Mapreduce 整个工作机制图
  • Hadoop mapper类的阅读
  • Hadoop reducer类的阅读
  • Mapreduce shuffle和排序

上面这些都是hadoop核心部分,当这些有所了解后,大家基本上可以具备大家hadoop环境的条了。hadoop部署方式为单机模式、伪分布式、完全分布式。对单机模式大家可以不用去关心和学习,在学习中我个人建议是搭建伪分布式,完全分布式是生产环境中使用,当大家把伪分布式后,必须对完全分布式有所了解,知道是如何工作的,也可以试着搭建hadoop的完成分布式。现在hadoop已经发行了最新的2.2.x版本,但是不测试不够全面不够稳定,大家应该选择比较稳定的版本学习,因为在公司中还是会使用稳定的版本,2.2.x版本中一些处理机制和方案是值得我们学习的,需要有所了解的是, Hadoop 各个发布版的特性以及稳定性。

下面是搭建hadoop的安装步骤:

搭建伪分布式:hadoop 伪分布式搭建 完全分布式:hadoop 三节点集群安装配置详细实例

大家这些有了基础性的学习后,这时候是比较适合找本书来系统性的学习hadoop。

· Hadoop权威指南(第2版) 分享地址:http://pan.baidu.com/s/1iNuj 密码:ywwh

有一点想提醒初学的朋友,在学习hadoop开发的时候不要使用hadoop eclipse插件,这样会给你带来不必要的问题,你可以在eclipse使用maven工具下载hadoop资源包,然后写好mapreduce代码打包后传上自己的服务,使用命令启动运行。

Hadoop家族产品

截止到2013年,根据cloudera的统计,Hadoop家族产品已经达到20个!
http://blog.cloudera.com/blog/2013/01/apache-hadoop-in-2013-the-state-of-the-platform/
接下来,我把这20个产品,分成了2类。

第一类,是我已经掌握的
第二类,是TODO准备继续学习的
HadoopFamilySmall

一句话产品介绍:

  • Apache Hadoop: 是Apache开源组织的一个分布式计算开源框架,提供了一个分布式文件系统子项目(HDFS)和支持MapReduce分布式计算的软件架构。
  • Apache Hive: 是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,通过类SQL语句快速实现简单的- MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
  • Apache Pig: 是一个基于Hadoop的大规模数据分析工具,它提供的SQL-LIKE语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。
  • Apache HBase: 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
  • Apache Sqoop: 是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
  • Apache Zookeeper: 是一个为分布式应用所设计的分布的、开源的协调服务,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,简化分布式应用协调及其管理的难度,提供高性能的分布式服务
  • Apache Mahout:是基于Hadoop的机器学习和数据挖掘的一个分布式框架。Mahout用MapReduce实现了部分数据挖掘算法,解决了并行挖掘的问题。
  • Apache Cassandra:是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存简单格式数据,集Google BigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身
  • Apache Avro: 是一个数据序列化系统,设计用于支持数据密集型,大批量数据交换的应用。Avro是新的数据序列化格式与传输工具,将逐步取代Hadoop原有的IPC机制
  • Apache Ambari: 是一种基于Web的工具,支持Hadoop集群的供应、管理和监控。
  • Apache Chukwa: 是一个开源的用于监控大型分布式系统的数据收集系统,它可以将各种各样类型的数据收集成适合 Hadoop 处理的文件保存在 HDFS 中供 Hadoop 进行各种 MapReduce 操作。
  • Apache Hama: 是一个基于HDFS的BSP(Bulk Synchronous Parallel)并行计算框架, Hama可用于包括图、矩阵和网络算法在内的大规模、大数据计算。
  • Apache Flume: 是一个分布的、可靠的、高可用的海量日志聚合的系统,可用于日志数据收集,日志数据处理,日志数据传输。
  • Apache Giraph: 是一个可伸缩的分布式迭代图处理系统, 基于Hadoop平台,灵感来自 BSP (bulk synchronous parallel) 和 Google 的 Pregel。
  • Apache Oozie: 是一个工作流引擎服务器, 用于管理和协调运行在Hadoop平台上(HDFS、Pig和MapReduce)的任务。
    Apache Crunch: 是基于Google的FlumeJava库编写的Java库,用于创建MapReduce程序。与Hive,Pig类似,Crunch提供了用于实现如连接数据、执行聚合和排序记录等常见任务的模式库
  • Apache Whirr: 是一套运行于云服务的类库(包括Hadoop),可提供高度的互补性。Whirr学支持Amazon EC2和Rackspace的服务。
  • Apache Bigtop: 是一个对Hadoop及其周边生态进行打包,分发和测试的工具。
  • Apache HCatalog: 是基于Hadoop的数据表和存储管理,实现中央的元数据和模式管理,跨越Hadoop和RDBMS,利用Pig和Hive提供关系视图。
  • Cloudera Hue: 是一个基于WEB的监控和管理系统,实现对HDFS,MapReduce/YARN, HBase, Hive, Pig的web化操作和管理。

Hadoop家族学习路线图

下面我将分别介绍各个产品的安装和使用,以我经验总结我的学习路线。

  • Hadoop
    Hadoop学习路线(参考Hadoop基础)
    Yarn学习路线图
    用Maven构建Hadoop项目
    Hadoop历史版本安装
    Hadoop编程调用HDFS
    海量Web日志分析 用Hadoop提取KPI统计指标
    用Hadoop构建电影推荐系统
    创建Hadoop母体虚拟机
    克隆虚拟机增加Hadoop节点
    R语言为Hadoop注入统计血脉
    RHadoop实践系列之一 Hadoop环境搭建

  • Hive
    Hive学习路线图
    Hive安装及使用攻略
    Hive导入10G数据的测试
    R利剑NoSQL系列文章 之 Hive
    用RHive从历史数据中提取逆回购信息

  • Pig
    Pig学习路线图

  • Zookeeper
    Zookeeper学习路线图
    ZooKeeper伪分步式集群安装及使用
    ZooKeeper实现分布式队列Queue
    ZooKeeper实现分布式FIFO队列

  • HBase
    HBase学习路线图
    RHadoop实践系列之四 rhbase安装与使用

  • Mahout
    Mahout学习路线图
    用R解析Mahout用户推荐协同过滤算法(UserCF)
    RHadoop实践系列之三 R实现MapReduce的协同过滤算法
    用Maven构建Mahout项目
    Mahout推荐算法API详解
    从源代码剖析Mahout推荐引擎
    Mahout分步式程序开发 基于物品的协同过滤ItemCF
    Mahout分步式程序开发 聚类Kmeans
    用Mahout构建职位推荐引擎

  • Sqoop
    Sqoop学习路线图

  • Cassandra
    Cassandra学习路线图
    Cassandra单集群实验2个节点
    R利剑NoSQL系列文章 之 Cassandra

Hadoop课程资源###

《十节课带你走进hadoop世界》

《Hadoop从入门上手工作》

《hadoop之DataGuru视频》

《Hadoop数据分析》

《云计算hadoop实战视频》

《Cloudera Hadoop课程培训》

《大数据战略规划班》

一张学习框架图

这里写图片描述


http://chatgpt.dhexx.cn/article/RVp3x53s.shtml

相关文章

第11期:Hadoop零基础学习路线

大家好,我是你们的老朋友老王随聊,今天和大家讨论的话题——Hadoop零基础应该怎么学? 通过这段时间和群里同学们交流,发现很多大学生甚至职场小白对Hadoop学习路线不是很清晰,所以我花了一些时间给大家整理了一张Hadoo…

hadoop学习路线图

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。而对于hadoop的学习是大数据学习中的重要一个环节,于是乎有很多人想要知道hadoop学习路线图。…

Python的基础编程

1. python的基本语法 Python是一个结合了解释性、编译性、互动性和面向对象的高级程序设计语言,结构简单,语法定义清晰; Python最具特色的就是使用缩进来表示代码块,不需要使用大括号{},但每一个模块内的语句必须包含…

【Java编程指南】语法基础

目录 一、前言 二、关键字 三、数据类型 1.存储单元 2.存储范围 3.类型转换 四、常量 五、变量 六、标识符 七、注释 一、前言 学习目标 1:熟悉Java的关键字、数据类型(包括范围)、常量与变量的区别 学习目标 2:类型转…

新手小白零基础,该怎样学习编程呢?

零基础编程入门先学什么?编程语言有几百种,我们应该怎么选择。想学习编程,加入互联网行业,哪一个更有前途?在小白学习编程会有各种各样的问题,今天小编我就来为你解答。 一、怎么选择编程语言 编程语言有很…

如何打好编程基础

如何打好编程基础 这篇文章是写给那些真心想学编程的人看的——那些憋着一股狠劲儿,一定要做出个什么真东西,不学好不罢休的人;而不是那些「听说编程好玩」的人,在我看来,这种人永远都入不了编程的门,更别提做出个像样的东西来了。 心态调整 确定目标 在你学习编程之前思…

Web编程基础知识

前段时间零零碎碎看了Web编程相关内容,今天就整理了一下 Web编程,前端主要是htmlCSSJavaScript,后端使用最多的是PHPMySQL 此次教程主要是关于html、CSS、JavaScript和PHP的一些语法和使用细则 1 Html: HyperText Markup Language&#xff0c…

如何0基础学编程,岗位怎么选择?

下面进入正题,如果非计算机专业的话短期内想找到工作可以考虑去选择找IT培训机构学习。一方面有专业老师指导,比自己看书、看视频学习更有效率。如果自学主要你非计算机专业,计算机基础编程基础相当于没有,有些编程理论很难理解&a…

5.Java编程基础

📋 个人简介 💖 作者简介:大家好,我是W_chuanqi,一个编程爱好者 📙 个人主页:W_chaunqi 😀 支持我:点赞👍收藏⭐️留言📝 💬 愿你我共…

新手小白入门编程第1讲 计算机基础知识 JAVA基础知识

1 计算机基础知识 1.1计算机 计算机(Computer)全称:电子计算机,俗称电脑。是一种能够按照程序运行,自动、高速处理数据的现代化智能电子设备。常见的形式有台式计算机、笔记本计算机。按照规模分为微型机、小型机、大…

linux软件包安装与卸载

7.1 安装软件包的三种方法 在Linux下安装软件包,主要有3种办法 (1)rpm工具(手动安装,难点在于包的依赖关系) (2)yum工具(python开发出来的工具,操作对象rp…

linux下如何卸载系统软件,教你在Linux下如何卸载软件

软件的卸载 1.软件的卸载主要是使用rpm来进行的。卸载软件首先要知道软件包在系统中注册的名称。键入命令: #rpm -q -a 即可查询到当前系统中安装的所有的软件包。 2.确定了要卸载的软件的名称,就可以开始实际卸载该软件了。键入如下命令即可卸载软件&am…

Linux 软件安装与卸载

软件安装与卸载 软件安装与卸载概述 在Ubuntu中安装软件和Windows系统中双击exe文件安装软件的方式有很大的不同,在Ubuntu中主要分为以下两种种软件安装的方式: - 通过apt-get包管理器从软件源中安装(图形化和终端命令两种方式) -通过deb格式的软件包安装我们使用…

uniapp+h5混合开发

为了减少app频繁上架,频繁更新,决定放弃纯uniapp开发,改用uniapp(后续简称uni)h5的方式进行混合开发。 技术选型: 整个app架子用uni(vue3),h5采用vue3vant4,然后使用uni的webview进行…

H5 混合开发(更新中)

1 流行的混合开发方案 基于 WebView UI (JSBridge) 基于 Native UI(ReactNative、weex) 小程序方案(微信、支付宝小程序) JS通过JSBridge来调用native api,如拍照/扫一扫 2 H5和原生互相调用…

MATLAB+JAVA的混合开发

近期项目中需要使用matlab跟java做混合开发。主要记录一下,此次开发遇到的问题点。 环境:使用的matlab版本是 R2018b。 当前状况:MATLAB代码已经编写好,且运行成功。需要打成jar包才可以被java调用。 步骤一: 按照…

Unity和Android混合开发

Unity和Android混合开发 通用的流程 https://blog.csdn.net/zhangdi2017/article/details/65629589 应用场景 Unity游戏中一些功能需要安卓系统的支持,如搜索wifi等。而且想接入SDK时,很多都是针对安卓的SDK,很少有针对Unity的&#xff0c…

Android App混合开发

混合开发的App(Hybrid App)就是在一个App中内嵌一个轻量级的浏览器,一部分原生的功能改为Html 5来开发,这部分功能不仅能够在不升级App的情况下动态更新,而且可以在Android或iOS的App上同时运行,让用户的体…

混合开发Hybrid App有哪些优势和不足?

从当前移动开发的实际情况来看,移动端的开发方式三分天下:纯原生(Native App)、混合开发(Hybird App)、网页应用(Web App)。 纯原生(Native App)&#xff1…

前端混合开发

gitbook完整版集合 混合开发 混合开发 一部分原生一部分js内嵌浏览器壳web手机端网页:手机操作比较困难,一般没有手机操作权限 混合开发框架 weex:采用vue框架,可打包成appreact-native:采用react框架 react语法加…