zoukankan      html  css  js  c++  java
  • (解决)dbeaver连接hive报错:User: hadoop is not allowed to impersonate XXX

    这个坑肯可能是在java操作hive 和 python操作hive都会遇到的配置问题

    如下解决方法:

    1.配置 hive-site.xml

    <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>hadoop</value>
    <description>username to use against metastore database</description>
    </property>
    <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>passwd</value>
    
    </property> 

    # 这里用户名为什么是hadoop,因为我用用户“hadoop”启动的集群,

    # passwd是用户设定的密码, 具体原理(“即你用哪个linux用户启动hadoop,对应的用户也就成为hadoop的内部用户,如下图我的linux用户为root,对应的hadoop中用户也就是root”,详细参考源:https://blog.csdn.net/qq_16633405/article/details/82190440

    <property> 
    <name>hive.server2.thrift.port</name> 
    <value>10000</value> 
    </property>
    <property>
    <name>hive.server2.thrift.bind.host</name>
    <value>localhost</value>
    </property>
    
    <property>
    <name>hive.server2.enable.doAs</name>
    <value>false</value>

    # 这应该是设置hiverserver2 绑定的host和port, 通过dbeaver通过jdbc driver访问hive, url模板:jdbc:hive2://{host}[:{port}][/{database}]   最后的:hive.server2.enable.doAs,忘了啥意思了,卡了好久病急乱投医了。。。

    2. 配置 hadoop的 core-site.xml

    配置  hadoop/etc/hadoop/  目录下的core-site.xml:

    添加如下xml代码,红色的hadoop对应的就是 上面 hive-site.xml配置的 username, 我看网上大部分都是root,估计是hadoop是在root下启动的,我hadoop所属都是用户hadoop(作为一个菜鸡只能这么猜测了)

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

    3. 启动hiveserver2

    hive --service hiveserver2 -hiveconf hive.server2.thrift.port=10000 

    # 这个hive.server2.thrift.port=10000  在 hive-site.xml中配置了,这应该不用代参数了

    4. 启动 hadoop

      cd /hadoop/sbin/

      start-all.sh

    5. dbeaver测试连接 hive

      下载对应hive版本的jdbc jar包(我的hive是3.1.1, 网上找的3.1.1 , hive jdbc下载链接在这, 如何看hive版本? 参照),以及推荐的jdbc jar包,配置主机、用户名和密码,模式/数据库可以不填, 测试完成(沃尼玛,终于解决了)

      

    在此感谢 :https://blog.csdn.net/qq_16633405/article/details/82190440 博主:春雨里de太阳

     
  • 相关阅读:
    webService理解
    通过ajax.net调用webservice
    .net中调用webservice,post、get方式实现调用
    webservice加载异常
    http 的get,post方式访问url
    dorado
    dorado7中父窗体获取动态生成的iframe中的对象
    dorado中session
    最长公共子序列
    线性DP-数字三角形,最长上升子序列
  • 原文地址:https://www.cnblogs.com/HankCui/p/11638984.html
Copyright © 2011-2022 走看看