ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Hive 安装 以及使用 DataGrip 连接 Hive

2021-06-13 14:30:55  阅读:365  来源: 互联网

标签:opt DataGrip hadoop hive Hive 2.1 连接 software


Hive 安装 以及使用 DataGrip 连接 Hive

Hive 安装说明

① 环境说明

Hadoop 环境已通过腾讯云服务器完成搭建,我是将 hive 安装到 该 hadoop 集群的某个节点了

Mysql 中间件使用的是阿里云的产品

② 版本说明

Hadoop 2.7.5 +Hive 2.1.1 + Mysql 8.0.18 + Centos 7 + DataGrip 2021

Hive 安装前的准备

① 搭建 Hadoop 环境

Hadoop 介绍及集群搭建_半吊子Kyle的博客-CSDN博客

② 安装 Mysql

我使用的是 阿里云的 Mysql ,如果你需要自己搭建请参考以下文章:

Linux 安装 Mysql_半吊子Kyle的博客-CSDN博客

③ Hive 安装包下载,软件包为 apache-hive-2.1.0-bin.tar.gz

Hive 下载

# 也可以通过该命令,直接下载到服务器,前提是你的服务器可以连接外网
wget http://archive.apache.org/dist/hive/hive-2.1.1/apache-hive-2.1.0-bin.tar.gz

④ 准备 mysql 驱动包

Maven Repository: mysql » mysql-connector-java » 8.0.18 (mvnrepository.com)

⑤ 此时假设你已经安装好了 DataGrip ,安装请参考该文章:

Macbook m1环境配置终极版_半吊子Kyle的博客-CSDN博客

Hive 安装

注意:我们当前已经有了一个 hadoop 集群,集群中有 3 个节点,我们只需要在其中的某个节点安装 Hive 即可

① 解压 Hive 安装包并重命名

# 进入自定义的安装目录,上传安装包
cd /opt/software

# 解压安装包
tar -zxvf apache-hive-2.1.0-bin.tar.gz

# 重命名安装目录
mv apache-hive-2.1.0-bin hive-2.1.0

② 修改 hive-env.sh

# 进入配置文件目录
cd  /opt/server/hive-2.1.0/conf

# 修改 hive 的配置文件 : hive-env.sh 
cp hive-env.sh.template hive-env.sh
vim hive-env.sh

# 增加修改内容:指定 hadoop 安装目录 和 hive 的配置文件目录
HADOOP_HOME=/opt/software/hadoop-2.7.5 
export HIVE_CONF_DIR=/opt/software/hive-2.1.0/conf

③ 修改 hive-site.xml

# 进入配置文件目录
cd  /opt/software/hive-2.1.0/conf

# 编辑 hive-site.xml
vim hive-site.xml

# 增加以下内容,并修改
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 将此处的用户名修改为你自定义的 mysql 用户名 -->
<property>
      <name>javax.jdo.option.ConnectionUserName</name>
      <value>用户名</value>
  </property>
  <!-- 将此处的密码修改为你自定义的 mysql 密码 -->
  <property>
      <name>javax.jdo.option.ConnectionPassword</name>
      <value>密码</value>
  </property>
  <!-- 将此处的 mysql 修改为你自定义的 mysql 地址,我使用的是阿里云的 mysql -->
  <property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://xxxx:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value>
  </property>
  <property>
      <name>javax.jdo.option.ConnectionDriverName</name>
      <value>com.mysql.jdbc.Driver</value>
  </property>
  <property>
      <name>hive.metastore.schema.verification</name>
      <value>false</value>
  </property>
  <property>
    <name>datanucleus.schema.autoCreateAll</name>
    <value>true</value>
 </property>
 <property>
	<name>hive.server2.thrift.bind.host</name>
	<value>node3</value>
   </property>
</configuration>

④ 上传 mysql 的驱动包到 hive 的 lib 目录下

# 就是这个目录
/opt/software/hive-2.1.0/lib

⑤ 将 hive-2.1.0/jdbc/ 目录下的 hive-jdbc-2.1.0-standalone.jar 拷贝到 hive-2.1.0/lib/ 目录

