win10用jdbc连接hive遇到的问题

本文详细记录了从Hadoop3.0.2降级至2.8.5过程中解决的多个技术难题,包括启动hiveServer2时的NoSuchMethodError异常、客户端通过JDBC连接Hive时的ConnectionException以及权限问题。提供了具体的操作步骤和配置修改建议。
摘要由CSDN通过智能技术生成

目录

背景

error starting hiveServer2

java.lang.NoSuchMethodError: org.eclipse.jetty.server.Server.setThreadPool(Lorg/eclipse/jetty/util/thread/ThreadPool;)V

ConnectionException:Call from ... to localhost:10000 failed on connection exception:Connection refused no further information

org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException):user is not allowed to impersonate hive

资源下载


背景

装完hadoop装hive、spark,然后开始尝试让客户端以jdbc的方式连接hive数据库,结果出了几个棘手的错误

 

error starting hiveServer2

java.lang.NoSuchMethodError: org.eclipse.jetty.server.Server.setThreadPool(Lorg/eclipse/jetty/util/thread/ThreadPool;)V

客户端要想连接hive,就必须启动hiveserver2,但启动hiveserver2时,爆出了这么一个错误,jetty中Server里没有setThreadPool()方法。这是hadoop3.0.2中jettyServer包的问题,没得别的方法,只能把hadoop由3.0.2降到2.8.5,其间可能遇到的问题请参见文章win10编译Hadoop3.0.2源码遇到的坑win10启动hadoop时遇到的坑,2.8.5的编译运行过程和3.0.2的一模一样。

为什么要重新编译hadoop源码,是因为我在使用hive建表时,爆了一个错:

java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z:

要解决它,就必须修改hadoop源码(hadoopHome\hadoop-common-project\hadoop-common\src\main\java\org\apache\hadoop\io\nativeio),让access()方法直接返回true

 

hiveServer启动完后,就可以用jdbc客户端连接hive了,其间遇到的问题和解决方案如下:

ConnectionException:Call from ... to localhost:10000 failed on connection exception:Connection refused no further information

得先启动hadoop,并且检查客户端连接url,端口号要和hiveserver2的一致(默认10000)

 

org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException):user is not allowed to impersonate hive

权限问题,在hadoophome\etc\hadoop\core-site.xml文件里,添加如下内容:

    <property>
      <name>hadoop.proxyuser.123.groups</name>
      <value>*</value>
      <description>Allow the superuser oozie to impersonate any members of the group group1 and group2</description>
    </property>

    <property>
      <name>hadoop.proxyuser.123.hosts</name>
      <value>*</value>
      <description>The superuser can connect only from host1 and host2 to impersonate a user</description>
   </property>

      中间的123换成自己的用户名,然后重启hadoop和hiveserver就可以了

资源下载

hadoop2.8.5源码下载链接:

链接:https://pan.baidu.com/s/1IPhMuM1V3sxoXOZ69iyI5w 
提取码:uv41 
 

编译好的hadoop2.8.5下载链接:

链接:https://pan.baidu.com/s/1mRDlZpfvNwhTBi0T2FD_Pg 
提取码:d35w

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值