ApacheHive一点一点进步(2)–HIVEJDBC
Hive提供了多种方式进行数据的访问。其中对 java 的支持是最好的,而且是其最原生的支持。传说中的JDBC。哈哈! 在 hive 安装目录下的lib目录中有 hive - jdbc -0.8.1.jar 。以0.8版本的为例来介绍。 当然了,也别忘了要通过hive的server方式将hive启动起来
Hive提供了多种方式进行数据的访问。其中对java的支持是最好的,而且是其最原生的支持。传说中的JDBC。哈哈!
在hive安装目录下的lib目录中有hive-jdbc-0.8.1.jar 。以0.8版本的为例来介绍。
当然了,也别忘了要通过hive的server方式将hive启动起来。命令就不在这里介绍了。
以下是官网提供的一段示例,使用起来比较简单。client端支持的语法在这里都是支持的。
而且可以通过这个进行环境变量设置,这个设置并不会影响server端,只在本次会话中生效,所以不用担心任务间影响。
Java
import java.sql.SQLException;import java.sql.Connection;import java.sql.ResultSet;import java.sql.Statement;import java.sql.DriverManager; public class HiveJdbcClient { private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver"; /** * @param args * @throws SQLException */ public static void main(String[] args) throws SQLException { try { Class.forName(driverName); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); System.exit(1); } Connection con = DriverManager.getConnection("jdbc:hive://localhost:10000/default", "", ""); Statement stmt = con.createStatement(); String tableName = "testHiveDriverTable"; stmt.executeQuery("drop table " + tableName); ResultSet res = stmt.executeQuery("create table " + tableName + " (key int, value string)"); // show tables String sql = "show tables '" + tableName + "'"; System.out.println("Running: " + sql); res = stmt.executeQuery(sql); if (res.next()) { System.out.println(res.getString(1)); } // describe table sql = "describe " + tableName; System.out.println("Running: " + sql); res = stmt.executeQuery(sql); while (res.next()) { System.out.println(res.getString(1) + "\t" + res.getString(2)); } // load data into table // NOTE: filepath has to be local to the hive server // NOTE: /tmp/a.txt is a ctrl-A separated file with two fields per line String filepath = "/tmp/a.txt"; sql = "load data local inpath '" + filepath + "' into table " + tableName; System.out.println("Running: " + sql); res = stmt.executeQuery(sql); // select * query sql = "select * from " + tableName; System.out.println("Running: " + sql); res = stmt.executeQuery(sql); while (res.next()) { System.out.println(String.valueOf(res.getInt(1)) + "\t" + res.getString(2)); } // regular hive query sql = "select count(1) from " + tableName; System.out.println("Running: " + sql); res = stmt.executeQuery(sql); while (res.next()) { System.out.println(res.getString(1)); } }}
Python
#!/usr/bin/env python import sys from hive import ThriftHivefrom hive.ttypes import HiveServerExceptionfrom thrift import Thriftfrom thrift.transport import TSocketfrom thrift.transport import TTransportfrom thrift.protocol import TBinaryProtocol try: transport = TSocket.TSocket('localhost', 10000) transport = TTransport.TBufferedTransport(transport) protocol = TBinaryProtocol.TBinaryProtocol(transport) client = ThriftHive.Client(protocol) transport.open() client.execute("CREATE TABLE r(a STRING, b INT, c DOUBLE)") client.execute("LOAD TABLE LOCAL INPATH '/path' INTO TABLE r") client.execute("SELECT * FROM r") while (1): row = client.fetchOne() if (row == None): break print row client.execute("SELECT * FROM r") print client.fetchAll() transport.close() except Thrift.TException, tx: print '%s' % (tx.message)
PHP
<?php // set THRIFT_ROOT to php directory of the hive distribution$GLOBALS['THRIFT_ROOT'] = '/lib/php/';// load the required files for connecting to Hiverequire_once $GLOBALS['THRIFT_ROOT'] . 'packages/hive_service/ThriftHive.php';require_once $GLOBALS['THRIFT_ROOT'] . 'transport/TSocket.php';require_once $GLOBALS['THRIFT_ROOT'] . 'protocol/TBinaryProtocol.php';// Set up the transport/protocol/client$transport = new TSocket('localhost', 10000);$protocol = new TBinaryProtocol($transport);$client = new ThriftHiveClient($protocol);$transport->open(); // run queries, metadata calls etc$client->execute('SELECT * from src');var_dump($client->fetchAll());$transport->close();
原文地址:ApacheHive一点一点进步(2)–HIVEJDBC, 感谢原作者分享。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

近年來,資料倉儲成為了企業資料管理中不可或缺的一部分。直接使用資料庫進行資料分析可以滿足簡單的查詢需求,但當我們需要進行大規模資料分析時,單一資料庫已經無法滿足需求,這時我們需要使用資料倉儲來處理大量資料。而Hive則是資料倉儲領域中最受歡迎的開源元件之一,它可以將Hadoop分散式運算引擎和SQL查詢整合在一起,並支援大量資料的平行處理。同時,在Go語言中使

PHP是一種廣泛使用的伺服器端程式語言,它的使用範圍幾乎涵蓋了所有產業。在本篇文章中,我們將探討PHP對於大數據處理的特殊作用。在特定環境下,PHP可以與ApacheHive協作,從而實現即時數據處理和分析。先來介紹一下Hive。 Hive是一個基於Hadoop的資料倉儲解決方案。它可以將結構化資料映射成SQL查詢,並以MapReduce任務的方式執行查詢。

隨著資料處理越來越重要,大數據分析也變得越來越普遍。然而,許多公司可能不想花費大量資金在商業分析平台上。開源解決方案為這些公司提供了一個可行的選擇。在這篇文章中,我們將討論如何使用PHP實作開源Hive大數據分析平台。 Hive是一個基於Hadoop的資料倉儲系統,可以透過SQL查詢並管理Hadoop上的大規模資料集。它使用類似SQL的HiveQL語言來查詢

一位微軟官員證實了有關GoogleChrome、ChromiumEdge、Discord和其他幾個應用程式被微軟內建防毒軟體「WindowsDefender」標記為「 Behavior:Win32/Hive.ZY」的廣泛報導。這家科技巨頭在聲明中證實,它正在研究一個修復程序,該修復程序將在接下來的幾個小時內向所有人推出。那麼「Behavior:Win32/Hive.ZY」到底是什麼?根據微軟安全入口網站上發布的文件,任何標記為「Behavior:Win32/Hive.ZY」的文件都是帶有

在CentOS7上安裝和設定Hive時,可以按照以下步驟進行操作:確保已安裝Java:首先,請確保在CentOS7上已經安裝了Java。可以使用下列指令檢查Java是否已安裝:java-version如果沒有安裝Java,請依照你的需求安裝適當的Java版本。下載Hive:造訪ApacheHive的官方網站(),下載最新的穩定版本的Hive。解壓縮Hive壓縮包:使用以下命令解壓縮Hive壓縮包:tarxvfzhive-x.x.x.tar.gz這將解壓縮Hive到目前目錄下。配置環境變數:打開終端,

Vue3相對於Vue2的進步:更強大的狀態管理隨著前端開發技術的不斷發展,狀態管理在大型應用中的重要性也日益突出。 Vue作為一款流行的前端框架,透過其響應式的資料綁定和組件化的程式設計風格,為開發者提供了便捷的開發體驗。然而,在Vue2中,狀態管理的實作並不是很方便,需要藉助Vuex等第三方函式庫來進行管理。而在Vue3中,狀態管理得到了極大的改進和增強,為我們提供

儘管保持軟體更新和僅從受信任的來源下載檔案是標準的網路安全實踐,但鑑於最近惡意軟體攻擊的增加,很明顯在這方面需要更多的教育。為此,Varonis 取證團隊就使用 Hive 勒索軟體的攻擊者如何在其最新系列攻擊中針對 Microsoft Exchange Server 提供了一些指導。對於那些不知道的人,Hive 遵循勒索軟體即服務模式。儘管微軟在 2021 年針對已知漏洞對 E

許多Windows11和10用戶看到WindowsDefender的警告通知表示偵測到威脅「行為:Win32/Hive.ZY」而感到困擾。據報道,當用戶嘗試開啟一些常用應用程式(如GoogleChrome或ChromiumEdge、Whatsapp、Discord和Spotify)時,會引發此WindowsDefender警告或警報。即使您在PC上阻止了此威脅,它也會在您下次打開此受影響的應用程式時彈出並顯示一條訊息MicrosoftDefenderAntivi
