当前位置: 首页 > news >正文

韶关市住房和城乡建设管理局网站东莞seo网站推广建设

韶关市住房和城乡建设管理局网站,东莞seo网站推广建设,徐汇网站制作,wordpress 底部 copyright 时间背景 这个需求就是spark不通过spark-hive的方式访问hive数据,而是通过spark读取hive jdbc的方式访问hive数据,因为这个hive有kerberos认证,在网上也不是很容易搜索到这样的操作案例。不多bb,直接上教程。 准备工作 准备一个hiv…

背景

这个需求就是spark不通过spark-hive的方式访问hive数据,而是通过spark读取hive jdbc的方式访问hive数据,因为这个hivekerberos认证,在网上也不是很容易搜索到这样的操作案例。不多bb,直接上教程。

准备工作

准备一个hive-jaas.conf内容如下:

com.sun.security.jgss.initiate {com.sun.security.auth.module.Krb5LoginModule requireduseKeyTab=truekeyTab="xxx.keytab"principal="xxx@XXX.XXX.COM"doNotPrompt=true;
};

这里的头的xxx替换成你环境中对应的配置就行了

测试代码如下:

public class App {public static void main(String[] args) {SparkSession spark = SparkSession.builder().master("local").getOrCreate();JdbcDialects.registerDialect(new HiveDialect());Properties properties = new Properties();properties.setProperty("driver", "org.apache.hive.jdbc.HiveDriver");Dataset<Row> jdbcDF = spark.read().jdbc("jdbc:hive2://your_hive_server2_address:10000/database;principal=hive/_HOST@XXX.COM;auth=Kerberos", "database.table", properties);jdbcDF.show();spark.stop();}
}

这个代码的作用就是使用spark jdbc API通过hive jdbc去连接hive读取hive中的一张表,然后执行展示。
这里要注意下这个jdbc的连接地址和后面跟随的参数:

jdbc:hive2://your_hive_server2_address:10000/database;principal=hive/_HOST@XXX.COM;auth=Kerberos
里头your_hive_server2_address写成你的环境里对应的地址。
后面的principal 也是配置成你的环境中对应的principal

这里头有一个HiveDialect是因为我测试的时候,发现在spark jdbc生成查询语句的时候查询语句会是select 'database.column1',database.column2'....这样的查询sql,程序是会报错的。如果有这样的问题的话,需要注册一个自定义的Spark jdbc的方言

  • HiveDialect 代码类如下:
public class HiveDialect extends JdbcDialect {@Overridepublic boolean canHandle(String url) {return url.startsWith("jdbc:hive2") || url.contains("hive");}@Overridepublic String quoteIdentifier(String colName) {colName=colName.split("\\.")[1];return "`" + colName + "`";}
}

代码差不多写完了。最后使用maven打包上传到服务器上,包括那个hive-jaas.conf文件,还要额外上传 krb5.conf,xxx.keytab文件上去。
提交命令:

spark-submit \
--master yarn \
--deploy-mode cluster \
--driver-memory 2G \
--driver-cores 2 \
--num-executors 2 \
--executor-memory 2G \
--executor-cores 2 \
--files file:///opt/xxx.keytab,file:///opt/krb5.conf,file:///opt/hive-jaas.conf \
--conf "spark.driver.extraJavaOptions=-Djava.security.auth.login.config=hive-jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false -Djava.security.krb5.conf=krb5.conf" \
--conf "spark.executor.extraJavaOptions=-Djava.security.auth.login.config=hive-jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false -Djava.security.krb5.conf=krb5.conf" \
--conf spark.dynamicAllocation.enabled=false \
--conf spark.yarn.maxAppAttempts=1 \
--name spark_read_jdbc_with_hive \
--class com.example.App \
example-spark-read-hive-jdbc-1.0-SNAPSHOT.jar

注意里头的--files 参数和--conf的参数。
至此,整个教程结束。
最后到服务器上跑一把就好了。

总结

如果各位阅读过的大佬,有什么更好建议请在评论区中留言,谢谢大哥们!

http://www.yidumall.com/news/9310.html

相关文章:

  • 石家庄做外贸的网站推广百度地图打车客服人工电话
  • 网站建设公司广告语 宣传语免费网页模板网站
  • 企业网站备案网站检测中心
  • 北京企业网站搭建网络推广公司可不可靠
  • 如何给网站做404页面百度提交网站收录入口
  • 图木舒克市建设局网站怎么查询百度收录情况
  • 哪家公司制作网站营销型网站推广方案
  • 学校网站建设电话谷歌seo是指什么意思
  • 内部网站建设教程成都移动seo
  • 如何在年报网站上做遗失公告官网整站优化
  • wordpress 做公司网站搜索引擎营销的优缺点及案例
  • 哪个网站生鲜配送做的好完善的seo网站
  • 商务网站建设与维护深圳市推广网站的公司
  • 怎么利用婚庆网站做营销汕头seo优化项目
  • 网页制作作业网站深圳最新通告今天
  • 重庆市建设教育培训网学seo需要学什么专业
  • 模块化网站建设一般多少钱营销策略手段有哪些
  • 做那个网站销售产品比较好引流推广是什么意思
  • 广州 网站设计公司排名下载百度2023最新版
  • 软件开发与网站开发哪个好seo的基础优化
  • 廊坊专业网站建设seo网站优化优化排名
  • 建设高效的政府门户网站深圳推广公司推荐
  • 国内优秀网站精准营销推广方案
  • 两个网站做的h5如何合在一起市场调研方案
  • c 做网站看什么书谷歌浏览器官方app下载
  • 国外网站众筹怎做福州整站优化
  • 做网站需要知道优化吗百度网络电话
  • 图书管理系统网站开发毕业设计网站
  • 做期货关注什么网站网络营销和电子商务区别
  • 手机评分网站电话销售外呼系统软件