Apache CarbonData是一种新的大数据文件格式,使用先进柱状存储,索引,压缩和编码技术实现更快速的交互式查询,以提高计算效率,将有助于加速查询超过PetaBytes数量级数据的速度。查询性能对比详细见carbondata 测试报告,安装文档详细见carbondata 安装文档
本文将介绍如何使用carbondata,以及如何编写一个carbondata 的saprk程序
一、在spark shell 下使用carbondata
1、使用外部包加载的方式启动carbondata 的spark shell:
spark-shell –jars /data1/bd/carbondata/carbondata_2.10-1.1.0-shade-hadoop2.2.0.jar
2、启动后,引入carbondata的context

   import org.apache.spark.sql.CarbonContext //引入CarbonContext包val cc = new CarbonContext(sc, "hdfs://base/user/hive/warehouse/dw_behavior_pageview_carbondatats2") //创建一个CarbonContext,里面的路径是carbondata 的存储路径cc.sql("""show create table dw_open_biz_order_part_carbondata """) //执行sql语句// 执行查询语句cc.sql("""select cinemano, count(distinct orderid) from dw_open_biz_order_part_carbondata  group by cinemano""")//执行updata更新数据cc.sql("""UPDATE dw_open_biz_order_part_carbondata SET (openid) = ('o0aT-d5MmmrqSPmM5ewiHkrcnDpY') where dt='2017-07-02' and openid='test_o0aT-d5MmmrqSPmM5ewiHkrcnDpY'""").show()cc.sql(""" select dt,openid from dw_open_biz_order_part_carbondata where dt='2017-07-02' and openid='test_o0aT-d5MmmrqSPmM5ewiHkrcnDpY' """).show()

二、 使用spark-submit 方式执行carbondata任务。
carbondata执行sql的api我已经封装了一个jar包,jar路径/data1/bimining/shenxiang/CarbonDataSql.jar
执行命令:

spark-submit --executor-memory 8G  CarbonDataSql.jar carbontestss "hdfs://base/user/hive/warehouse/dw_behavior_pageview_carbondatats2" f "/data1/bimining/shenxiang/load_data_to_carbon2.hql"
  说明:--executor-memory: 执行内存CarbonDataSql.jar 程序jar包名carbontestss:jar 包的第一个参数,表示spark任务的名称"hdfs://base/user/hive/warehouse/dw_behavior_pageview_carbondatats2": 第二个参数,carbondata 的存储路径f (s) :第三个参数,f表示从文件读取sql,s表示从字符串读取sql最后一个参数表示 sql文件路径或sql语句,当第三个参数为f时,这个参数为sql文件的路径,当第三个参数为s时,这个参数为sql语句。

三、如何编写一个carbondata(spark)程序
1、语言支持:carbondata目前只支持scala API和java API(这里以java为例)
2、maven pom.xml配置 ,需要在工程的pom中加入一下配置,导入spak,hadoop相关的包

< dependency>
< groupId>org.apache.spark< groupId>
< artifactId>spark-core_2.10< artifactId>
< version>1.6.1< version>
< dependency>
< dependency>
< groupId>org.apache.hadoop< groupId>
< artifactId>hadoop-client< artifactId>
< version>2.7.2< version>
< dependency>
< dependency>
< groupId>org.apache.spark< groupId>
< artifactId>spark-sql_2.11< artifactId>
< version>1.6.1< version>
< scope>provided< scope>
< dependency>
< dependency>
< groupId>org.apache.spark< groupId>
< artifactId>spark-hive_2.10< artifactId>
< version>1.6.1< version>
< dependency> 

3、在build path 中加入 carbondata_2.10-1.1.0-shade-hadoop2.2.0.jar(不加会提示找不到该包)
4、carbondata demo:

package com.yupiao.carbondata;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.spark.SparkConf;
import org.apache.spark.SparkContext;
import org.apache.spark.sql.CarbonContext;
public class CarbonDataSql {//创建sparkconf,SparkContext,CarbonContext 的成员变量
private static SparkConf conf ;
private static SparkContext sc;
private static CarbonContext cc ;public CarbonDataSql(String app_name,String store_Path) {//初始化conf,sc,ccconf= new SparkConf().setAppName("CarbonDataSql_"+app_name);sc= new SparkContext(conf);cc = new CarbonContext(sc,store_Path);
}
private void exectue_str(String sql_str){//执行sql语句cc.sql(sql_str).show();
}private void exectue_file(String path){//执行sql文件File f=new File(path);BufferedReader readfile = null;StringBuffer sql_str=new StringBuffer ("");try {readfile = new BufferedReader(new FileReader(f));String strline = null;while ((strline=readfile.readLine())!= null) {sql_str.append(strline.trim()+"\n");}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}System.out.println(sql_str.toString());cc.sql(sql_str.toString()).show();
}public static void main(String[] args) {//检测参数个数if(args.length!=4){System.out.println("args length error");System.exit(0);}String appname = args[0];String store_Path = args[1];CarbonDataSql cds = new CarbonDataSql(appname,store_Path);if("s".equals(args[2])){cds.exectue_str(args[3]);} else if("f".equals(args[2])){cds.exectue_file(args[3]);}else{System.out.println("option s、f");}sc.stop(); }
}

CarbonData使用示例(java)相关推荐

