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用户,这个用户就没有对应系统用户。

  • 相关阅读:
    任务二 发布作业信息(已完成)
    查看作业信息(任务一 已完成)
    项目冲刺任务之任务场景分析(四)
    项目冲刺之任务场景分析(三)
    解析XML文件的两种方式 SAX和DOM
    解析XML文件的两种方式 SAX和DOM
    iOS开发代码规范(通用)
    随机创建点击对象
    自定义加载等待框(MBProgressHUD)
    KVO、KVC
  • 原文地址:https://www.cnblogs.com/xiashiwendao/p/8094611.html
Copyright © 2011-2022 走看看