JDBC實現從Hive抽取數據導入Oracle

環境:浙江移動華為云平臺

云平臺大數據采用了?Kerberos 認證。

開發歷程:

1、在寧波大數據實驗環境測試通過了JDBC實現從Hive抽取數據導入Oracle功能。

2、通過查看其它項目的數據庫訪問配置,知道了云平臺上的oracle配置。

3、獲取hive的jdbc訪問配置。但是無人知道,說保密不告知。

但是方法還是有的,從訪問前source的shell文件里,找到了眉目。

[deepen@vd26wyjl01 ~]$ cat login.sh 
source /app/deepen/jc_client/bigdata_env
export KRB5CCNAME=/app/deepen/user_keytab/jc_deepen.cc
kinit -kt /app/deepen/user_keytab/user.keytab jc_deepen
klist



[deepen@vd26wyjl01 ~]$ beeline
Connecting to jdbc:hive2://ip:24002,ip:24002,ip:24002,ip:24002,ip:24002/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;sasl.qop=auth-conf;auth=KERBEROS;principal=hive/hadoop.hadoop.com@HADOOP.COM
Debug is  true storeKey false useTicketCache true useKeyTab false doNotPrompt false ticketCache is null isInitiator true KeyTab is null refreshKrb5Config is false principal is null tryFirstPass is false useFirstPass is false storePass is false clearPass is false
Acquire TGT from Cache
Principal is jc_deepen@HADOOP.COM
Commit Succeeded 0: jdbc:hive2://ip:21066/> 


通過辛苦的調配后,最后的配置如下:


HIVE_Kerberos_URL=jdbc:hive2://ip地址:21066/deepen_hive_db;principal=hive/hadoop.hadoop.com@HADOOP.COM
HIVE_Kerberos_krb5_conf=/app/deepen/user_keytab/krb5.conf
HIVE_Kerberos_User=jc_deepen@HADOOP.COM
HIVE_Kerberos_krb5_Keytab=/app/deepen/user_keytab/user.keytab


ORACLE_DRIVER=oracle.jdbc.driver.OracleDriver
ORACLE_URL=xxxxxx
ORACLE_UserName =xxxx
ORACLE_PassWord =xxxx


核心代碼:


// 創建連接private Connection getConnnection() throws Exception {/** 使用Hadoop安全登錄 **/org.apache.hadoop.conf.Configuration conf = new org.apache.hadoop.conf.Configuration();conf.set("hadoop.security.authentication", "Kerberos");//System.setProperty("java.security.krb5.conf", "/app/deepen/user_keytab/krb5.conf");System.setProperty("java.security.krb5.conf", krb5_conf);try {UserGroupInformation.setConfiguration(conf);//UserGroupInformation.loginUserFromKeytab("hive/hadoop.hadoop.com@HADOOP.COM", "/app/deepen/user_keytab/user.keytab");UserGroupInformation.loginUserFromKeytab(user, krb5_Keytab);} catch (IOException e1) {e1.printStackTrace();}Class.forName(driverName);Connection conn = DriverManager.getConnection(url);System.out.println("#####獲取Kerberos-Hive-conn成功:---"+conn.toString());return conn;}




本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/538184.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538184.shtml
英文地址,請注明出處:http://en.pswp.cn/news/538184.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

加拿大計算機專業學什么,加拿大哥倫比亞大學計算機專業課程

計算機專業是加拿大哥倫比亞大學研究生熱門專業,很多準備申請加拿大研究生留學的都非常關心加拿大英屬哥倫比亞大學計算機專業研究生申請需要注意哪些問題?針對這個問題,出國留學小編為大家進行簡要介紹。英屬哥倫比亞大學計算機科學碩士專業優勢&#…

PC,移動端H5實現實現小球加入購物車效果

HTML部分&#xff1a; <!DOCTYPE html> <html> <head><meta http-equiv"content-type" content"text/html; charsetUTF-8"><title>基于jquery.fly模仿天貓拋物線加入購物車特效代碼</title><style>* {margin: 0…

云桌面部署_云桌面時代降臨-青椒云工作站

云計算理念是當代互聯網時代的新型理念&#xff0c;用戶享受的所有資源、所有應用程序全部都由一個存儲和運算能力超強的云端后臺來提供。云桌面是基于云計算技術&#xff0c;實現各種終端設備之間的互聯互通。我們的電子設備等都只是一個單純的顯示和操作終端&#xff0c;它們…

一些配置文件

--用戶用linux用戶&#xff0c;配置hadoop的Linux用戶。非hive連接mysql的用戶 HIVE_DRIVERorg.apache.hive.jdbc.HiveDriver HIVE_URLjdbc:hive2://192.168.78.128:10000/default HIVE_UserName root HIVE_PassWord 123456 ORACLE_DRIVERoracle.jdbc.driver.OracleDriver …

妙味css3課程---1-1、css中自定義屬性可以用屬性選擇器么

妙味css3課程---1-1、css中自定義屬性可以用屬性選擇器么 一、總結 一句話總結&#xff1a;可以的。 1、如何實現用屬性選擇器實現a標簽根據href里面含有的字段選擇背景圖片&#xff1f; p a[href*text]{background-image:url(img/text.gif);} 2、瀏覽器前綴在js中怎么寫&#…

吉林大學計算機與科學專業排名,吉林大學專業排名 哪些王牌專業推薦就讀

吉林大學&#xff0c;簡稱“吉大”&#xff0c;位于吉林省省會長春。是一所“985”、“211”、“雙一流”大學。下面我們將要來了解到的是吉林大學的專業排名&#xff0c;他的王牌專業有哪些&#xff0c;一起來看一下吧&#xff01;吉林大學專業排名 哪些王牌專業推薦就讀吉林大…