  1. HIDL示例-JAVA服务创建-Client验证-Android10.0 HwBinder通信原理(四)

    摘要:本节主要来讲解Android10.0 JAVA层的HIDL服务创建和JAVA层的Client验证 阅读本文大约需要花费15分钟. 文章首发微信公众号:IngresGe 专注于Android系统级 ...

  2. JAVA发送手机短信,httpclient短信发送接口示例(java)

    httpclient短信发送接口示例(java),可用于直接用电脑发送短信,可根据实际情况,与联通移动公司洽谈接口,完成网上发送短信功能,如需jar包,可向联通移动公司项目部沟通. package c ...

  3. 顺丰api相关示例 - java版本(带打印)

    本来一个简简单单的调用api实现的东西根本没必要单独写一篇博客. ....但是!这个顺丰坑实在是太多了!!!让我都有点想骂人了都 实在忍不住吐槽几点: 丰桥的客服qq群,问了一天没人搭理我,真是应了那 ...

  4. java语言实现一个长度为n_Java语言实现求解一元n次多项式的方法示例[Java代码]...

    本文主要向大家介绍了Java语言实现求解一元n次多项式的方法示例,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 项目需要做趋势预测,采用线性拟合.2阶曲线拟合和指数拟合的算法,各种线 ...

  5. JAVA中常用接口的介绍及使用示例 java lang Comparable

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! JAVA ...

  6. Java HttpURLConnection示例– Java HTTP请求GET,POST

    HttpURLConnection class from java.net package can be used to send Java HTTP Request programmatically ...

  7. storm apache java_Apache Storm 示例 Java 拓扑 - Azure HDInsight | Microsoft Docs

    您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn. 以 Java 语言创建 ...

  8. Java实现处理汽车罚单的数据_基于聚合数据的全国违章直连查询的接口示例-Java版...

    package cn.juhe.demo; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import java.io.*; ...

  9. 老黄历java_基于聚合数据的老黄历接口调用示例-JAVA版

    本文介绍聚合数据的老黄历接口的使用 依赖 net.sf.json-lib json-lib 2.2.3 jdk15 代码部分 package com.example.demo; import net. ...

最新文章

  1. Java条形码生成技术-Barcode4j
  2. 网站打不开 换服务器,【图】网站更换服务器打不开—深圳天下信息网
  3. 切莫开一块地荒一块地
  4. 用Hystrix保护您的应用程序
  5. c++中list容器
  6. 工作214:结构 vue操作一个很有意思的报错 [Vue warn]: You may have an infinite update loop in a component
  7. JS之返回字符串最后出现的位置lastIndexOf
  8. 简述python爬虫_python爬虫入门篇了解
  9. php软件开发--tp5
  10. MySQL Spatial Data Types
  11. nginx升级与回退
  12. snorkel_Snorkel AI:标记培训数据的程序化方法
  13. 获取OlapConnection连接
  14. 真假iPhone5s的辨别方法,苹果5改5s,iPhone5 改 iPhone5s 识别方法
  15. 推荐电影 梦工厂经典电影列表 1996-2012
  16. 锁定计算机好在下游戏吗,用windows7系统锁定计算机防止孩子沉迷游戏
  17. 将整数翻译成英文(C++)
  18. nowcoder刷题总结
  19. eclipse折叠if语句块_「03」java中的方法以及控制语句
  20. Allegro等长走线设计遇到的一些问题

热门文章

  1. MySQL密码忘记了?不慌~
  2. 超前进位加法器(verilog)
  3. Ubuntu下键盘输入错乱问题
  4. google app engine 部署 proxy
  5. 第六章 戚继光——孤独的将领 -1
  6. RHCE学习笔记-133-1
  7. matlab机器人雅可比矩阵实验,机械臂通过雅可比矩阵实现正运动学及逆运动学迭代解(工具:matlab)...
  8. 真正解决iframe高度自适应问题
  9. 2023美国大学生数学建模竞赛(MCM/ICM)报名流程指南
  10. 对于运维来说,可靠性到底是个啥?