首頁 資料庫 mysql教程 ApacheHive一点一点进步(2)–HIVEJDBC

ApacheHive一点一点进步(2)–HIVEJDBC

Jun 07, 2016 pm 04:29 PM
hive 進步

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&#91;'THRIFT_ROOT'&#93; = '/lib/php/';// load the required files for connecting to Hiverequire_once $GLOBALS&#91;'THRIFT_ROOT'&#93; . 'packages/hive_service/ThriftHive.php';require_once $GLOBALS&#91;'THRIFT_ROOT'&#93; . 'transport/TSocket.php';require_once $GLOBALS&#91;'THRIFT_ROOT'&#93; . 'protocol/TBinaryProtocol.php';// Set up the transport/protocol/client$transport = new TSocket&#40;'localhost', 10000&#41;;$protocol = new TBinaryProtocol&#40;$transport&#41;;$client = new ThriftHiveClient&#40;$protocol&#41;;$transport->open(); // run queries, metadata calls etc$client->execute('SELECT * from src');var_dump($client->fetchAll());$transport->close();
登入後複製
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

在Go語言中使用Hive實現高效率的資料倉儲 在Go語言中使用Hive實現高效率的資料倉儲 Jun 15, 2023 pm 08:52 PM

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

PHP入門指南:PHP和Hive PHP入門指南:PHP和Hive May 20, 2023 am 08:33 AM

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

PHP實作開源Hive大數據分析平台 PHP實作開源Hive大數據分析平台 Jun 18, 2023 pm 02:47 PM

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

Microsoft 發布針對 Windows Defender 中的 Behavior:Win32/Hive.ZY 錯誤的修復程序 Microsoft 發布針對 Windows Defender 中的 Behavior:Win32/Hive.ZY 錯誤的修復程序 Apr 28, 2023 pm 04:01 PM

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

Centos7安裝設定Hive教學。 Centos7安裝設定Hive教學。 Feb 19, 2024 pm 02:21 PM

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

Vue3相對於Vue2的進步:更強大的狀態管理 Vue3相對於Vue2的進步:更強大的狀態管理 Jul 07, 2023 pm 07:45 PM

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

Microsoft Exchange Server 受到 Hive 的「windows.exe」勒索軟體的攻擊 Microsoft Exchange Server 受到 Hive 的「windows.exe」勒索軟體的攻擊 Apr 16, 2023 pm 01:28 PM

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

如何修復 Windows Defender 行為:Win32/Hive.ZY 警報 如何修復 Windows Defender 行為:Win32/Hive.ZY 警報 May 06, 2023 am 08:04 AM

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

See all articles