c51為啥要宏定義時鐘_51單片機時鐘實訓報告

時、分、秒計時器設計一、任務及要求用51單片機設計時、分、秒計時器&#xff0c;具體要求如下。1、具有時、分、秒計時功能和8位數碼管顯示功能&#xff0c;顯示格式為&#xff1a;“時&#xff0d;分&#xff0d;秒”&#xff1b;2、用Proteus設計仿真電路進行結果仿真&#…

servlet獲取不到Angular4 post過來的參數

副標題&#xff1a;Java如何從HttpServletRequest中讀取HTTP請求的body 今天接觸一個項目&#xff0c;前臺用angular4 post訪問后臺&#xff0c; this.httpService.post({url: quality/IMSI_MO, IMSImsg: this.InputMsg, TIME1: time1, TIME2: time2 }).subscribe(res > {t…

ios如何看idfv_如何無中生有資源搜索神器

作者 | Castie! 來源 | https://coderzsq.github.io日常扯淡首先申明&#xff0c;這絕對不是標題黨&#xff0c;看完全文你一定也能夠自行的寫出一個資源搜索App&#xff0c;其實這個App&#xff0c;本來是想在App Store賣錢的&#xff0c;畢竟感覺需求量還是很大&#xff0c;雖…

計算機語言需要有英語基礎,有關“計算機語言”的問題

一般需要一點英語基礎&#xff0c;因很多語句其實是英文單詞&#xff0c;且編譯錯誤信息大多是用代碼或英文提示的。但一個完全不會英語的人只要努力還是能學會編程語言的&#xff0c;計算機語言中涉及的英文單詞大多不是很難&#xff0c;花點時間完全能記住&#xff0c;出錯的…

Eclipse Console 加大顯示的行數,禁止彈出

原文鏈接&#xff1a;http://blog.csdn.net/leidengyan/article/details/5686691 -------------------------------------------------- Eclipse Console 加大顯示的行數&#xff1a; 在 Preferences-〉Run/Debug-〉Console里邊&#xff0c;去掉對Limit console output的選擇&…

excel range 判斷日期型_為什么精英都是Excel控?

讓你相見恨晚的Excel精髓攻略&#xff0c;吐血整理&#xff01;三小時幫你提升90%的效率&#xff0c;這份Excel教程必須&#xff01;&#xff08;點贊收藏&#xff09;Excel能夠滿足工作中絕大部分的數據分析需求&#xff0c;很多小細節的設計會節省下工作中非常多的時間&#…

移動端 | Vue.js對比微信小程序基礎語法

&#xff08;1&#xff09;vue 自定義組件與父組件的通信&#xff0c;props&#xff1a;[abb],可以看成自組建的一個自定義屬性 &#xff08;2&#xff09;vue 模版語法{{}} 只能是在DOM中插入&#xff0c;<div>{{acc}}</div>, 綁定屬性的話應v-bind&#xff1a;id…

計算機組裝電源線排,主機箱背部走線技巧 組裝電腦走背線與理線教程

近年來&#xff0c;裝機行業流行一個術語&#xff0c;即“走背線”&#xff0c;那么走背線是什么&#xff1f;裝機之家小編簡單介紹下&#xff0c;通俗的說&#xff1a;走背線就是針對電腦機箱&#xff0c;裝機的時候&#xff0c;將機箱內部和電源的線材做到最干凈整潔&#xf…

查看oracle數據庫允許的最大連接數和當前連接數

原文鏈接&#xff1a;http://blog.csdn.net/zmx729618/article/details/54018629 ----------------------------------------------------------------------------- 在查看數據的連接情況很有用&#xff0c;寫完程序一邊測試代碼一邊查看數據庫連接的釋放情況有助于分析優化…

干煸線椒的做法_美食:農家蒸土雞,剁椒梅鱭魚干,干煸茶樹菇,芹菜炒牛肉的做法...

閱讀本文前&#xff0c;請您先點擊上面“藍色字體”&#xff0c;再點擊“關注”&#xff0c;這樣您就可以免費收到我們的最新內容了&#xff0c;每天都會有更新&#xff0c;完全是免費訂閱&#xff0c;請放心關注。圖文來源網絡&#xff0c;侵權聯系刪除&#xff01; …

計算機出現假桌面怎么解決辦法,win10系統apphangxprocb1引起桌面假死怎么解決【圖文】...

電腦死機怎么辦&#xff1f;有win10系統用戶反應win10系統apphangxprocb1引起桌面假死怎么解決&#xff1f;出現這種情況該怎么解決&#xff1f;下面就將方法分享給大家。描述:出現了一個問題,該問題導致了此程序停止與 Windows 進行交互。錯誤的應用程序路徑: C:Windowsexplor…

Tomcat log文件

catalina.out 是Tomcat啟動和運行時訪問日志。包括訪問報錯日志。不包括啟動報錯日志。包括了 catalina.2017-12-02.log 的日志。 localhost.2017-12-02.log 報錯日志&#xff0c;包括啟動時報錯&#xff0c;如框架初始化失敗日志&#xff0c;如spring的容器初始化日志…

如何將對象拼接成get傳值的形式

傳遞的參數為params對象export default {data () {return {phone: 18688754577,password: 123456}},computed: {params () {let params {}params.phone this.phoneparams.password this.passwordreturn params}},methods: {concatParams (params) {let paramsStr for (var …

= 改為 in

for (String tableName : tableNames) {//檢查是否全為空for (long p_hour start; p_hour < end; p_hour) {String sql"select * from HIVE_READ_INSERT_HISTORY where "imsiORmsisdnSql(imsi, msisdn, tableName)" and p_hour"p_hour" " &q…