代码之家  ›  专栏  ›  技术社区  ›  sachin

使用beeline shell拒绝匿名用户的配置单元权限

  •  6
  • sachin  · 技术社区  · 8 年前

    Hadoop 具有1个namenode和2个datanode的集群。

    我可以从以下位置执行读/写查询: Hive 壳,但不是直线。

    我发现了许多与这个问题相关的建议和答案。
    在每项建议中,都提到要允许 userX 对于每个单独的表。
    但我不知道如何一次性为匿名用户设置权限。


    但我无法在表中插入数据。

    这是我的jdbc连接:jdbc:hive2://hadoop01:10000。

    以下是我在请求插入时遇到的错误:

    权限被拒绝:user=anonymous,access=WRITE,inode=“/user/hive/warehouse/test\u log/。hive-staging\u hive\u 2017-10-07\u 06-54-36\u 347\u 6034469031019245441-1”:hadoop:超群:drwxr-xr-x

    2 回复  |  直到 8 年前
        1
  •  10
  •   OneCricketeer Gabriele Mariotti    8 年前

    直线语法为

    beeline -n username -u "url"
    

    我假设你缺少用户名。此外,除了hadoop用户之外,没有人可以对该表进行写访问

    如果您不能完全控制表权限,可以尝试使用该设置重新定位临时目录 hive.exec.stagingdir

        2
  •  0
  •   sai harsha vardhan    8 年前

    如果在连接URL中未指定要连接的数据库,如

    jdbc:hive2://hadoop01:10000/default

    然后beeline连接到数据库 违约 ,并在将数据插入表时-首先将数据加载到默认数据库中的临时表,然后加载到实际表。

    因此,您需要让用户访问 违约 也可以连接到您有权访问的数据库。

    jdbc:hive2://hadoop01:10000/your\u-db