日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MapReduce基础开发之九JDBC连接Hive

發(fā)布時間:2025/4/16 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MapReduce基础开发之九JDBC连接Hive 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1、eclipse建工程,引入$HIVE_HOME/lib的包和$Hadoop_HOME/lib的包(一般核心包就可以,具體根據(jù)開發(fā)需求),導(dǎo)出jar包(不帶第三方j(luò)ar);

? ? 這里是Hive2,代碼如下:

package com.hive;import java.sql.SQLException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import java.sql.DriverManager;public class HiveJdbc {private static String driverName = "org.apache.hive.jdbc.HiveDriver";public static void main(String[] args) throws SQLException {try {Class.forName(driverName);} catch (ClassNotFoundException e) {e.printStackTrace();System.exit(1);}Connection con = DriverManager.getConnection("jdbc:hive2://IP:10000/default", "", "");Statement stmt = con.createStatement();String tableName = "JDBCTest";stmt.execute("drop table if exists " + tableName);stmt.execute("create table " + tableName + " (key int, value string)");System.out.println("Create table success!");// show tablesString sql = "show tables '" + tableName + "'";System.out.println("Running: " + sql);ResultSet res = stmt.executeQuery(sql);if (res.next()) {System.out.println(res.getString(1));}// describe tablesql = "describe " + tableName;System.out.println("Running: " + sql);res = stmt.executeQuery(sql);while (res.next()) {System.out.println(res.getString(1) + "\t" + res.getString(2));}//select tablesql = "select * from " + tableName;res = stmt.executeQuery(sql);while (res.next()) {System.out.println(String.valueOf(res.getInt(1)) + "\t"+ res.getString(2));}} } 2、根據(jù)hadoop和hive集群部署情況,編寫腳本并執(zhí)行,加入hive和hadoop的jar包。
? ?注意:shell腳本最好在centos下編寫,如果是Windows下編寫因為字符問題執(zhí)行起來會出現(xiàn)語法錯誤
? ?#vi /tmp/hivejdbc.sh

#!/bin/bashHADOOP_HOME=/usr/lib/hadoop HIVE_HOME=/usr/lib/hive JAVA_HOME=/usr/lib/javaCLASSPATH=$CLASSPATH: for i in /usr/lib/hive/lib/*.jar; do CLASSPATH=$CLASSPATH:$i donefor i in /usr/lib/hadoop/client/*.jar; do CLASSPATH=$CLASSPATH:$i doneecho $CLASSPATH java -cp $CLASSPATH:/tmp/hivejdbc.jar com.hive.HiveJdbc
? 執(zhí)行腳本sh /tmp/hivejdbc.sh看結(jié)果。
? 出現(xiàn)提示沒有hdfs中hive用戶的文件權(quán)限/user/hive/warehouse;
? 執(zhí)行命令hadoop fs -chmod 777 /user/hive?


3、實際上,在性能上,不建議通過jdbc連接hive來處理。

《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的MapReduce基础开发之九JDBC连接Hive的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。