cp /opt/software/hive-2.1.0/jdbc/hive-jdbc-2.1.0-standalone.jar /opt/software/hive-2.1.0/lib/

⑥ 在当前节点上配置 hive 的环境变量

# 修改环境配置文件
vim /etc/profile

# 添加以下内容
export HIVE_HOME=/opt/software/hive-2.1.0
export PATH=:$HIVE_HOME/bin:$PATH

Hive 启动

① 启动服务

# 启动 metastore 服务
nohup /opt/software/hive-2.1.0/bin/hive --service metastore &

# 启动验证:如果出现 RunJar 的进程,则启动成功
jps

② 使用 BeenClient 验证

# 启动 hiveserver2 , beeline 客户端需要使用 hiveserver2
nohup /opt/software/hive-2.1.0/bin/hive --service hiveserver2 &

# 启动 beeline
/opt/software/hive-2.1.0/bin/beeline

# 在命令行连接
!connect jdbc:hive2://node3:10000

在这里插入图片描述

Hive 安装常见的问题

建议启动的时候,先不要通过后台启动的方式,第一次启动难免会遇到问题,这样可以方便排查

# 启动 metastore 服务
/opt/software/hive-2.1.0/bin/hive --service metastore

# 启动如果没问题,则启动 serveice2 服务
/opt/software/hive-2.1.0/bin/hive --service hiveserver2

# 如果没问题

① 第一个问题:datanucleus.schema.autoCreateTables 未启用

javax.jdo.JDODataStoreException: Required table missing : “VERSION” in Catalog “” Schema “”. DataNucleus requires this table to perform its persistence operations. Either your MetaData is incorrect, or you need to enable “datanucleus.schema.autoCreateTables”
at org.datanucleus.api.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:553)

在这里插入图片描述

问题修复:

# 修改 hive-site.xml
cd /opt/software/hive-2.1.0/conf/
vim hive-site.xml

# 增加以下内容
<property>
    <name>datanucleus.readOnlyDatastore</name>
    <value>false</value>
</property>
<property>
    <name>datanucleus.fixedDatastore</name>
    <value>false</value>
</property>
<property>
    <name>datanucleus.schema.autoCreateSchema</name>
    <value>true</value>
</property>
<property>
    <name>datanucleus.schema.autoCreateTables</name>
    <value>true</value>
</property>
<property>
    <name>datanucleus.schema.autoCreateColumns</name>
    <value>true</value>
</property>

② 问题2:连接拒绝

Could not open client transport with JDBC Uri: jdbc:hive2://node3:10000: java.net.ConnectException: Connection refused (Connection refused) (state=08S01,code=0)

在这里插入图片描述

问题修复:

# 你在 hive-site.xml 中配置的用户名和密码没有在 mysql 中赋权
# 注意如果 mysql 中没有这个用户就创建这个用户

# 如果是 mysql 5.0 + 的版本,在 mysql 中执行以下 sql 
create user 用户名 identified by '密码';
grant all privileges on *.* to '用户名'@'%' identified by '密码'; 
flush privileges;

# 如果是 mysql 8.0 + 的版本,在 mysql 中执行以下 sql 
create user 用户名 identified by '密码';
grant all privileges ON hive.* TO '用户名'@'%';
flush privileges;

③ 问题3:用户权限不足

Error: 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 root (state=,code=0)

在这里插入图片描述

问题修复:

# 修改 hadoop 配置文件 etc/hadoop/core-site.xml,集群中的每个节点都需要修改,修改前记得先停止集群

# 进入 hadoop 配置文件目录
cd /opt/software/hadoop-2.7.5/etc/hadoop/

# 修改 core-site.xml
vim core-site.xml

# 增加以下内容,注意使用什么用户,此处就写什么用户
<!-- 如果是 test 用户,此处就应该为 hadoop.proxyuser.test.hosts,同下-->
<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>

标签:opt,DataGrip,hadoop,hive,Hive,2.1,连接,software
来源: https://blog.csdn.net/hell_oword/article/details/117876115

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有