一、定义作业文件
-
作业文件
-
该文件将包括输入源 、输出目标和要执行的配置文件的位置,具体内容如下
bashmetrics: - /user/xrx/qdb.yaml # 此位置为hdfs文件系统目录 inputs: output: jdbc: connectionUrl: "jdbc:mysql://233.233.233.233:3306/sjjc" user: "root" password: "123456" driver: "com.mysql.jdbc.Driver" explain: true showQuery: true
-
-
配置文件
-
文件定义了 ETL 的步骤和查询,以及输出的位置和内容。
bashsteps: - dataFrameName: df sql: select movieId,rating from hive.emp output: - dataFrameName: df outputType: JDBC outputOptions: saveMode: Append dbTable: emp
该文件使用SQL查询从Hive表中读取数据,并使用JDBC将结果写入MySQL表/
-
二、上传作业文件和配置文件到hdfs系统
hdfs dfs -put qdb.yaml /user/xrx
三、执行指令
与mysql结合使用要定义数据库驱动,clickhouse及其它数据库使用要引入不同的数据库驱动,将多种数据驱动引擎放入lib文件中,一同加载。
shell
#!/bin/bash
Path=/home/xrx
for jar in `ls $Path/lib/*jar`
do
LIBJARS=$jar,$LIBJARS
done
spark-submit \
--master yarn \
--conf spark.sql.catalogImplementation=hive \
--driver-class-path $LIBJARS \
--jars $LIBJARS \
--class com.yotpo.metorikku.Metorikku metorikku_2.11.jar \
-c /user/xrx/qdb.yaml