Hive提供了jdbc驱动,使得我们可以通过Hive Java API连接Hive,并进行一些类关系型数据库的sql操作。下面详细介绍了如何通过Hive Java API查询Hive中表的数据的实现过程。
(1)项目创建。
启动eclipse,创建projiect名称为test的项目(创建的具体过程前几章已经介绍,此处不再详细介绍)。
(2)加载所需的jar包。
JDBC访问hive需要加载如下Jar包:
$HADOOP_HOME/share/hadoop/common/hadoop-common-2.8.0.jar
$HIVE_HOME/lib/hive-exec-2.1.1.jar
$HIVE_HOME/lib/hive-jdbc-2.1.1.jar
$HIVE_HOME/lib/hive-metastore-2.1.1.jar
$HIVE_HOME/lib/hive-service-2.1.1.jar
$HIVE_HOME/lib/commons-logging-1.2.jar
在项目中,加载jar包的过程如下:
1)首先在项目下创建一个文件夹lib,用于保存我们的jar包。如图5-2所示。
图5-2 创建新文件夹
2)输入文件夹名称【lib】,点击【ok】。我们通常在lib文件夹中存放从外部引入的jar包。如图5-3所示。
图5-3 输入文件名称
3)先复制jar包,然后在lib文件夹上右击,选择复制。此时,打开选择框,我们选择默认的【copy files】,点击【OK】关闭。然后我们就可以在lib文件夹下看到我们复制成功的jar包。首先在项目下创建一个文件夹lib,用于保存我们的jar包。其次,把jar包复制到lib中。如图5-4所示。
图5-4 复制jar包至lib
4)此时,只是把jar包复制到项目中,还不能使用。我们再在项目名上右击,依次选择【Build Path】→【Configure Build Path...】。如图5-5所示。
图5-5 选择Configure Build Path...
5)在打开的窗口中,先选中【Libraries】页,再从右边的按钮中点击【add JARs...】。如图5-6所示。
图5-6 add JARs...
6)在打开的窗口中,我们依次展开本项目的项目和lib文件夹,然后选中我们刚才复制到项目中的jar包,然后点击【OK】关闭窗口。如图5-7所示。
(www.xing528.com)
图5-7 选择jar包
7)此时,我们在刚才打开的【Libraries】页中可以看到我们引入的jar包的名称。点击【OK】确认。如图5-8所示。
图5-8 jar包添加成功确认
(3)用户授权。
由于hiveserver2增加了权限控制,需要在hadoop的配置文件中配置,否则会出现拒绝连接导致的连接失败。因此,需要在core-site.xml文件中添加如下配置。
(4)加载hadoop配置文件。
复制hadoop配置文件hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml以及log4j.properties到目下的src文件夹中。
(5)创建数据库和表。
在hive交互终端执行如下命令,创建数据库、表和导入数据。
load data inpath'/user/out_clear/part-r-00000'into table datas;//将part-r-00000文件的数据导入表datas中,其中,文件part-r-00000中数据示例如下:
123.126.50.73,2012-01-04 00:00:02
203.208.60.187,2012-01-04 00:00:02
114.112.141.6,2012-01-04 00:00:02
114.112.141.6,2012-01-04 00:00:02
注意:导入CSV文件不要放在本地目录,要放在HDFS下才可以读入。
将CSV放在HDFS上命令:
hadoop fs-put /home/hadoop/Desktop/sales_data.csv /user/;
执行导入命令:
load data inpath‘/user/sales_data.csv’into table表名;
(6)创建类HiveTest。
在项目中创建类HiveTest,且HiveTest实现代码如下:
(7)启动hiveserver2。
在执行程序之前,需要在终端hadoop和HiveServe,启动hiveserver的shell命令为
hive--service hiveserver2 &。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。