入门知识
对于我们新手入门学习hadoop的朋友来说,首先了解一下云计算和云计算技术是有必要的。下面先是介绍云计算和云计算技术的:
云计算,是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机和其他设备,主要是基于互联网的相关服务地增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。狭义云计算指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务地交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。它意味着计算也可作为一种商品通过互联网进行流通。
什么是云计算?
什么是云计算技术?
在世界上云计算已经大面流行,有很流行的Google、Drive、SkyDrive、Dropbox、亚马逊云服务等等。在国内百度云存储、360云存储都是比较流行的。
我们接下来就应该会想到大数据存储,目前开源市场上最流行的应该是hadoop分布式存储,已经有大部分互联网公司已经开始使用,例如百度、360、阿里巴巴,其中一部分公司已经把hadoop作为他们的核心产品例如英特尔、IBM并为部分工作提供过大数据的解决方案,
大家可以了解一下英特尔在不行业提供的解决方案:
· 面向智能交通的大数据和英特尔® 智能系统解决方案
· 物联网商机和技术挑战(英特尔)
· 大数据在医疗行业的应用
· 英特尔IT开源混合云
Hadoop基础
Hadoop是一个能够对大量数据进行分布式处理的软件框架,它是一种技术的实现,是云计算技术中重要的组成部分,云计算的概念更广泛且偏向业务而不是必须拘泥于某项具体技术,云计算的存在只是一种新的商业计算模型和服务模式。因此,云计算才会出现“横看成岭侧成峰,远近高低各不同”,各种各样层出不穷的理解。
对于初学hadoop的朋友来说可能基于迫切寻找一本入门的书,我个人觉得不用于急于寻找书,先了解hadoop是否做什么、它能做什么、能带来什么 hadoop使用场景、Hadoop到底能做什么?怎么用hadoop?,当大家对这些有所了解,就会如何入手学习hadoop接下来大家应该进行系统性的学习hadoop了,我个人建议不要盲目的去搭建hadoop环境,熟悉了解hadoop基本知识及其所需要的知识例如java基础、linux环境、linux常用命令,它相关产品及其衍生产品,他们之间是什么关系如何工作,每个产品它们的特点是什么,
下面是hadoop一些基本知识:
1 hadoop HDFS文件系统的特征
存储极大数目的信息(terabytes or petabytes),将数据保存到大量的节点当中。支持很大单个文件。
提供数据的高可靠性,单个或者多个节点不工作,对系统不会造成任何影响,数据仍然可用。
提供对这些信息的快速访问,并提供可扩展的方式。能够通过简单加入更多服务器的方式就能够服务更多的客户端。
HDFS是针对MapReduce设计的,使得数据尽可能根据其本地局部性进行访问与计算。
2 Hadoop简介(1):什么是Map/Reduce
3 Mapreduce 整个工作机制图
4 Hadoop mapper类的阅读
5 Hadoop reducer类的阅读
6 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相关文档下载 链接: http://pan.baidu.com/s/1gdwtu1t 密码: slml
有一点想提醒初学的朋友,在学习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/
QQ截图20140425120600
接下来,我把这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://www.douban.com/group/topic/51919861/