首页 > 其他分享 >云小课|MRS基础原理之CarbonData入门

云小课|MRS基础原理之CarbonData入门

时间:2022-10-29 11:25:15浏览次数:77  
标签:10 云小课 30 MRS CarbonData 32 2017 Spark

阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。

摘要:CarbonData是一种新型的Apache Hadoop本地文件格式,使用先进的列式存储、索引、压缩和编码技术,以提高计算效率,有助于加速超过PB数量级的数据查询,可用于更快的交互查询。同时,CarbonData也是一种将数据源与Spark集成的高性能分析引擎。

本文分享自华为云社区《【云小课】EI第40课 MRS基础原理之CarbonData入门》,作者:Hello EI 。

CarbonData是一种新型的Apache Hadoop本地文件格式,使用先进的列式存储、索引、压缩和编码技术,以提高计算效率,有助于加速超过PB数量级的数据查询,可用于更快的交互查询。同时,CarbonData也是一种将数据源与Spark集成的高性能分析引擎。

使用CarbonData的目的是对大数据即席查询提供超快速响应。从根本上说,CarbonData是一个OLAP引擎,采用类似于RDBMS中的表来存储数据。用户可将大量(10TB以上)的数据导入以CarbonData格式创建的表中,CarbonData将以压缩的多维索引列格式自动组织和存储数据。数据被加载到CarbonData后,就可以执行即席查询,CarbonData将对数据查询提供秒级响应。

CarbonData将数据源集成到Spark生态系统,用户可使用Spark SQL执行数据查询和分析。也可以使用Spark提供的第三方工具JDBCServer连接到Spark SQL。

本文以从CSV文件加载数据到CarbonData Table为例,介绍创建CarbonData table、加载数据,以及查询数据的快速入门流程。

使用CarbonData需要安装Spark2x组件,并安装Spark2x的客户端。

  • MRS集群的创建可参考MRS快速入门中的“创建集群”章节,例如购买一个MRS 3.1.0版本集群。
  • 安装Spark2x客户端,可参考MRS用户指南中的“安装客户端”章节,例如客户端安装目录为:“/opt/client”。
  • 对于安全模式的集群(开启了Kerberos认证),在使用CarbonData时,需要创建一个具有访问CarbonData权限的用户,可参考MRS用户指南中的“创建用户”章节,用户组选择hadoop和hive,主组选择hadoop,例如创建人机用户“testuser”。

准备CSV文件

准备加载到CarbonData Table的CSV文件。

1.在本地准备CSV文件,文件名为:test.csv。

13418592122,1001,MAC地址,2017-10-23 15:32:30,2017-10-24 15:32:30,62.50,74.56 
13418592123,1002,MAC地址,2017-10-23 16:32:30,2017-10-24 16:32:30,17.80,76.28 
13418592124,1003,MAC地址,2017-10-23 17:32:30,2017-10-24 17:32:30,20.40,92.94 
13418592125,1004,MAC地址,2017-10-23 18:32:30,2017-10-24 18:32:30,73.84,8.58 
13418592126,1005,MAC地址,2017-10-23 19:32:30,2017-10-24 19:32:30,80.50,88.02 
13418592127,1006,MAC地址,2017-10-23 20:32:30,2017-10-24 20:32:30,65.77,71.24 
13418592128,1007,MAC地址,2017-10-23 21:32:30,2017-10-24 21:32:30,75.21,76.04 
13418592129,1008,MAC地址,2017-10-23 22:32:30,2017-10-24 22:32:30,63.30,94.40 
13418592130,1009,MAC地址,2017-10-23 23:32:30,2017-10-24 23:32:30,95.51,50.17 
13418592131,1010,MAC地址,2017-10-24 00:32:30,2017-10-25 00:32:30,39.62,99.13

2.将CSV文件导入客户端节点,例如“/opt”目录下。

3.进入客户端目录,上传CSV文件到HDFS的“/data”目录下:

cd /opt/client
source ./bigdata_env
source ./Spark2x/component_env
kinit sparkuser
hdfs dfs -put /opt/test.csv /data/

连接到CarbonData

在对CarbonData进行任何一种操作之前,首先需要连接到CarbonData。

  • 使用Spark SQL或Spark shell连接到Spark并执行Spark SQL命令。
  • 开启JDBCServer并使用JDBC客户端(例如,Spark Beeline)连接。
cd ./Spark2x/spark/bin
./spark-beeline

