大数据工具:https://blog.csdn.net/duozhishidai/article/details/83537931
Avro
这个Apache项目提供了数据序列化系统,拥有丰富的数据结构和紧凑格式。
模式用JSON来定义,它很容易与动态语言整合起来。
Flume
可以从其他应用程序收集日志数据,然后将这些数据送入到Hadoop。
官方网站声称:“它功能强大、具有容错性,还拥有可以调整优化的可靠性机制和许多故障切换及恢复机制。”
Oozie:
这种工作流程调度工具是为了管理Hadoop任务而专门设计的。
它能够按照时间或按照数据可用情况触发任务,并与MapReduce、Pig、Hive、Sqoop及其他许多相关工具整合起来。
存储格式:
textfile:文本,不压缩
sequencefile:二进制,压缩,行存储
rcfile:行列混合的存储格式,基于列存储。 Record Columnar file
orcfile:扩展了rcfile
parquet
有句话:
行式数据库更适用于OLTP
列式数据库更适用于OLAP:经常是查询某几列,然后不需要查询所有数据,只是在某些region里
大数据分析平台和工具
storm毫秒级 spark秒级
数据库:
CouchDB
CouchDB号称是“一款完全拥抱互联网的数据库”,它将数据存储在JSON文档中,
这种文档可以通过Web浏览器来查询,并且用JavaScript来处理。它易于使用,在分布式上网络上具有高可用性和高扩展性。
olap和oltp:
https://www.cnblogs.com/hhandbibi/p/7118740.html
olap 可以理解为大数据分析,不支持事务性的操作,可以慢
oltp 类似传统关系数据的 支持事务性的处理
SQL-on-Hadoop技术
MapReduce
MPP-over-Hadoop
劣势:扩展性不高,出错就挂掉,所以不适合线上。。。
优势:dag,快,基本都是基于内存来计算,中间不落磁盘,除非内存不够
http://www.cbdio.com/BigData/2015-07/01/content_3385581_all.htm
数据分层:热数据、温数据、冷数据,放在内存里查询
需要partition,需要rehash 列式存储ORC https://www.infoq.cn/article/an-article-mastering-sql-on-hadoop-core-technology
各个节点之间数据share-nothing,各个节点处理各自的数据,然后交由一个中心节点汇总
如果有一个节点失败了,查询任务就失败了
不适合多很的查询并发?
大数据查询引擎
olap 常使用分区技术、并行技术。 每个大公司都喜欢搞一个自己的查询引擎。。。
需要区分使用场景,是否免费,成本
都支持类sql的查询方式
https://yq.aliyun.com/articles/688271
https://gitee.com/ysc/data-generator
Hive
Sparksql
Presto:https://www.cnblogs.com/sorco/p/7060166.html
并行化,将sql拆分成执行top,所有的中间计算都完全在内存,不落磁盘,shuffle也是从内存到内存,而不是想mr,需要落磁盘
所以,对内存要求比较高,超过30分钟没有执行完,说明不适合用presto
是Facebook开源的,完全基于内存的并⾏计算,分布式SQL交互式查询引擎 只是查询引擎,不是存储系统,查询的时候会将数据装入内存
presto的查询速度比hive快5-10倍
适合:PB级海量数据复杂分析,交互式SQL查询,⽀持跨数据源查询
不适合:多个大表的join操作,因为presto是基于内存的,多张大表在内存里可能放不下
impala:https://www.cnblogs.com/Rainbow-G/articles/4282444.html
https://zhidao.baidu.com/question/1176215230111262739.html
Cloudera声称,基于SQL的Impala数据库是“面向ApacheHadoop的领先的开源分析数据库”。
它可以作为一款独立产品来下载,又是Cloudera的商业大数据产品的一部分。
实时数据分析,因为不支持UDF,能处理的问题域有一定的限制,与Hive配合使用,对Hive的结果数据集进行实时分析。
也只是一个查询引擎
运行在Hadoop之上的大规模并行处理(MPP)查询引擎,提供对Hadoop集群数据的高性能、低延迟的SQL查询,使用HDFS作为底层存储。
mpp
也是完全基于内存
apache Hawq
HAWQ是Hadoop原生SQL查询引擎,结合了MPP数据库的关键技术优势和Hadoop的可扩展性和便捷性。
HAWQ从HDFS本地读取数据并将数据写入HDFS。
国人开发的 apache项目
https://blog.csdn.net/wzy0623/article/details/71544580
比impala快4倍
Clickhouse
俄罗斯搜索引擎 真正的面向列式存储 不只是查询引擎,还是存储
ClickHouse是开源而且免费的
非常快
https://blog.csdn.net/haitianxueyuan521/article/details/80983001
Greenplum
MPP
https://blog.csdn.net/dcpkeke/article/details/79003170
不只是查询引擎,还是存储
基于低成本的开放平台基础上提供强大的并行数据计算性能和海量数据管理能力。
是一个独立的公司搞的
MySQL、
Elasticsearch、
apache Drill、
Apache Drill是一个开源的,对于Hadoop和NoSQL低延迟的SQL查询引擎。
Apache Drill 实现了 Google's Dremel.那么什么是Google's Dremel?
网络中一段描述:Dremel 是Google 的"交互式"数据分析系统。
可以组建成规模上千的集群,处理PB级别的数据。
MapReduce处理一个数据,需要分钟级的时间。
作为MapReduce的发起人,Google开发了Dremel将处理时间缩短到秒级,作为MapReduce的有力补充。
https://www.cnblogs.com/xuansheng/p/4675036.html
mpp
apache Druid、
https://blog.csdn.net/u011489205/article/details/81639087
Druid是一个开源的分布式数据存储。 Druid的核心设计结合了OLAP /分析数据库,时序数据库和搜索系统的创意,为运营分析创建统一的系统。
LinkedIn Pinot
https://cloud.tencent.com/developer/news/362497
Pinot是一个实时分布式OLAP数据存储区,用于LinkedIn以低延迟提供可扩展的实时分析。 它可以从离线数据源(例如Hadoop和平面文件)以及在线源(例如Kafka)中提取数据。 Pinot设计为水平缩放。
Pinot不是数据库的替代品,即它不能用作真值存储源,不能改变数据
apache Kylin
ebay开发的
基于hive和hbase的预计算
亚秒级交互
它主要是通过预计算的方式将用户设定的多维立方体缓存到HBase中(目前还仅支持hbase)
https://www.cnblogs.com/honey01/p/8351145.html
Apache Kudu:
一个既支持随机读写、又支持 OLAP 分析的大数据存储引擎。
http://www.imooc.com/article/255944