zoukankan      html  css  js  c++  java
  • hive JDBC异常到多租户

      hive jdbc执行select count(*) from test报错。
      return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
      google网调(百度毛也没有搜到,还是国内大牛都不屑于回答问题),终于发现原来是因为jdbc需要在代码中指定用户(可以不指定密码),代表可以使用哪个用户来调用该语句。
      这个问题解决了大数据的多租户问题;在代码中只要通过jdbc链接字符串指定了用户名(id都不需要指定)即可指定执行用户的名称;

      hive的jdbc字符串+YARN的resource pool也就实现了多租户处理。

      至于用于,一定是要在hadoop目录的/user下面已经存在的用户;如果需要创建:
      hadoop fs -mkdir /user/bd
      hadoop fs -chown bd:bd /user/bd
    即可。
      如上创建目录以及目录权限之后,就可以进行MapReduce操作了。
        在hadoop世界里面,宿主机的用户和和hadoop用户映射的,一般情况下,都是当前机器执行用户来扮演同名的hadoop用户。上例,bd是centos用户,但是开始没有在hadoop中进行创建;在hive的jdbc的链接串的时候指定bd用户,将会返回retun code 1,看一下日志可以发现是权限问题。
    但是也不是绝对,对于hive这种情况下,可能并不是在系统中直接运行脚本,而是通过api去告诉YARN用户名,也不需要和系统用户一一对应;比如在cloudera安装的CDH默认会创建HUE2用户,这个用户就没有对应系统用户。

  • 相关阅读:
    Jquery DataTable初探
    小程序-组件component和模版template的选择和使用
    小程序-canvas在IOS手机层级最高无法展示问题
    小程序-二维码生成
    css深入理解之 border
    css那些事儿4 背景图像
    css那些事儿3 列表与浮动
    css那些事儿2 经典两列布局
    css那些事儿2 盒子模型
    css那些事儿1 css选择符与管理
  • 原文地址:https://www.cnblogs.com/xiashiwendao/p/8094611.html
Copyright © 2011-2022 走看看