前言
HiveServer2 是 Apache Hive 的一个服务器端组件,用于支持客户端与 Hive 进行交互和执行查询。HiveServer2服务的作用是提供jdbc/odbc接口,为用户提供远程访问Hive数据的功能。HiveServer2 允许多个客户端同时连接并与 Hive 交互。这些客户端可以通过 JDBC、ODBC 或 Thrift API 连接到 HiveServer2。HiveServer2 支持并发执行多个查询。它使用一个线程池和查询队列来管理同时执行的查询请求。HiveServer2 可以与 Apache Ranger 或 Apache Sentry 等安全工具集成,实现对查询和资源的严格权限控制。HiveServer2 支持高可用性配置,可通过 ZooKeeper 实现故障转移和自动切换到备用实例。HiveServer2 支持查询优化器,可以对查询执行计划进行优化,提高查询性能。
正文
- 修改hadoop的core-site.xml配置,开启Hadoop提供的proxy user(代理用户功能)
- 在$HADOOP_HOME/etc/hadoop目录下的core-site.xml配置中增加如下内容:
<!--配置所有节点的hadoop用户都可作为代理用户--> <property> <name>hadoop.proxyuser.hadoop.hosts</name> <value>*</value> </property> <!--配置hadoop用户能够代理的用户组为任意组--> <property> <name>hadoop.proxyuser.hadoop.groups</name> <value>*</value> </property> <!--配置hadoop用户能够代理的用户为任意用户--> <property> <name>hadoop.proxyuser.hadoop.users</name> <value>*</value> </property>
- 分发core-site.xml到hadoop102与hadoop103
- 重启hadoop集群
- 在hive-site.xml中增加hiveserver2服务访问的配置
- 修改hive-site.xml配置文件
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!-- jdbc连接的URL --> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://hadoop101:3306/metastore?useSSL=false</value> </property> <!-- jdbc连接的Driver--> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <!-- jdbc连接的username--> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <!-- jdbc连接的password --> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>root</value> </property> <!-- Hive默认在HDFS的工作目录 --> <property> <name>hive.metastore.warehouse.dir</name> <value>/hadoop/hive/warehouse</value> </property> <!-- 指定hiveserver2连接的host --> <property> <name>hive.server2.thrift.bind.host</name> <value>hadoop101</value> </property> <!-- 指定hiveserver2连接的端口号 --> <property> <name>hive.server2.thrift.port</name> <value>10000</value> </property> </configuration>
- 启动hiveserver2服务
- 命令:bin/hive --service hiveserver2
- 使用命令行客户端beeline进行远程访问
- 命令:bin/beeline -u jdbc:hive2://hadoop101:10000 -n hadoop
- 使用图形化工具Datagrip客户端工具连接hiveserver2
- 使用nohub命令后台启动hiveserver2
- 命令:nohup hive --service hiveserver2 2>&1 &
结语
至此,关于Hive的hiveserver2服务安装部署到这里就结束了,我们下期见。。。。。。