巨坑!!华为大数据平台sparksql,连接gauss200数据库
最近用华为大数据平台fusion6.5平台
写了一个sparksql 程序按照demo
spark 相关的jar依赖包,必须在华为大数据平台的客户端的spark/jars 这个文件里面去找到然后添加到idea 依赖里面。
核心代码片段如下:
SparkConf sparkConf = new SparkConf().setAppName("SparkKafkaStreamingExample");
SparkSession spark = SparkSession.builder().config(sparkConf).getOrCreate();
Dataset<Row> result = spark.read().format("jdbc").option("url", "jdbc:gaussdb://192.168.1.1:25308/exam").option("dbtable", "(" + sqlQuery + ") as temp_table").option("user", cdjz).option("driver","com.huawei.gauss200.jdbc.Driver").option("password", 123321).load();
然后编译打包。
①先下载华为大数据客户端,
②然后tar -xvf xxx.tar 解压到/path/clientpath
③然后./install.sh /home/client
③认证 kinit -k cdjz -t user.keytab
④然后在source /home/client/bigdata_env
用spark-submit 提交代码如下:
spark-submit \--master yarn \ 运行的模式--deploy-mode cluster \--name spark-test \ 在yarn界面看到的名字,如果不设置,那就是下面-class的值--driver-memory 1g \ driver的内存--executor-memory 1g \ 每一个executor的内存--executor-cores 1 \ executor数量--jars /$SPARKHOME/jars/guass200.jar 第三方jar,比高斯数据库的驱动--class com.bigdata.spark.core.SparkRunTest \ 主类study-spark-core-4.0.0.jar \ 自己工程的jar
一个非常注意点的是华为的大数据平台里面的mpp的jar包是有问题的
必须在spark里面手动指定driver ,和修改jdbc的连接字符串为jdbc:guassdb,并且保持版本一致。