Hive2 jdbc test
package andes;
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.security.UserGroupInformation;
public class Hive2JdbcTest {
// org.apache.hadoop.hive.jdbc.HiveDriver
// org.apache.hive.jdbc.HiveDriver
private static String driverName = "org.apache.hive.jdbc.HiveDriver";
public static void main(String[] args) throws SQLException {
try {
Class.forName(driverName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.exit(1);
}
Configuration conf = new Configuration();
conf.setBoolean("hadoop.security.authorization", true);
conf.set("hadoop.security.authentication", "kerberos");
try {
UserGroupInformation.loginUserFromKeytab("user@domain",
"/home/user/user.keytab");
} catch (IOException e) {
e.printStackTrace();
}
Connection con = DriverManager
.getConnection(
"jdbc:hive2://host:port/db;principal=hive/host
@domain",
"", "");
Statement stmt = con.createStatement();
// stmt.executeQuery("use db");
String sql = "select * from table 2000";
System.out.println("Running: " + sql);
ResultSet res = stmt.executeQuery(sql);
// dump res to file
try {
write2file("c:\\work\\jdbctest.txt", res);
} catch (IOException e) {
e.printStackTrace();
}
res.close();
}
static void write2file(String filepath, ResultSet res) throws SQLException,
IOException {
// filepath="c:\\work\\jdbctest.txt";
FileOutputStream fout;
fout = new FileOutputStream(filepath);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fout,
"UTF-8"));
ResultSetMetaData meta = res.getMetaData();
int numberOfColumns = meta.getColumnCount();
while (res.next()) {
for (int i = 1; i < numberOfColumns; i++) {
bw.write(String.valueOf(res.getObject(i)));
bw.write('\t');
}
bw.write(String.valueOf(res.getObject(numberOfColumns)));
bw.newLine();
}
bw.close();
System.out.println("finished");
}
}
java command to run jar file:
java -classpath ".:/home/test/tmp/andes/*:" andes.HiveJdbcClient /home/test/tmp/andes/test.keytab
最新文章
- xcode8.1 插件失效的问题
- 解决eclipse报PermGen space内存溢出异常的问题
- Asp.net Core中使用NLog,并封装成公共的日志方法
- python tools: iPython Notebook
- HDU2063_过山车_C++
- Linux命令行技巧
- 程序员老鸟写sql语句的经验之谈
- eclipse maven SLF4J: Failed to load class org.slf4j.impl.StaticLoggerBinder
- MacOS下SVN迁移Git踩坑记
- C语言Linix服务器网络爬虫项目(二)项目设计和通过一个http请求抓取网页的简单实现
- [SDOI 2008]仪仗队
- socket编程中客户端常用函数
- nginx 配置laravel框架域名配置
- QNET,一款给力的APP弱网络测试工具
- zTree树形菜单交互选项卡效果实现
- IDEA出现Cannot resolve symbol ";xxx";(无法解析符号)
- SpringMVC注解@RequestParam与RequestMapping全面解析
- JVM中java实例对象在内存中的布局
- 643. Maximum Average Subarray I
- 轻松转移github项目步骤
热门文章
- 关于C#读取MySql数据时,返回DataTable中某字段数据是System.Array[]形式
- csharp:Compare two DataTables to rows in one but not the other
- ahjesus约束方法或属性的调用方
- 实践GTD三周年后的体会
- JSON/XML格式化插件比较
- IOS中程序如何进行推送消息(本地推送,远程推送)2(上)
- Android studio打包APK混淆配置
- 【读书笔记】iOS-编码对象
- Android源码分析之HandlerThread
- ShareSDK短信验证码集成详细步骤