- 浏览: 2189296 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (682)
- 软件思想 (7)
- Lucene(修真篇) (17)
- Lucene(仙界篇) (20)
- Lucene(神界篇) (11)
- Solr (48)
- Hadoop (77)
- Spark (38)
- Hbase (26)
- Hive (19)
- Pig (25)
- ELK (64)
- Zookeeper (12)
- JAVA (119)
- Linux (59)
- 多线程 (8)
- Nutch (5)
- JAVA EE (21)
- Oracle (7)
- Python (32)
- Xml (5)
- Gson (1)
- Cygwin (1)
- JavaScript (4)
- MySQL (9)
- Lucene/Solr(转) (5)
- 缓存 (2)
- Github/Git (1)
- 开源爬虫 (1)
- Hadoop运维 (7)
- shell命令 (9)
- 生活感悟 (42)
- shell编程 (23)
- Scala (11)
- MongoDB (3)
- docker (2)
- Nodejs (3)
- Neo4j (5)
- storm (3)
- opencv (1)
最新评论
-
qindongliang1922:
粟谷_sugu 写道不太理解“分词字段存储docvalue是没 ...
浅谈Lucene中的DocValues -
粟谷_sugu:
不太理解“分词字段存储docvalue是没有意义的”,这句话, ...
浅谈Lucene中的DocValues -
yin_bp:
高性能elasticsearch ORM开发库使用文档http ...
为什么说Elasticsearch搜索是近实时的? -
hackWang:
请问博主,有用solr做电商的搜索项目?
Solr中Group和Facet的用法 -
章司nana:
遇到的问题同楼上 为什么会返回null
Lucene4.3开发之第八步之渡劫初期(八)
在前几篇的博客里,散仙已经写了如何在Liunx上安装Hive以及如何与Hadoop集成和将Hive的元数据存储到MySQL里,今天散仙就来看下,如何在Eclipse里通过JDBC的方式操作Hive.
我们都知道Hive是一个类SQL的框架,支持HSQL语法操作Hive,而Hive内部,会转成一个个MapReduce作业来完成具体的数据统计,虽然我们可以直接在Hive的shell里,向Hive发起命令,但这样做受限制比较多,如果我们能把它的操作结合在编程里,这样以来我们的Hive就会变得非常灵活了。
Hive是支持JDBC操作的,所以我们就可以像操作MySQL一样,在JAVA代码里,操作Hive,进行数据统计。
下面详细看下,操作步骤:
软件环境
一些HIVE操作语句:
导入数据到一个表中:
LOAD DATA LOCAL INPATH '/home/search/abc1.txt' OVERWRITE INTO TABLE info;
show tables;//显示当前的所有的表
desc talbeName;查看当前表的字段结构
show databases;//查看所有的已有的数据库
建表语句
create table mytt (name string ,count int) row format delimited fields terminated by '#' stored as textfile ;
jar包,截图
Hive依赖Hadoop,因此客户端最好把hadoop的jar包夜引入项目中,下面是调用源码,运行前,确定你在服务端的hiversver2已经开启。
结果如下:
Hive的hiveserver2 端log打印日志:
hadoop的8088界面截图如下:
下面这条SQL语句,不会转成MapReduce执行,select * from mytt limit 3;
结果如下:
至此,我们的JDBC调用Hive已经成功运行,我们可以在客户端执行,一些建表,建库,查询等操作,但是有一点需要注意的是,如果在win上对Hive的表,执行数据导入表的操作,那么一定确保你的数据是在linux上的,导入的路径也是linux路径,不能直接把win下面的数据,给导入到linux上的hive表里面。
我们都知道Hive是一个类SQL的框架,支持HSQL语法操作Hive,而Hive内部,会转成一个个MapReduce作业来完成具体的数据统计,虽然我们可以直接在Hive的shell里,向Hive发起命令,但这样做受限制比较多,如果我们能把它的操作结合在编程里,这样以来我们的Hive就会变得非常灵活了。
Hive是支持JDBC操作的,所以我们就可以像操作MySQL一样,在JAVA代码里,操作Hive,进行数据统计。
下面详细看下,操作步骤:
软件环境
序号 | 说明 | 系统 |
1 | centos6.5安装hadoop2.2.0 | linux |
2 | centos6.5安装Hive0.13 | linux |
3 | Eclipse4.2 | Windows7 |
序号 | 步骤 | 说明 |
1 | hadoop2.2.0安装,启动 | Hive依赖Hadoop环境 |
2 | hive安装 | 类SQL方式操作MapReduce |
3 | 启动hiveserver2 | 远程操作Hive的服务端程序 |
4 | 在win上新建一个java项目,并导入Hive所需jar包 | 远程操作必需步骤 |
5 | 在eclipse里编码,测试 | 测试连接hive是否成功 |
6 | 在hiveserver2端查看 | 检查是否对接成功和任务打印日志 |
7 | 在hadoop的8088端口上查看MR执行任务 | 查看MR执行调度 |
一些HIVE操作语句:
导入数据到一个表中:
LOAD DATA LOCAL INPATH '/home/search/abc1.txt' OVERWRITE INTO TABLE info;
show tables;//显示当前的所有的表
desc talbeName;查看当前表的字段结构
show databases;//查看所有的已有的数据库
建表语句
create table mytt (name string ,count int) row format delimited fields terminated by '#' stored as textfile ;
jar包,截图
Hive依赖Hadoop,因此客户端最好把hadoop的jar包夜引入项目中,下面是调用源码,运行前,确定你在服务端的hiversver2已经开启。
package com.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import org.apache.hadoop.conf.Configuration; /** * 在Win7上,使用JDBC操作Hive * @author qindongliang * * 大数据技术交流群:376932160 * **/ public class HiveJDBClient { /**Hive的驱动字符串*/ private static String driver="org.apache.hive.jdbc.HiveDriver"; public static void main(String[] args) throws Exception{ //加载Hive驱动 Class.forName(driver); //获取hive2的jdbc连接,注意默认的数据库是default Connection conn=DriverManager.getConnection("jdbc:hive2://192.168.46.32/default", "search", "dongliang"); Statement st=conn.createStatement(); String tableName="mytt";//表名 ResultSet rs=st.executeQuery("select avg(count) from "+tableName+" ");//求平均数,会转成MapReduce作业运行 //ResultSet rs=st.executeQuery("select * from "+tableName+" ");//查询所有,直接运行 while(rs.next()){ System.out.println(rs.getString(1)+" "); } System.out.println("成功!"); st.close(); conn.close(); } }
结果如下:
48.6 成功!
Hive的hiveserver2 端log打印日志:
[search@h1 bin]$ ./hiveserver2 Starting HiveServer2 14/08/05 04:00:02 INFO Configuration.deprecation: mapred.reduce.tasks is deprecated. Instead, use mapreduce.job.reduces 14/08/05 04:00:02 INFO Configuration.deprecation: mapred.min.split.size is deprecated. Instead, use mapreduce.input.fileinputformat.split.minsize 14/08/05 04:00:02 INFO Configuration.deprecation: mapred.reduce.tasks.speculative.execution is deprecated. Instead, use mapreduce.reduce.speculative 14/08/05 04:00:02 INFO Configuration.deprecation: mapred.min.split.size.per.node is deprecated. Instead, use mapreduce.input.fileinputformat.split.minsize.per.node 14/08/05 04:00:02 INFO Configuration.deprecation: mapred.input.dir.recursive is deprecated. Instead, use mapreduce.input.fileinputformat.input.dir.recursive 14/08/05 04:00:02 INFO Configuration.deprecation: mapred.min.split.size.per.rack is deprecated. Instead, use mapreduce.input.fileinputformat.split.minsize.per.rack 14/08/05 04:00:02 INFO Configuration.deprecation: mapred.max.split.size is deprecated. Instead, use mapreduce.input.fileinputformat.split.maxsize 14/08/05 04:00:02 INFO Configuration.deprecation: mapred.committer.job.setup.cleanup.needed is deprecated. Instead, use mapreduce.job.committer.setup.cleanup.needed 14/08/05 04:00:02 WARN conf.HiveConf: DEPRECATED: Configuration property hive.metastore.local no longer has any effect. Make sure to provide a valid value for hive.metastore.uris if you are connecting to a remote metastore. OK OK Total jobs = 1 Launching Job 1 out of 1 Number of reduce tasks determined at compile time: 1 In order to change the average load for a reducer (in bytes): set hive.exec.reducers.bytes.per.reducer=<number> In order to limit the maximum number of reducers: set hive.exec.reducers.max=<number> In order to set a constant number of reducers: set mapreduce.job.reduces=<number> Starting Job = job_1407179651448_0001, Tracking URL = http://h1:8088/proxy/application_1407179651448_0001/ Kill Command = /home/search/hadoop/bin/hadoop job -kill job_1407179651448_0001 Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 1 2014-08-05 04:03:49,951 Stage-1 map = 0%, reduce = 0% 2014-08-05 04:04:19,118 Stage-1 map = 100%, reduce = 0%, Cumulative CPU 2.74 sec 2014-08-05 04:04:30,860 Stage-1 map = 100%, reduce = 100%, Cumulative CPU 3.7 sec MapReduce Total cumulative CPU time: 3 seconds 700 msec Ended Job = job_1407179651448_0001 MapReduce Jobs Launched: Job 0: Map: 1 Reduce: 1 Cumulative CPU: 3.7 sec HDFS Read: 253 HDFS Write: 5 SUCCESS Total MapReduce CPU Time Spent: 3 seconds 700 msec OK
hadoop的8088界面截图如下:
下面这条SQL语句,不会转成MapReduce执行,select * from mytt limit 3;
结果如下:
中国 美国 中国 成功!
至此,我们的JDBC调用Hive已经成功运行,我们可以在客户端执行,一些建表,建库,查询等操作,但是有一点需要注意的是,如果在win上对Hive的表,执行数据导入表的操作,那么一定确保你的数据是在linux上的,导入的路径也是linux路径,不能直接把win下面的数据,给导入到linux上的hive表里面。
发表评论
-
理解数据仓库中星型模型和雪花模型
2017-07-06 17:29 4419在数据仓库的建设中, ... -
spark sql on hive笔记一
2016-12-09 20:42 2271Spark sql on Hive非常方便,通过共享读取hiv ... -
Hive2.1.0集成Tez
2016-11-21 19:39 1361#### Tez是什么? Tez是Hontonworks ... -
Apache Hive2.1.0安装笔记
2016-11-16 18:51 1232Hive2.x已经足够稳定了,前面也安装过hive0.x和H ... -
Hue+Hive临时目录权限不够解决方案
2016-06-14 10:40 4727安装Hue后,可能会分配多个账户给一些业务部门操作hive,虽 ... -
hive自定义udf实现md5功能
2016-05-25 11:54 5049Hive自定义UDF实现md5算法 Hive发展至今,自身已 ... -
开源大数据索引项目hive-solr
2016-05-06 16:15 1985github地址:https://github.com/qi ... -
如何使用Hive集成Solr?
2016-03-17 15:05 2856(一)Hive+Solr简介 Hive ... -
Hive使用ORC格式存储离线表
2016-02-14 18:09 4315在大数据时代,列式存 ... -
Spark SQL+Hive历险记
2016-01-21 11:40 6137基础依赖环境 Apache Hadoop2.7.1 Apa ... -
Hive集成Tez让大象飞起来
2016-01-15 16:52 3172基础环境 Apache Hadoop2.7.1 Cen ... -
Apache Tez0.7编译笔记
2016-01-15 16:33 2538目前最新的Tez版本是0.8,但还不是稳定版,所以大家还 ... -
Bug死磕之hue集成的oozie+pig出现资源任务死锁问题
2016-01-14 15:52 3844这两天,打算给现有的 ... -
hadoop2.2生态系统快速安装脚本
2014-09-23 15:08 1990对于使用hadoop进行开发的朋友们,可能要自己搭建一套had ... -
Hadoop2.2.0+Hive0.13+Hbase0.96.2集成
2014-08-06 20:49 1862本篇,散仙主要讲的是使用Hive如何和Hbase集成,Hbas ... -
Hive0.13安装问题总结
2014-07-29 21:28 2273继上篇文章Hive安装之后 ... -
Hadoop2.2.0+Hive0.13+MySQL5.1集成安装
2014-07-29 20:33 2215本次散仙安装的Hive是Hive最新版本中的稳定版本,是基于H ... -
Hive的入门安装
2013-12-09 15:44 1746hive是基于Hadoop的一个数据仓库工具,可以将结构化的数 ...
相关推荐
hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+...
Hadoop+Hbase+Spark+Hive搭建指南 Hadoop是Apache开源的大数据处理框架,它提供了可靠的高效的数据存储和处理能力。Hbase是基于Hadoop的分布式NoSQL数据库,提供了高效的数据存储和检索能力。Spark是基于内存的数据...
在Windows操作系统中,Eclipse是一款广泛使用的Java集成开发环境(IDE),它对于开发分布式计算框架如Hadoop、Spark以及数据仓库工具Hive来说,是非常有用的。本教程将深入讲解如何在Eclipse中集成这些组件,以创建...
确保你的项目中已经集成了Spring Data JPA或者MyBatis等ORM框架,因为Hive-JDBC的操作方式类似于传统数据库操作。 ### 3. 添加依赖 在`pom.xml`文件中添加Hive-JDBC和Hadoop的相关依赖: ```xml <groupId>org...
### Hadoop2.2.0 + HBase0.98.1 + Sqoop1.4.4 + Hive0.13 完全安装手册 #### 前言 随着大数据技术的发展,Hadoop已经成为处理海量数据的核心框架之一。本文旨在为读者提供一套最新的Hadoop2.2.0、HBase0.98.1、...
这个压缩包提供的jar文件是构建Hive JDBC连接的基础,可以用于开发应用程序,通过JDBC接口访问和操作Hadoop集群上的Hive数据。不过,需要注意的是,由于缺少Hive所有库的jar包,这可能限制了一些高级特性的使用,...
hive-jdbc
SpringBoot整合HiveJdbc, 远程连接HiveServer2,并结合Java和HiveSQL 对存储在Hadoop 的6万条电商数据,进行数据分析。后端生成Json 格式,前端解析Json格式,并实现数据大屏可视化。 通过大数据分析,生成有价值...
在大数据领域,构建一个完整的生态系统是至关重要的,其中包括多个组件,如Hadoop、Spark、Hive、HBase、Oozie、Kafka、Flume、Flink、Elasticsearch和Redash。这些组件协同工作,提供了数据存储、处理、调度、流...
在这个压缩包中,只有三个jar文件,这意味着它们可能是经过精简的选择,只包含了执行基本Hive SQL操作所需的组件,这样可以减少依赖的复杂性,提高应用的启动速度和运行效率。 描述中提到这些jar文件是从Cloudera...
Hive JDBC(Java Database Connectivity)是Hive提供的一种接口,使得其他编程语言,如Java,能够通过JDBC驱动程序与Hive进行交互,实现数据查询、分析和操作。本教程将深入讲解如何使用Hive JDBC在Java项目中建立与...
Hive JDBC 1.1.0版本是这个驱动的一个特定迭代,提供了对Hive查询、数据操作和管理功能的接口。在本篇中,我们将深入探讨Hive JDBC驱动的相关知识点,以及如何在实际项目中动态加载和使用这些jar包。 首先,理解...
Hive JDBC是Apache Hive项目的一部分,它为Hive数据仓库提供了与Java数据库连接(JDBC)接口的兼容性。这使得开发人员能够使用标准的JDBC驱动程序来连接到Hive服务器,从而在各种应用程序中方便地进行大数据查询和...
mysql5.7.38、mysql jdbc驱动mysql-connector-java-8.0.8-dmr-bin.jar、 apache-hive-3.1.3 2.本文软件均安装在自建的目录/export/server/下 :sudo mkdir -p /export/server 创建好目录后要改变该目录的属主和属...
apache seatunnel支持hive jdbc
综上所述,Hive JDBC驱动2.5.15和2.6.1版本为大数据开发者和分析师提供了灵活且强大的接口,以访问和操作Hadoop集群上的Hive数据仓库。无论是在数据提取、转换、加载(ETL)流程,还是在报表生成、数据分析任务中,...
Hive JDBC驱动的使用不仅限于基本的查询操作,还可以执行DML(数据操纵语言)语句如INSERT、UPDATE和DELETE,以及DDL(数据定义语言)语句来创建或修改表结构。此外,Hive JDBC还支持事务管理和元数据查询,为Java...
Hadoop+ZooKeeper+HBase+hive(HQL)安装步骤
hive安装
这个压缩包包含了DBeaver的安装程序和Hive JDBC驱动,使得用户能够方便地在DBeaver环境中连接到Hive数据库进行数据操作和分析。 DBeaver Enterprise Edition(EE)23.3.0-x86_64-setup.exe是DBeaver的最新企业版...