在看这篇文章前,请先了解一下:
1,cdh6 flink 安装
2,flink on yarn 提交任务的二种方式
3,cdh hive 2.1.1 升级到 2.3.4
最近在玩flink,想让flink sql借用hive的元数据库。可是呢,flink sql能连hive的版本,到目前为止只有2个,hive 1.2.1和hive 2.3.4。
cdh6.3.1装的hive是2.1.1,所以不升级hive,flink sql根本用不了。
spark,flink都能进行流处理和批处理。spark的文章写了好多,请在本博客中去搜索。flink的安装,请参考:cdh6 flink 安装
phoenix双引号,单引号用起来有点怪怪的。
phoenix表字段,表名等,如果不加双引号,默认是大写的。
单引号加在值上面会被认为成列,例如:where后面条件值,upsert values里面值。phoenix对值类型审核还是挺严格的,VARCHAR肯定是要加单引号的。整形肯定不能加。
flink可以做为批处理,也可以流处理的工具。功能根spark差不多,不过据说比spark强大。据说天猫双11,就用的这玩意。
phoenix对表的操作,看似根其他sql差不多,但是总感觉很变扭。特别是不加双引号默认大写,值必须用单引号。
phoenix是构建在Hbase之上,使用标准的SQL操作Hbase,可以做联机事务处理,拥有低延迟的特性。
cdh的安装,请参考:cloudera cdh 6.3 安装配置
impala可以整合Hbase,但是不支持delete,upsert。如果想要impala的delete,upsert,存储要用kudu。请参考:impala与hbase整合
hive可以整合Hbase,受限于hive自己的原因,和hbase并不能配合的很好。请参考:hive与hbase整合
玩过大数据的人,肯定都遇到过小文件问题。这也是玩大数据,必须跨过去的一个坎,要不然,大数据玩不转。
做大数据,时间挺长的了。基于hadoop的大数据生态圈,还是比较稳定和高效的。
默认情况下,简单的HQL查询会扫描整个表。查询大表时,这会降低性能。可以通过创建分区来解决此问题。在Hive中,每个分区对应于预定义的分区列,这些分区列映射到HDFS中表的目录中的子目录。当查询表时,只读取表中所需的数据分区(目录),因此查询的I/O和时间大大减少。使用分区是提高Hive性能的一种非常简单有效的方法。