1.几种缓存数据的方法
例如有一张Hive表叫做activity
1.CACHE TABLE
//缓存全表
sqlContext.sql("CACHE TABLE activity")
//缓存过滤结果
sqlContext.sql("CACHE TABLE activity_cached as select * from activity where ...")
CACHE TABLE是即时生效(eager)的,如果你想等到一个action操作再缓存数据可以使用CACHE LAZY TABLE,这样操作会直到一个action操作才被触发,例如count(*)
sqlContext.sql("CACHE LAZY TABLE ...")
取消hive表缓存数据
sqlContext.sql("UNCACHE TABLE activity")
1)过去整个业界对大数据的分析的技术栈的pipeline一般分为以下两种方式:
a)data source -> hdfs -> mr/hive/spark(相当于etl)-> hdfs parquet -> spark sql/impala -> resultservice(可以放在db中,也有可能被通过jdbc/odbc来作为数据服务使用);
b)data source -> real timeupdate data to hbase/db -> export to parquet -> spark sql/impala -> resultservice(可以放在db中,也有可能被通过jdbc/odbc来作为数据服务使用);
上述的第二种方式完全可以通过kafka+spark streaming+spark sql(内部也强烈建议采用parquet的方式来存储数据)的方式取代
2)期待的方式:datasource -> kafka -> spark streaming -> parq
Hadoop|
Apache Pig|
Apache Kafka|
Apache Storm|
Impala|
Zookeeper|
SAS|
TensorFlow|
人工智能基础|
Apache Kylin|
Openstack|
Flink|
MapReduce|
大数据|
云计算|
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....