创建CarbonData Table

在Spark Beeline被连接到JDBCServer之后,需要创建一个CarbonData table用于加载数据和执行查询操作。

例如下面是创建一个简单的表的命令:

create table  x1 (imei string, deviceInformationId int, mac string, productdate timestamp, updatetime timestamp, gamePointId double, contractNumber double) STORED AS carbondata TBLPROPERTIES ('SORT_COLUMNS'='imei,mac');
命令执行结果如下:
+---------+ 
| Result  | 
+---------+ 
+---------+ 
No rows selected (1.093 seconds)

加载数据到CarbonData Table

创建CarbonData table之后,可以从CSV文件加载数据到所创建的表中。

表的列名需要与CSV文件的列名匹配。

LOAD DATA inpath 'hdfs://hacluster/data/test.csv' into table x1 options('DELIMITER'=',', 'QUOTECHAR'='"','FILEHEADER'='imei, deviceinformationid,mac, productdate,updatetime, gamepointid,contractnumber');
其中,“test.csv”为准备的CSV文件,“x1”为示例的表名。

命令执行结果如下:

+------------+ 
|Segment ID  | 
+------------+ 
|0           | 
+------------+ 
No rows selected (3.039 seconds)

在CarbonData中查询数据

创建CarbonData table并加载数据之后,可以执行所需的数据查询操作。以下为一些查询操作举例。

获取记录数

为了获取在CarbonData table中的记录数,可以运行以下命令。

select count(*) from x1;

使用Groupby查询

为了获取不重复的deviceinformationid记录数,可以运行以下命令。

select deviceinformationid,count (distinct deviceinformationid) from x1 group by deviceinformationid;

用Filter查询

为了获取特定deviceinformationid的记录,可以运行以下命令。

select * from x1 where deviceinformationid='1010';

在执行数据查询操作后,如果查询结果中某一列的结果含有中文字等非英文字符,会导致查询结果中的列不能对齐,这是由于不同语言的字符在显示时所占的字宽不尽相同。

在Spark-shell上使用CarbonData

创建CarbonData table并加载数据之后,可以执行所需的查询操作,例如filters,groupby等。

用户若需要在Spark-shell上使用CarbonData,需通过如下方式创建CarbonData Table,加载数据到CarbonData Table和在CarbonData中查询数据的操作。

spark.sql("CREATE TABLE x2(imei string, deviceInformationId int, mac string, productdate timestamp, updatetime timestamp, gamePointId double, contractNumber double) STORED AS carbondata") 
spark.sql("LOAD DATA inpath 'hdfs://hacluster/data/x1_without_header.csv' into table x2 options('DELIMITER'=',', 'QUOTECHAR'='\"','FILEHEADER'='imei, deviceinformationid,mac, productdate,updatetime, gamepointid,contractnumber')") 
spark.sql("SELECT * FROM x2").show

好了,本期云小课就介绍到这里,快去体验MapReduce(MRS)更多功能吧!猛戳这里

 

点击关注,第一时间了解华为云新鲜技术~

标签:10,云小课,30,MRS,CarbonData,32,2017,Spark
From: https://www.cnblogs.com/huaweiyun/p/16838303.html

相关文章

  • 云小课|MRS基础原理之Hudi介绍
    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击......
  • 云小课|MRS基础原理之Hudi介绍
    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容​​请单......
  • MRS CH573 CH582生成BIN文件
    MRS编译默认生成hex文件,如果想直接生成BIN文件可以按照如下设置  效果截图 ......
  • 5 步教你将 MRS 数据导入 DWS
    5步教你将MRS数据导入DWSMapReduce服务(MapReduceService,简称MRS)是一个基于开源Hadoop生态环境而运行的大数据集群,对外提供大容量数据的存储和分析能力,可解决用户......
  • MRS 提高编译效率
    函数多的时候减少代码    需要 芯片支持(蓝牙系列进V208支持),V4C和以上的内核(可以通过下图的方式继续优化),V4C以下的内核不支持(会导致程序跑飞)  ......
  • MRS There is a hole [0x212-0x229] in .debug_loc section. 报错
      这个警告产生是因为MRS删除DEBUG定义导致,要消除警告MRS设置需要更改一下 ......
  • MRS 指定变量RAM存放地址
    在MounRiverStudio配置中linkerflags加入--section-start=.XXX=RAM的起始地址2.将变量加入__attribute__声明  3.编译后的效果如图所示 ......