Kudu 使用_创建工程 | 学习笔记

简介: 快速学习 Kudu 使用_创建工程

开发者学堂课程【2020版大数据实战项目之 DMP 广告系统(第三阶段)Kudu 使用_创建工程学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/678/detail/11780


Kudu 使用_创建工程


内容介绍:

一、使用 Scala 操作 Kudu

 

一、使用 Scala 操作 Kudu

Scala 是基于 JVM 的语言,它的特性是可以和 Java 混用,Scala 操作 Kudu 使用的 Kudu Java API,因为 Scala Java 可以进行相互操作。

1Kudu API 结构设计

(1)Client

全称 Kudu Client,使用 Kudu master 服务器地址列表来创建,作用是Kudu API 主入口,通过 Client 对象获取 Table 后才能操作数据。

操作:

①检查表是否存在;

②提交表的 DDL 操作,create, delete, alter ,在对表进行 DDL 的时候,需要如下两个对象;

③创建 Table 对象,就是 Open Table

(2)Table

通过 Client 对象开启,通过 Table 对象可以操作表中的数据,可以获取行对象,对对象进行 insert, delete, update, upsert,然后进行对于数据的增、删、改、查,

(3)Scanner

专门负责查,也是 Kudu API 提供查的接口,它也是一个对象,通过 Table 对象开启扫描,Table 对象可以获取 ScannerScanner 可以进行相应的查询。

Scanner 中有几个读取模式,比较关键的有两个:

READ_ LATEST,就是读取最后的数据,与 MySQL 中事务隔离级别中的不可重复读 ReadCommitted 相似,它能够保证只读取到已经提交的数据,只会返回已经提交的数据,但是不能保证每一次获取的数据都是一样的。

READ_ AT_ SNAPSHOTSNAPSHOT 就是快照,可以理解为时间戳,它可以读取在这个时间戳的数据,在某一个时间点的数据,这时它能够保证在这个时间点读取的数据第一次和第二次读一定是一样的,类似于可重复读RepeatableRead,但是它性能比较差,比如获取10秒钟之前的数据,就要等待在这个时间点之前所提交的所有的事务全都提交后,才能进行结果的返回。

还有一种模式叫 READ_ YOUR_ WRITES,是试验性的一种模式,尽量不要使用,意思是在每一次查询后确保自己的数据已经提交,把自己提交的所有数据都返回,不管别人是否提交。

2、导入 Kudu 所需要的包

使用 Scanner 操作 Kudu,先创建工程,点击 IDEA 里的 New Project

image.png

然后点击下一步,groupid cn.itcastArtifactld kudu,版本为0.0.1

image.png

放在 DMP Project 下的 Kudu 工程里

image.png

点击 Finish,就创建完这个过程。

image.png

要使用 Kudu Java API,就要导入一些 Kudu 相关的 Maven 依赖。

需要导入如下三个 Maven 插件,Maven 插件是编译时能够做额外事情的插件,第一个插件 maven -compile -plugin,是自动导入的,默认就有,现在需要导入这个插件的目的主要是通过其指定 Java 的版本。还有插件 scala-maven-plugin,主要作用是编译Scala 代码。还有 maven -shade- plugin,需要了解 jar 包的类型,一种叫 non-uber Jar,比如打出来一个 jar 包,不是必备的一些依赖并不会包含在这个 jar 包内,jar 包里只有一些必备的一些代码。之前导过插件 shade- plugin,作用是打一个 uber Jar,也就是胖 Jarnon-uber Jar 可以理解为瘦 Jar,瘦 Jar 里只包含自己写的代码,胖 Jar 里包含所有导入的依赖,但是现在举两个例子,比如要提交 Spark 程序,Spark 在服务器里部署时有一个 lib 目录,lib 目录内有各种各样的 jar 包,这些 Jar 包在 Spark 集群执行任务时会被加载到当前的上下文中,如果打了一个Uber Jar,而 Uber Jar 包含了引入的 Spark,那么和加载的 Jar 包就冲突了,它会把一些可能产生冲突的、依赖的 class 重命名。在提交 spark 任务时可以打一个 Non-Uber Jar,因为 spark 中已经加载了它所必备的一些内容。

3、需要导入一个 Kudu 的依赖包

根据使用 Hadoop 的版本不同, Kudu 的导入方式有两种, 一种是 CDH 版本的依赖,一种是 Apache 版本的依赖,我们当前使用 CDH 版本的依赖,所以需要导入如下包:

<dependency>

<groupId>org.apache.kudu</ groupId>

<artifactId>kudu-client</artifactId>

<version>1.7.0-cdh5.16.1</version>

<scope>provided</scope>

</dependency>

4、整个 Maven 文件如下所示

image.png

拷贝后放进工程中,这样整个初始环境就清楚了。

相关文章
|
9月前
|
消息中间件 缓存 NoSQL
手把手教你云相册项目简易开发 day1 Kafka+IDEA+Springboot+Redis+MySQL+libvips 简单运行和使用
手把手教你云相册项目简易开发 day1 Kafka+IDEA+Springboot+Redis+MySQL+libvips 简单运行和使用
137 0
|
3月前
|
分布式计算 Hadoop 关系型数据库
Sqoop入门指南:安装和配置
Sqoop入门指南:安装和配置
|
4月前
|
SQL 缓存 分布式计算
Apache Zeppelin系列教程第九篇——Zeppelin NoteBook数据缓存
Apache Zeppelin系列教程第九篇——Zeppelin NoteBook数据缓存
103 0
|
5月前
|
Java DataX Maven
DataX教程(02)- IDEA运行DataX完整流程(填完所有的坑)
DataX教程(02)- IDEA运行DataX完整流程(填完所有的坑)
293 0
|
SQL 分布式计算 Hadoop
HIve安装踩坑手册
HIve安装踩坑手册
242 0
|
SQL 关系型数据库 MySQL
Hive环境搭建及简单使用
上篇文章我们介绍了Hive源码编译的相关内容,本篇文章将主要介绍Hive环境的搭建步骤及简单使用。
212 0
|
SQL 分布式计算 监控
HBase 快速入门(安装和命令操作)
HBase 快速入门(安装和命令操作)
|
数据采集 Oracle 关系型数据库
Kettle入门(一)
Kettle入门(一)
361 0
Kettle入门(一)
|
存储 XML 缓存
01-PDI(Kettle)简介与安装
文章目录 01-PDI(Kettle)简介与安装 PDI(Kettle)简介 Kettle安装 Kettle核心知识点
01-PDI(Kettle)简介与安装