Spark实现HIVE统计结果导入到HBase操作
2015-12-31 11:34
253 查看
由于HIVE更新的机制极其不适应SPARK环境,于是利用HBase来执行HIVE中某些统计结果的更新。首先要做的是实现Spark + Hive访问,得到RDD,再将这个RDD导入到HBase中操作。
然而网上关于这一块目前资料还真很少。但是其原理总体上来说是非常简单的。
步骤主要是两步:
(1)开启hive连接器,实现spark + hive的访问,得到dataframe对象。
(2)对dataframe进行RDD转换,进行hbase的批量导入bulkput函数来实现。
hbaseContext.bulkPut[Row](rddFromSql.rdd,
tableName,
(putRecord) => {
val put = new Put(Bytes.toBytes(putRecord.getString(0)))
put.add(Bytes.toBytes(columnFamily1),Bytes.toBytes("receiver"),Bytes.toBytes(putRecord.getString(1)))
put.add(Bytes.toBytes(columnFamily1),Bytes.toBytes("count"),Bytes.toBytes(putRecord.getLong(2)))
put
},
true);
运行成功,成功导入600W数据.
然而网上关于这一块目前资料还真很少。但是其原理总体上来说是非常简单的。
步骤主要是两步:
(1)开启hive连接器,实现spark + hive的访问,得到dataframe对象。
(2)对dataframe进行RDD转换,进行hbase的批量导入bulkput函数来实现。
hbaseContext.bulkPut[Row](rddFromSql.rdd,
tableName,
(putRecord) => {
val put = new Put(Bytes.toBytes(putRecord.getString(0)))
put.add(Bytes.toBytes(columnFamily1),Bytes.toBytes("receiver"),Bytes.toBytes(putRecord.getString(1)))
put.add(Bytes.toBytes(columnFamily1),Bytes.toBytes("count"),Bytes.toBytes(putRecord.getLong(2)))
put
},
true);
运行成功,成功导入600W数据.
相关文章推荐
- C++中智能指针的工作原理和简单实现
- 发布Qt Widgets桌面应用程序的方法
- jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
- 部署nagios监控系统
- Docker: Error starting container: Unable to load the AUFS module
- 批量执行sql
- 关于Servlet的生命周期与工作原理
- UITableViewCell的选中时的颜色设置
- iOS 摇一摇 实现
- JavaScript最佳实践,持续更新
- Android DiskLruCache完全解析,硬盘缓存的最佳方案
- FEC前向纠错算法
- RadioGroup的简单封装
- 缓存jar包来提升spark on Yarn job的提交速度
- 华为測试 超长整数相加
- 编程英语大全
- PECL 和 PEAR 的区别
- PHP - Cookie
- 如何写一个计算器?
- 浅谈Android中的序列化