本自学笔记来自于Yutube上的视频Hadoop系列。网址:
https://www.youtube.com/watch?v=-TaAVaAwZTs(当中一个)
以后不再赘述
自学笔记,难免有各类错误纰漏。请看者谨慎。
Hadoop的使用还有大数据时代什么的就不说了。Hadoop不是一个单独的工具,而是一整个生态系统。包括一系列工具。所以首先要先介绍一下Hadoop相关的工具和各类概念,是以后经常会接触到的。
1. Hadoop Core
a) HDFS Hadoop分布式文件系统,Hadoop的核心之中的一个。会把TB, PB, ZB的数据切割成为以64M(默认)大小的数据块分布存储在不同硬盘上,而且给予备份(默认3份)
b) MapReduce Hadoop的数据处理模型。
简单来说,处理能够分为Map阶段和Reduce阶段。Map阶段找出要处理的数据,Reduce阶段来处理这些数据得到想要的结果。
c) YARN 未来版本号,相当于MapReduce2.0版。
一些升级比方。原来的MapReduce系统中,有JobTracker和TaskTracker,前者关注Name Node, 后者关注TaskNode, 在YARN里面JobTracker 会更仔细一点,分成几个分别关注job或者data等
2. Hadoop Projects
a) Pig,Hive:负责分析数据的。有点类似Hadoop里面的SQL工具。主要是由于每次使用就去写MapReduce程序太麻烦(并且也不是人人都喜欢java),所以有这些工具来提供类SQL的支持。差别是Pig更像提供了一种脚本语言,然后会将其转化为MapReduce, 而Hive提供类SQL语言。叫HiveQL。
b) HBase, Cassandra. HBase是NOSQL类的数据库。Hadoop的数据存储方式。而且与Pig和Hive无缝集成,基于google的big table, 能够支持数百万列和亿行的数据。
Cassandra主要涉及用来与Hadoop数据进行即时交互的工具。
c) HCatalog, Lucene, Hama, Crunch: HCatalog是日志工具,能够记录我们用不同的工具如Pig, Hive的查询记录等。Lucene提供搜索功能。各类搜索。Hama在分析科学研究数据时候经常使用,Crunch用来表现MapReduce的pipeline。上述四个工具都能够提供可视化的界面。
d) Avro, Thrift: 提供数据的序列化/,让我们能够把数据序列化后在不同的程序间共享。Avro能够说是Hadoop基本的数据序列化工具。 Thrift主要用于不同开发语言间的数据序列化。
e) Drill, Mahout: 数据智能化。Drill用于数据挖掘;Mahout用于数据分类等。比方依据你听的音乐智能推荐。
3. Hadoop Incubation:
a) Sqoop: 关系数据库和hadoop之间的数据交换
b) Flume: 即时日志处理系统
c) Chukwa:
d) Zookeeper:同步server和不同的Cluster之间和合作,同一时候提供统一管理界面
e) Oozie: 大致相当于任务管理,比方先完毕一个Pig,然后再做一个Hive,然后Sqoop转换,用Oozie控制
f) Knok。安全控制
g) HDT。用eclipse来开发Hadoop,比方MapReduce等。
h) Spark:宣称比Hadoop快上百倍,主要把hadoop硬盘操作的东西放入内存中操作。Shark类似Spark,相相应hive.
i) Ambari:管理整个project的工具
j) 具体每一种工具,能够去incubator.apache.org/projects/