框架搭建_Kudu工具类_创建表|学习笔记

简介: 快速学习框架搭建_Kudu工具类_创建表

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

课程地址:https://developer.aliyun.com/learning/course/679/detail/11804


框架搭建_Kudu工具类_创建表


内容介绍:

一、创建表

二、创建 kudu context

三、加载配置文件

四、设置参数


一、创建表

Import org.apache.spark.sql.{datafram,sparksession}

Class kuduhelper{

Private var kuducontext: kuducontext=_

Private val config = configfactory.load(“kudu”)

Def this(spark:sparksession)={

This()

//create1:创建 kuducontext

//create2:加载配置文件

Val master =””

Kuducontext = new kuducontext(master,spark,sparkcontext,some(900000))

}

Def this(dateset:dateset[any])={

This(dateset.sparksession)

}

//二:具体功能的开发

//1.创建表

//2.读取表

//3.写入数据

/*1.通过隐式转换,将 sparksession 对象转 kuduhelper 的对象

/*2.通过 kuduhelper 中的 createkudutable()就可以创建一张表

*

*调用方式 spark.createkudutable()

*/

Def createkudutable():unit={

//问题一:kuducontext 来创建

//问题二:kuducontext 创建的时候,需要 kudu 服务器的地址,

//create3:如果存在则删掉旧的表

If(kuducontext.tableexists(tablename)){

Kuducontext.deletetable(tablename)

}

//create4:创建表

Import scala.collection.javaconverters._

Val options=new createtableoptions()

.setnumreplicas(conifg.getint(“kudu.table.factor”))

.addhashpartitions(keys,2)

Kuducontext.createtable(tablename,schema,)

}

Def readkudutable():unit={

}

Def savetokudu():unit={

正式把 kudu helper 的一个类完成。先去把三个方法给实现,先看一下三个方法,先去命名,第一个叫做创建表,创建表叫做 createkudutable ,直接创建出来,不考虑返回值的问题,接下来读取表 readkudutable ,第三个是写入数据。这三个方法定义出来,回顾一下要做的事情。第一个方法其实很简单,就是刚才视频里进行了隐式转换,通过隐式转换将 spark session 对象转为 kuduhelper ,就是现在的类。第二步通过转换把 spark session 对象转为了 kuduhelper 对象,接下来创建一张表,那么整体的调用方式非常简单,把 spark session 转为一个 kudu helper ,通过 spark create table 其实最终就是这个方法,在 createkudu table 时,需要传入什么内容,先提出几个问题,怎么去调用create kudutable ?通过 kudu context 来调用,接下来的问题,kudu context 创建的时候需要什么?需要 kudu 服务器的地址,还需要 spark 对象,其实还需要一个东西,现在的服务器在远端,所以需要去设置超时时间,大致就是这样。创建出来 could context 就可以进行处理了,第一步应该创建 kudu context ,把服务器的地址设置进去,服务器的地址最好还是放在配置文件里面,所以要加载配置文件,这是第二步。第三步这是创建一个表可能还不行,如果旧表存在把旧表删掉,把新表在创建出来,第四步才是具体的创建表的步骤,这就是大致的步骤。


二、创建 kudu context

第一点创建 kuducontext ,非常简单,Private var kuducontext: kuducontext=_ 对应的类型是  kuducontext 一开始是没有值的,所以给一个下划线是默认值。接下来再 Kuducontext = new kuducontext(master,spark) 用 kudu context时,需要接收几个参数,第一个参数是 kuDu master ,第二个参数是SC 对象,第三个是 socket read timeout ,也就是超时时间,那么回到 kudu helper 当中。把每个参数都设置进去,那么需要的第一个参数,是 master 地址,Master设置进来,还有一个是 sparks 。第三个是需要超时时间,这是一种方式, kudu context 就创建出来了。大家也看到了,这个地方一直在报错,报错的原因是因为第二个参数,他要的并不是 spark session ,而是 spark context ,第三个参数,它要的并不是一个数字,而是 some 。那这样的话, context 就创建出来了。


三、加载配置文件

第一步创建配置文件,配置文件叫做 kudu.conf 要给两个参数,第一个叫做 kudu.master=CDH01CH02CH03 ,第二个参数 kudu.table.factor=1 这个factor就是一张表,默认有几个分区。接下来把 kudu helper 打开,剩下加载配置文件,第一步,把 config 创建出来,使用 config factory可以使用 load 方法加载库的配置文件,拿到 config 对象,直接 get string ,叫做 kudu.master,这样配置文件搞定了, master 可以传进 context 传递, kudu context 就可以进行第三步,第四步,如果存在旧的一个表,同名的一个表,应该把这个表给删掉。既然说如果,是用 if , if 里我们应该拿到 contact,拿到 kudu context 可以通过 exist 去判断旧的表是否存在,在这个方法上定一个表名,叫做 table name 对应的是 string 类型,把 table name 拿进来,就可以来去判断,这个表如果存在的,就可以去删掉这个表, kuducontext delete table ,如果不存在,或者删掉了,还要再重建。


四、设置参数

拿到 kudu context 的 create table ,至少需要传三个参数,第一个方法,定一个 table name 。第二个是 schema ,比较契合。如果想要给库的 scheme ,那么要给一个库的 create table options 。既然已经有封装了,所以不如就用相对繁琐一点的。如果相对繁琐一点的方法,外面要给我传进来 schema ,一定要去选择 kudu schema ,接下来, create table 里接收的第一个参数肯定是 table name 创建一张表,然后第二个是 scheme ,第三个是 key 。第三个创建出来一个 options ,命名为 options ,然后 new  Table options ,那么 new 出来 create table options ,就直接向里面设置两个参数, setnumreplicas (conifg  .getint (“kudu.table.factor”)) 意思非常明确,就是直接传进来 kudu. table.Factor ,接下来指定分区间, addhashpartitions(keys,2) 然后可以去参数设置, Kuducontext. Createtable (tablename, schema,) 这个地方报红线的原因非常简单,点进 addhashpartitions 会发现,并不是 scala 当中的 list ,而是 java 当中的 list ,不能直接把 key 传进来,还要再去把 scala 的 list 转为 Java 的 list, Import scala . collection. javaconverters._ 这样就把它转成了 Java 的 list , option 也创建出来了,把 options 就放在这个位置,第一个方法就已经完成了。

第二个方法放在下个视频当中来进行完成。这一小节其实做了四件事,把 kuducontext 创建出来、加载配置文件、创建表以及拼接了这些参数。

相关文章
|
SQL 关系型数据库 Apache
Apache Doris 系列: 入门篇-创建数据表
Apache Doris 系列: 入门篇-创建数据表
871 0
|
6月前
|
分布式计算 Hadoop Shell
熟悉常用的HBase操作
熟悉常用的HBase操作
127 3
熟悉常用的HBase操作
|
SQL 存储 分布式计算
|
大数据 数据库 开发者
框架搭建_Kudu工具类_介绍|学习笔记
快速学习框架搭建_Kudu工具类_介绍
104 0
框架搭建_Kudu工具类_介绍|学习笔记
|
存储 NoSQL Java
Java 操作 kudu-创建表操作 | 学习笔记
快速学习 Java 操作 kudu-创建表操作
314 0
Java 操作 kudu-创建表操作 | 学习笔记
|
分布式计算 Spark 开发者
框架搭建_Kudu工具类_读取表|学习笔记
快速学习框架搭建_Kudu工具类_读取表
|
分布式计算 数据库 Spark
框架搭建_Kudu工具类_写入数据|学习笔记
快速学习框架搭建_Kudu工具类_写入数据
|
分布式计算 数据库 Spark
框架搭建_Kudu工具类_隐式转换|学习笔记
快速学习框架搭建_Kudu工具类_隐式转换
|
存储 分布式数据库 开发者
HBase表设计_8 | 学习笔记
快速学习 HBase表设计_8
151 0
|
分布式数据库 开发者 Hbase
HBase 表设计_3 | 学习笔记
快速学习 HBase 表设计_3
133 0