java操作hive2.1.0

1 启动hiveserver2服务,直接到hive/bin目录下执行hiveserver2,或者./hive --service hiveserver2.默认端口是10000,可以通过hiveConf进行配置;

2 依赖包导入有两种方式:a 将hive安装目录的lib下面的全部jar包和hadoop安装目录的share/hadoop/common/lib下的全部jar包一起导入到项目下;b 通过maven将必要的几个jar包依赖导入;自己用的方法a。

3 java程序访问

package com.sf.scala.sparkSql.test;
import java.sql.*;
/**
 * Created by zkw on 17-10-12.
 */
public class HiveTest {
    private static String driverName = "org.apache.hive.jdbc.HiveDriver";
    public static void main(String[] args){
        try{
            Class.forName(driverName);
            Connection con = DriverManager.getConnection("jdbc:hive2://ip:10000/selfwork","hadoop","hadoop");
            String sql = "select * from srczkw";
            PreparedStatement pstmt = con.prepareStatement(sql);
            ResultSet rs = pstmt.executeQuery();
            while (rs.next()){
                System.out.println(rs.getInt("key")+"**"+rs.getString("value"));
            }
        }catch(ClassNotFoundException e){
            e.printStackTrace();
        }catch (SQLException e){
            e.printStackTrace();
        }
    }
}
可能遇到的问题:
1 driverName错误,有一种是带hadoop的,可以通过引入的jar包查看具体的路径和名称
2 connection的url错误,我们用的是hive2,另一种hive使用不了;
3 User: hadoop is not allowed to  impersonate hive 。修改hadoop的配置文件core-site.xml,添加

<property>
        <name>hadoop.proxyuser.hadoop.hosts</name>                                               
        <value>*</value>
    </property>

    <property>
            <name>hadoop.proxyuser.hadoop.groups</name>
            <value>*</value>
    </property>

4 重启hadoop(无需重新format),之后立刻运行程序会报Name node is in safe mode,这是因为hadoop还在同步数据,稍等片刻等同步完成即可正常运行了。



 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值