Eclipse环境下使用jdbc访问hive程序(hive-0.12.0 + hadoop-2.4.0集群)

一、Eclipse 新建Other-》Map/Reduce Project工程

工程自动包含了相关hadoop的jar包,

另外还需分别导入以下hive和连接mysql的jar包:

hive/lib/*.jar

mysql-connector-java-5.1.24-bin.jar

二、启运HiveServer

命令:bin/hive --service hiveserver &

曾经执行多次这个命令没成功后,报错:Could not create ServerSocket on address 0.0.0.0/0.0.0.0:10000.

解决办法:启动时,指定端口号,命令

bin/hive --service hiveserver -p 10002

如果没报错就不用理会,但下面代码中的端口号要改为默认的10000,与这里的一致。

三、Eclipse中java测试代码

如果新建工程时不时选择hadoop工程,会报错:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/io/Writable

解决办法:这是因为一下hadoop的包没有加进来,重新建一个工程,工程类型选择Other-》Map/Reduce Project工程,自动就包含了hadoop开发环境

另需先在/home/hadoop/file/目录下准备user_info.txt文件,内容如下(\t分割符)

1001  jack    30
1002  tom    25
1003  kate    20

//--------------HiveTest .java-----------------

package test;

import java.sql.SQLException;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.Statement;

import java.sql.DriverManager;

public class HiveQuery {

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://192.168.1.200:10002/default", "", "");

Statement stmt = con.createStatement();

String tableName = "testHiveDriverTable";

stmt.executeQuery("drop table " + tableName);

ResultSet res = stmt.executeQuery("create table " + tableName + " (id int, name string, age string) row format delimited fields terminated by ‘\t‘ lines terminated by ‘\n‘");

// 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)+ "\t" + res.getString(3));

}

// 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 = "/home/hadoop/file/user_info.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) + "\t" + res.getString(3));

}

// 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));

}

}

}

//------------end---------------------------------------------

四、显示结果

Running: show tables ‘testHiveDriverTable‘

testhivedrivertable

Running: describe testHiveDriverTable

id                  int

name             string

age               string

Running: load data local inpath ‘/home/hadoop/file/user_info.txt‘ into table testHiveDriverTable

Running: select * from testHiveDriverTable

1001 jack 30

1002 tom 25

1003 kate 20

Running: select count(1) from testHiveDriverTable

3

时间: 2024-12-12 20:00:17

Eclipse环境下使用jdbc访问hive程序(hive-0.12.0 + hadoop-2.4.0集群)的相关文章

scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld

IDE选择并下载: scala for eclipse 下载: http://scala-ide.org/download/sdk.html 根据自己的机器配置选择合适的IDE: 我这里选择For scala2.11 版本的Windows 32 bit的IDE,单击即下载. scala安装: 安装包下载地址,进入官网:http://www.scala-lang.org/ 进入DOWNLOAD下,选择scala 2.11 版本,单击下载: Windows上安装scala 2.11: 单击运行sca

详细的图文教程来实现 eclipse环境下如何配置tomcat,并且把项目部署到Tomcat服务器上

很多初学,尤其自学JavaWeb的朋友首次在eclipse下配置tomcat时,总会有种难下手的感觉,在此,通过图文解说的方法,最直观的向大家演示一遍该配置过程. 第一部分:eclipse环境下如何配置tomcat 1.下载并成功安装Eclipse和Tomcat 2.打开Eclipse,单击“window”菜单,选择下方的“Preferences” . 3. 点击 Add 添加Tomcat. 4. 选中自己安装的tomcat路径. 5. 选择jdk 版本. 6. 选择自己的jdk版本. 7. 点

lnmp环境下搭建wordpress博客程序

本文档主要介绍如何在lnmp环境下搭建完整的wordpress程序. 基本流程: 1.开源博客程序WordPress介绍 2.WordPress博客程序的搭建准备 3.开始安装blog博客程序 4.实现WordPress博客程序URL静态化 ---------------------------------------------------------------------------------------------------------------------------------

android开发——Eclipse环境下代码编辑最常用快捷键集锦(来了就不能空手而归)

Ctrl+D:删除光标所在行 Ctrl+/ :注释选中行 :Ctrl+\:注销选中行 Ctrl+Shift+/:注释选中的java或xml代码块: Ctrl+Shift+\:注销选中的Java或xml代码块.(形式:/*      */ 或 <!--      -->) shift + alt + j或/**+Enter(回车键):添加javadoc头注释,形如/** * * * * * */(个人更习惯用/**+Enter(回车键)) Ctrl+K:向前查找与当前选定内容相同的代码(如查找与

Eclipse环境下JBoss调试,解决引用的工程不被部署的问题

其实算是一个很小的经验,在eclipse环境下进行jboss的部署,因为要定义某公共包的问题,将代码down下来做了个工程,部署时发现jboss提示:class not found! 从jboss部署目录中没有发现该类,在lib中也没有发现对应的jar包,考虑是编译时正确但运行时错误,原因就是没有部署. 后台经过同事指点,得知需要修改project的Deployment Assembly,需要将引用的工程通过jar的形式引入到jboss中.如图示: 重新部署,debug启动即可. Eclipse

Eclipse 环境下安装PhoneGap开发插件

phoneGap开发跨所有移动平台软件已经成为未来移动终端开发的总趋势,如何在大家所熟悉的Eclipse IDE中快速安装PhoneGap开发插件,介绍如下: 点击help-->install new software-->add连接:http://svn.codespot.com/a/eclipselabs.org/mobile-web-development-with-phonegap/tags/r1.2.91/download/ 然后一路next,选择重新启动Eclipse,出现左边所示

java 在centos6.5+eclipse环境下调用opencv实现sift算法

java 在centos6.5+eclipse环境下调用opencv实现sift算法,代码如下: import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.core.MatOfKeyPoint; import org.opencv.highgui.Highgui; import org.opencv.features2d.*; public class ExtractSIFT{ public static

IntelliJ和eclipse环境下的Hello World

1. IntelliJ环境下的Hello World 1. 启动IntelliJ IDE,选择File->New->Project 选择Java如果没有出现Project SDK,则选择New,JDK 选择New->JDK->指向java SDK安装的文件夹(一般位于C:\Program Files (x86)\Java\jdk(版本号))   之后直接选择Next(不从模板创建)->选择项目文件夹和项目名(Hello World) 选择Project->SDK->

Eclipse环境下添加package到工程的classpath

ABSTRACT: 在Eclipse环境下,Import是在CLASSPATH路径和工程目录中搜寻package(.class文件), 若希望import第三方的package,需要将package的顶层路径添加到CLASSPATH.然而, 通过系统环境变量设置的CLASSPATH不能被Eclipse识别,会报unresolve error,原因是 工程的CLASSPATH被Eclipse重写,需要通过GUI或.classpath文件来设置. 1.文件准备 .class文件(.jar也可) 注意