package com;
import com.cloudera.impala.jdbc41.internal.apache.logging.log4j.LogManager;
import com.cloudera.impala.jdbc41.internal.apache.logging.log4j.Logger;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.security.UserGroupInformation;
import java.io.IOException;
import java.security.PrivilegedAction;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class main {
private static String JDBC_DRIVER = "com.cloudera.impala.jdbc41.Driver";
private static String CONNECTION_URL = "jdbc:impala://10.10.10.10:21050/default;AuthMech=1;KrbRealm=XXXX.CN;KrbHostFQDN=10.10.10.10;KrbServiceName=impala";
private static final Logger logger = LogManager.getLogger(main.class);
public static void main(String[] args) {
try {
Class.forName(JDBC_DRIVER);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
System.setProperty("java.security.krb5.conf", "/opt/krb5.conf");
Configuration configuration = new Configuration();
configuration.set("hadoop.security.authentication" , "Kerberos");
UserGroupInformation. setConfiguration(configuration);
UserGroupInformation.loginUserFromKeytab("impala/XXXXX@SPOTLIGHT.CN", "/opt/impala.keytab");
System.out.println(UserGroupInformation.getCurrentUser() + "------" + UserGroupInformation.getLoginUser());
UserGroupInformation loginUser = UserGroupInformation.getLoginUser();
loginUser.doAs((PrivilegedAction<Object>) () -> {
Connection connection = null;
int rs ;
PreparedStatement ps = null;
//刷新表源数据
String sql="refresh xxxx.xxxxx";
try {
Class.forName(JDBC_DRIVER);
connection = DriverManager.getConnection(CONNECTION_URL);
ps = connection.prepareStatement(sql);
rs = ps.executeUpdate();
if(rs==-1){
logger.info("执行SQL语句:"+sql+"成功");
}
} catch (Exception e) {
logger.error("执行SQL语句:"+sql+"失败;"+e);
} finally {
try {
connection.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return null;
});
} catch (IOException e) {
e.printStackTrace();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
大数据+kerberos+impala源码
共15个文件
xml:11个
gitignore:1个
jar:1个
需积分: 0 0 下载量 42 浏览量
2024-05-12
22:23:31
上传
评论
收藏 8.75MB RAR 举报
温馨提示
Impala是用于处理存储在Hadoop集群中的大量数据的MPP(大规模并行处理)SQL查询引擎。 它是一个用C ++和Java编写的开源软件。 与其他Hadoop的SQL引擎相比,它提供了高性能和低延迟。 换句话说,Impala是性能最高的SQL引擎(提供类似RDBMS的体验),它提供了访问存储在Hadoop分布式文件系统中的数据的最快方法。 本示例使用java通过jdbc连接带kerberos认证的impala,包含代码及impalaJDBC官方驱动。可以实现通过impala加速访问hive数据仓库
资源推荐
资源详情
资源评论
收起资源包目录
impalaDemo.rar (15个子文件)
lib
ImpalaJDBC41.jar 10.37MB
pom.xml 1KB
src
test
java
main
resources
java
com
main.java 3KB
.idea
.name 6B
jarRepositories.xml 864B
codeStyles
codeStyleConfig.xml 153B
Project.xml 533B
ZeppelinRemoteNotebooks
runConfigurations.xml 346B
libraries
ImpalaJDBC41.xml 222B
workspace.xml 3KB
misc.xml 541B
compiler.xml 539B
azure
azureSettings.xml 305B
.gitignore 243B
aws.xml 304B
共 15 条
- 1
资源评论
一只熊玩大数据
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功