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, 感谢原作者分享。

近年来,数据仓库成为了企业数据管理中不可或缺的一部分。直接使用数据库进行数据分析可以满足简单的查询需求,但当我们需要进行大规模数据分析时,单个数据库已经无法满足需求,这时我们需要使用数据仓库来处理海量数据。而Hive则是数据仓库领域中最流行的开源组件之一,它可以将Hadoop分布式计算引擎和SQL查询集成在一起,并支持海量数据的并行处理。同时,在Go语言中使

PHP是一种广泛使用的服务器端编程语言,它的使用范围覆盖了几乎所有行业。在本篇文章中,我们将探讨PHP对于大数据处理的特殊作用。在特定环境下,PHP可以与ApacheHive协作,从而实现实时数据处理和分析。先来介绍一下Hive。Hive是一个基于Hadoop的数据仓库解决方案。它可以将结构化数据映射成SQL查询,并以MapReduce任务的方式执行查询。

随着数据处理越来越重要,大数据分析也变得越来越普遍。然而,许多公司可能不想花费大量资金在商业分析平台上。开源解决方案为这些公司提供了一种可行的选择。在这个文章中,我们将讨论如何使用PHP实现开源Hive大数据分析平台。Hive是一个基于Hadoop的数据仓库系统,可以通过SQL查询和管理Hadoop上的大规模数据集。它使用类似于SQL的HiveQL语言来查询

尽管保持软件更新和仅从受信任的来源下载文件是标准的网络安全实践,但鉴于最近恶意软件攻击的增加,很明显在这方面需要更多的教育。为此,Varonis 取证团队就使用 Hive 勒索软件的攻击者如何在其最新系列攻击中针对 Microsoft Exchange Server 提供了一些指导。对于那些不知道的人,Hive 遵循勒索软件即服务模型。尽管微软在 2021 年针对已知漏洞对 E

Vue3相对于Vue2的进步:更强大的状态管理随着前端开发技术的不断发展,状态管理在大型应用中的重要性也日益突出。Vue作为一款流行的前端框架,通过其响应式的数据绑定和组件化的编程风格,为开发者提供了便捷的开发体验。然而,在Vue2中,状态管理的实现并不是很方便,需要借助Vuex等第三方库来进行管理。而在Vue3中,状态管理得到了极大的改进和增强,为我们提供

当在CentOS7上安装和配置Hive时,可以按照以下步骤进行操作:确保已安装Java:首先,确保在CentOS7上已经安装了Java。可以使用以下命令检查Java是否已安装:java-version如果没有安装Java,请根据你的需要安装合适的Java版本。下载Hive:访问ApacheHive的官方网站(),下载最新的稳定版本的Hive。解压Hive压缩包:使用以下命令解压Hive压缩包:tarxvfzhive-x.x.x.tar.gz这将解压缩Hive到当前目录下。配置环境变量:打开终端,

一位微软官员证实了有关谷歌Chrome、ChromiumEdge、Discord和其他几个应用程序被微软内置防病毒软件“WindowsDefender”标记为“ Behavior:Win32/Hive.ZY”的广泛报道。这家科技巨头在一份声明中证实,它正在研究一个修复程序,该修复程序将在接下来的几个小时内向所有人推出。那么“Behavior:Win32/Hive.ZY”到底是什么?根据微软安全门户上发布的一份文件,任何标记为“Behavior:Win32/Hive.ZY”的文件都是带有

许多Windows11和10用户看到来自WindowsDefender的警告通知表示检测到威胁“行为:Win32/Hive.ZY”而感到困扰。据报道,当用户尝试打开一些常用应用程序(如GoogleChrome或ChromiumEdge、Whatsapp、Discord和Spotify)时,会引发此WindowsDefender警告或警报。即使您在PC上阻止了此威胁,它也会在您下次打开此受影响的应用程序时弹出并显示一条消息MicrosoftDefenderAntivi


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

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

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Atom編輯器mac版下載
最受歡迎的的開源編輯器

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。