MapReduce是Hadoop提供的分布式计算框架,它可以用来统计和分析HDFS上的海量数据;
Hive则是SQL On Hadoop,Hive提供了SQL接口,开发人员只需要编写简单易上手的SQL语句,Hive负责把SQL翻译成MapReduce,提交运行。
如何把数据源的数据采集到Hadoop上
Hadoop与关系型数据库数据交换的工具:Sqoop\Flume\DataX
1、HDFS API,实际环境中一般自己较少编写程序使用API来写数据到HDFS,通常都是使用其他框架封装好的方法。
2、Sqoop是一个主要用于Hadoop/Hive与传统关系型数据库Oracle/MySQL/SQLServer等之间进行数据交换的开源框架。
3、Flume是一个分布式的海量日志采集和传输框架,因为“采集和传输框架”,所以它并不适合关系型数据库的数据采集和传输。
Flume可以实时的从网络协议、消息系统、文件系统采集日志,并传输到HDFS上。
Hadoop上的数据搞到别处去
1、把HDFS上的文件GET到本地。
2、HDFS API
3、DataX
4、Sqoop
SQL On Hadoop的框架
1、SparkSQL、Impala和Presto.
数据的一次采集、多次消费
Flume不能间隔很短就往HDFS上滚动文件,这样会导致小文件特别多。
为了满足数据的一次采集、多次消费的需求,这里要说的便是Kafka
调度监控系统
当平台中有几百上千个任务需要维护和运行时候,仅仅靠crontab远远不够了
调度监控系统是整个数据平台的中枢系统,类似于AppMaster,负责分配和监控任务
常用工具:
1、Apache Oozie
2、其他:Azkaban、light-task-scheduler、Zeus
介绍网站:https://azkaban.github.io/
https://github.com/ltsopensource/light-task-scheduler
https://github.com/alibaba/zeus
数据分为实时和准实时
实时使用最多的工具是:storm
准实时工具:spark streaming
对外提供数据的方式
1、满足实时查询,可能的方案有:HBase、Redis、MongoDB、ElasticSearch等
2、