当前位置:   article > 正文

Hive连接方式(本文梳理与datagrip连接)_hive怎么连接

hive怎么连接

Hive部分

1.确保HIve已经正确安装完毕,如已正确成功安装Hive,随时随地输入Hive启动即可

首先要确保集群成功启动,否则hive会failed;

2.启动成功之后,就可以做Hive的相关操作了,

hive启动hive thrift服务端,使用命令:

hive --service hiveserver2 &

3.然后还需要在打开一个终端,输入以下命令:

  1. --第一步
  2. beeline
  3. --启动命令后输入
  4. !connect jdbc:hive2://ip地址(或者主机):10000
  5. --然后输入账号密码即可

 

出现以下操作  -------成功!

报错 

如果启动不成功 看报错解决即可,出现0:jdbc*****:10000代表成功

报错:User: root is not allowed to impersonate root (state=08S01,code=0)

  1. beeline> !connect jdbc:hive2://localhost:10000/test
  2. Connecting to jdbc:hive2://localhost:10000/test
  3. Enter username for jdbc:hive2://localhost:10000/test:
  4. Enter password for jdbc:hive2://localhost:10000/test:
  5. 19/06/12 22:05:04 [main]: WARN jdbc.HiveConnection: Failed to connect to localhost:10000
  6. Error: Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000/test: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: root is not allowed to impersonate anonymous (state=08S01,code=0)

这个错误表明在连接到 Hive 时,使用的用户 "root" 尝试进行用户模拟(impersonation),但是被拒绝了。这通常是由于权限设置或配置错误导致的。

要解决这个问题,您可以尝试以下几种方法:

  1. 使用具有适当权限的用户:尝试使用具有适当权限的用户进行连接,确保该用户被授权执行所需的操作。

  2. 检查 Hive 配置:检查 Hive 的配置文件,确保在配置中正确设置了用户和权限。特别是,查看 Hive 的授权策略(authorization policy)以及是否启用了用户模拟。

  3. 检查 Hadoop 用户和组:确保 Hadoop 集群中的用户和组与 Hive 中的用户和组匹配,并且具有适当的权限。

  4. 查看 Hive 日志:查看 Hive Server 2 的日志以获取更多详细信息,可能会提供有关拒绝连接的原因的线索。

  5. 重新配置用户模拟:如果确定需要使用用户模拟,并且当前配置存在问题,您可能需要重新配置 Hive 以允许用户模拟,并确保正确设置了允许用户模拟的用户和组。

解决方案 :

找到集群配置文件core_site.xml,添加以下内容即可

  1. <property>
  2. <name>hadoop.proxyuser.root.hosts</name>
  3. <value>*</value>
  4. </property>
  5. <property>
  6. <name>hadoop.proxyuser.root.groups</name>
  7. <value>*</value>
  8. </property>

hadoop.proxyuser.root.hosts配置项名称中root部分为报错User:* 中的用户名部分,根据报错需要修改;

***修改完毕记得重启集群 重新操作一遍即可

Datagrip部分

1.使用datagrip连接hive数据库操作步骤:

如没有项目可添加一个新项目;无需请忽略

然后即可使用:

  1. -- 显示所有数据库
  2. show databases;
  3. -- 创建数据库 hive_dev
  4. create database hive_dev;
  5. -- 删除数据库 hive_dev
  6. drop database hive_dev;
  7. 强制删除数据库hive_test
  8. drop database hive_test cascade;
  9. -- 查看数据库结构
  10. desc database hive_dev;
  11. -- 使用数据库
  12. use hive_dev;
  13. -- 创建表格
  14. create table student
  15. (
  16. id int comment '学生主键',
  17. stu_name string
  18. )comment '学生表';
  19. -- 查看学生表结构
  20. desc student;
  21. -- 添加信息
  22. insert into student values (1,'zhangsan'),(2,'lisi'),(3,'wangwu');
  23. -- 查询id为2的信息
  24. select * from student where id=2;
  25. -- 创建内部学生表
  26. create table student_inner
  27. (
  28. id int comment '学生主键',
  29. stu_name string
  30. ) comment '学生表'
  31. row format delimited fields terminated by '|' --代表告诉传入的表格以什么为区分
  32. stored as textfile; --此处代表在虚拟机内编辑完毕的信息 导入到hadoop中
  33. show tables;
  34. drop table student_inner;
  35. -- 上传 不带LOCAL代表hadoop 带 代表Linux INPATH路径
  36. LOAD DATA LOCAL INPATH '/root/stu.txt' INTO TABLE student_inner;
  37. select * from student_inner;
  38. -- 外部表
  39. create external table student_outer
  40. (
  41. id int comment '学生主键',
  42. stu_name string
  43. ) comment '学生表'
  44. row format delimited fields terminated by '|'
  45. stored as textfile location '/aaa/bbb/ccc'; --location代表更改目录,不加代表原有路径 默认
  46. show tables;
  47. drop table student_outer;
  48. LOAD DATA INPATH '/aaa/stu_copy_1.txt' INTO TABLE student_outer;
  49. select * from student_outer;
  50. create external table student_outer_pd_date
  51. (
  52. id int comment '学生主键',
  53. stu_name string
  54. ) comment '学生表' partitioned by (pd string)
  55. row format delimited fields terminated by '|'
  56. stored as textfile location '/test0401';
  57. LOAD DATA LOCAL INPATH '/root/stu.txt' INTO TABLE student_outer_pd_date partition (pd='202401');
  58. LOAD DATA LOCAL INPATH '/root/stu1.txt' INTO TABLE student_outer_pd_date partition (pd='202402');
  59. LOAD DATA LOCAL INPATH '/root/stu2.txt' INTO TABLE student_outer_pd_date partition (pd='202403');
  60. select * from student_outer_pd_date where pd='202402';

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/511505
推荐阅读
相关标签
  

闽ICP备14008679号