全部产品
云市场
云游戏

快速入门

更新时间:2020-07-14 17:52:21

前提条件

在运行DLA和Hudi构建数据湖Demo之前,您需要按照以下步骤做好准备工作。

DLA

  1. 开通DLA服务

  2. 初始化DLA数据库主账号密码

方案

  1. 点击实时数据湖了解更多

  2. 实时数据湖方案架构如下图所示

incremental_datalake

实施步骤

步骤一:创建Schema

  1. 登录Data Lake Analytics管理控制台使用如下SQL创建Schema。
  1. CREATE DATABASE `hudi_dla_demo_db`
  2. WITH DBPROPERTIES (
  3. catalog = 'oss',
  4. location = 'oss://bucketname/'
  5. )

注意将bucketname换成您对应的Bucket路径。

步骤二:下载并解压缩Demo

点击此处下载Demo并解压缩。该压缩包包含如下两个文件

  • dla-hudi-demo-1.0-SNAPSHOT.jar
  • jdom-1.1.jar

步骤三:开启白名单

可参考连接DLA 给运行Demo机器开通白名单。

步骤四:Demo配置文件

在运行Demo机器上新建 /tmp/config.properties文件(或者在其他目录下创建该文件),配置如下

  1. dbName=hudi_dla_demo_db
  2. tableName=hudi_trips_dla_demo
  3. tableType=MERGE_ON_READ
  4. basePath=/tmp/hudi_trips_dla_demo
  5. dlaUsername=xxx
  6. dlaPassword=xxx
  7. dlaJdbcUrl=xxx

其中配置项说明如下:

  • dbName表示同步到DLA时的库名,与步骤一里Schema名保持一致;
  • tableName表示同步到DLA时的表名;
  • tableType表示写入Hudi的表类型(可选COPY_ON_WRITE和MERGE_ON_READ);
  • basePath表示写入的基础路径,以步骤一里Schema的location开头;
  • dlaUsername表示同步到DLA的用户名;
  • dlaPassword表示同步到DLA的密码;
  • dlaJdbcUrl表示同步到DLA的JDBC连接字符串;

步骤五:运行Demo

  • 1. 使用Java进程方式启动(适用于机器上只安装Java环境)

在解压Demo的目录下使用如下命令运行Demo

  1. java -classpath /root/hadoop:./dla-hudi-demo-1.0-SNAPSHOT.jar com.aliyun.dla.DLAHudiDemo

注意:1. 上述命令可带参数运行,如 java -classpath /root/hadoop:./dla-hudi-demo-1.0-SNAPSHOT.jar com.aliyun.dla.DLAHudiDemo /path/to/config.properties,若不带参数,则默认取/tmp/config.properties配置文件,您可使用反编译器查看DLAHudiDemo入口类。2. 需要/root/hadoop目录下存放core-site.xml文件,参考如下

  1. <property>
  2. <name>fs.defaultFS</name>
  3. <value>oss://bucketname/</value>
  4. </property>
  5. <property>
  6. <name>fs.oss.endpoint</name>
  7. <value>oss-endpoint-address</value>
  8. <description>Aliyun OSS endpoint to connect to.</description>
  9. </property>
  10. <property>
  11. <name>fs.oss.accessKeyId</name>
  12. <value>oss_key</value>
  13. <description>Aliyun access key ID</description>
  14. </property>
  15. <property>
  16. <name>fs.oss.accessKeySecret</name>
  17. <value>oss-secret</value>
  18. <description>Aliyun access key secret</description>
  19. </property>
  20. <property>
  21. <name>fs.oss.impl</name>
  22. <value>org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem</value>
  23. </property>

注意其中配置项根据自己OSS配置进行替换

  • 2. 使用spark-submit方式启动(适用于机器上已安装spark环境)

需要提前将上述core-site.xml文件放入${SPARK_HOME}/conf目录,便于spark加载配置文件。

假设解压Demo的目录为/tmp/,那么使用如下命令运行Demo

  1. spark-submit --class com.aliyun.dla.DLAHudiDemo --master local[2] --conf "spark.driver.extraClassPath=/tmp/jdom-1.1.jar" /tmp/dla-hudi-demo-1.0-SNAPSHOT.jar

同Java进程启动方式相同,也可带参数运行。

查看结果

登陆DLA控制台 -> Serverless SQL -> 执行SQL。

查看表

执行show tables命令

show_tables

可以看到hudi_dla_demo_db Schema中存在hudi_trips_dla_demo_rthudi_trips_dla_demo_ro两张表,分别对应实时表和读优化表。

查看数据

读优化表

执行select name, age, location from hudi_trips_dla_demo_ro命令查看读优化表中数据

select_from_ro

结果为写入的10条数据

实时表

执行select name, age, location from hudi_trips_dla_demo_rt命令查看实时表中数据

select_from_rt

结果为写入的10条数据