安装hive 3.1.2版本

前提:hadoop 3.2.2

jdk 1.8.0

mysql: 5.7

下载

wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz --no-check-certificate

解压

tar -xzvf apache-hive-3.1.2-bin.tar.gz -C ../app

软连接

ln -s apache-hive-3.1.2-bin/ hive

配置环境变量

cd
vim .bashrc
export HIVE_HOME=/home/hadoop/app/hive
export PATH=${HIVE_HOME}/bin:${HIVE_HOME}/sbin:$PATH
source .bashrc

mysql jar包

hive 默认是derby数据库,不支持远程,也不支持多用户,所以改为mysql连接方式

先把mysql驱动包丢到lib目录下

cp mysql-connector-java-5.1.47.jar $HIVE_HOME/lib

mysql 新增用户及数据库

# 创建数据库 maggiecn
create database maggiecn;
# 将所有权限赋予给该数据库,并以suju用户名登录,登录密码newpassword
# % 代表 任意的客户端的IP地址 都被允许使用suju用户来远程访问
grant all privileges on maggiecn.* to suju@'%' identified by 'newpassword';
# 更新权限
flush privileges;

修改配置文件 hive-env.sh

cd $HIVE_HOME/conf
mv hive-env.sh.template hive-env.sh
vim hive-env.sh
HADOOP_HOME=/home/hadoop/app/hadoop
export HIVE_CONF_DIR=/home/hadoop/app/hive/conf
export HIVE_AUX_JARS_PATH=/home/hadoop/app/hive/lib

修改配置文件 hive-site.xml

mysql 默认配的是derby数据库,derby是单用户连接的,不方便使用,改为mysql数据库存储元数据

cp hive-default.xml.template  hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://主机:3306/数据库?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>password</value></property><property><name>hive.cli.print.header</name><value>true</value></property><property><name>hive.cli.print.current.db</name><value>true</value></property><property><name>hive.metastore.uris</name><value>thrift://ip:9083</value></property><property><name>hive.metastore.warehouse.dir</name><value>/usr/hive/warehouse</value></property><property><name>hive.server2.thrift.bind.host</name><value>ip</value></property>
<!-- 指定 hiveserver2 连接的端口号 默认10000 --><property><name>hive.server2.thrift.port</name><value>10000</value><description>Port number of HiveServer2 Thrift interface when hive.server2.transport.mode is 'binary'.</description></property>
</configuration>

初始化数据库

schematool -dbType mysql -initSchema

hadoop 3.2.2 lib jar 包跟hive的冲突

  1. log4j-slf4j-impl-2.10.0.jar重复

    cd $HIVE_HOME/lib
    rm log4j-slf4j-impl-2.10.0.jar
    ## 或者cp到其他位置,备份防止删错
    
  2. guava.jar 版本冲突

    hadoop版本guava是27的,hive的是19,所以删除hive目录下,把hadoop目录下的粘贴过来。

    备注:删除低版本,复制高版本。

    cd $HIVE_HOME/lib
    rm guava-19.0.jar
    cp $HADOOP_HOME/share/hadoop/common/lib/guava-27.0-jre.jar $HIVE_HOME/lib/
    

修改hdfs 上tmp 权限

不修改的话,hive metastore 会报错

hdfs dfs -chmod -R 777 /tmp

启动

nohup hive --service metastore >> ./nohup.out 2>&1 &
nohup hive --service hiveserver2 >> ./nohup.out 2>&1 &

在linux上操作可以以下操作,进入,创建数据库或者创建数据等

cd $HIVE_HOME/bin
./hive

dbeaver 连接hive

  • linux 有的时候敲sql还是不方便,所以还是得有个windows操作的工具。

  • dbeaver 这款个人认为比navicat更强大,可以连接的数据库类型更多。下载免费的版本就行,然后新建一个连接hive数据库。

点击编辑驱动

1. 原始的驱动删除,sz 下载linux以下两个文件

hadoop-common-3.2.2.jar

hive-jdbc-3.1.2-standalone.jar

sz $HADOOP_HOME/share/hadoop/common/hadoop-common-3.2.2.jar
sz $HIVE_HOME/jdbc/hive-jdbc-3.1.2-standalone.jar

用户名密码不设置也可以连接

2. 配置core-site.xml 重启hadoop,hive

将“xxx”替换成自己的用户名。

<property><name>hadoop.proxyuser.xxx.hosts</name><value>*</value>
</property>
<property><name>hadoop.proxyuser.xxx.groups</name><value>*</value>
</property>

重启hadoop,先stop-all.sh,再start-all.sh

Hive 报错问题

1. SLF4J: Class path contains multiple SLF4J bindings.

与hadoop中的log4j重复,log4j-slf4j-impl-2.10.0.jar重复

cd $HIVE_HOME/lib
rm log4j-slf4j-impl-2.10.0.jar

2. Exception in thread “main” java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7fHvhcZ8-1637110689766)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211116140121888.png)]

原因:

hadoop和hive的两个guava.jar版本不一致
两个位置分别位于下面两个目录:

  • /usr/local/hive/lib/
  • /usr/local/hadoop/share/hadoop/common/lib/
解决办法:

删除低版本的那个,将高版本的复制到低版本目录下

cd $HADOOP_HOME/share/hadoop/common/lib
find guava*
##显示guava-27.0-jre.jar
cd $HIVE_HOME/lib
find guava*
##显示guava-19.0.jar, 所以删hive路径下的,复制hadoop路径下的,hadoop路径下的软连接也可以
rm guava-19.0.jar
cp $HADOOP_HOME/share/hadoop/common/lib/guava-27.0-jre.jar $HIVE_HOME/lib/

3. Exception in thread “main” [com.ctc.wstx.exc.WstxLazyException] com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character ‘<’ (code 60) (expected a name start character)

hive-site.xml 文件中有非法字符,后面提示我是20行

看了一下是我mysql 密码中有&# 字符,重新设置了mysql密码

alter user '用户名'@'%' identified by 'newpassword';
flush privileges;

4. 错误:FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

hive (default)> create database hive1;
FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

解决办法:
(1) 初始化数据库
[hadoop@hadoop001 ~]$ schematool -dbType mysql -initSchema
(2) hive-site 配置文件有问题

Hive 3.1.2Linux CentOs 安装,踩坑 Dbeaver 连接Hive相关推荐

  1. Android Studio安装踩坑

    title: Android Studio安装踩坑 date: 2018-09-07 19:31:32 updated: tags: [Android,Android Studio,坑] descri ...

  2. anaconda+cuda+cudnn+pytorch安装踩坑大全

    windows环境下anaconda+pycharm+cuda+cudnn+pytorch安装踩坑大全 anaconda安装 pycharm安装 cuda cudnn pytorch gym环境安装 ...

  3. windos下 elasticksearch7.13安装踩坑记

    windos下 elasticksearch7.13安装踩坑记 一,环境配置 环境要求 java jdk16下载安装 elasticksearch7.13下载安装 遇到的问题 (待更新) 一,环境配置 ...

  4. Win 10 + Ubuntu 18.04 双系统安装与深度学习环境配置安装踩坑实录(上篇)

    Win 10 + Ubuntu 18.04 双系统安装与深度学习环境配置安装踩坑实录(上篇) 折腾了两三天总算顺利在电脑上完成了装x的双系统安装,一路走来还比较顺利,主要在ubuntu的显卡设置上躺了 ...

  5. Windows环境下PyTorch_geometric安装踩坑

    Windows环境下PyTorch_geometric安装踩坑 pytorch geometric在windows环境下安装非常恶心,莫名其妙各种报错.本帖针对GCC的编译error提供解决方案. 一 ...

  6. 坑!mongodb安装踩坑坑坑坑!

    MongoDB安装踩坑坑坑坑! ​ 鉴于网上有很多手把手的教程,我就不ctrl cv了,主要说一下我参考了哪些教程以及踩的坑 ​ 进官网进了半天进不去,爬了个楼梯才上去 ​ 进去之后,迅雷没会员根本下 ...

  7. YOLO V5 CPU版本安装踩坑记录

    YOLO V5 CPU版本安装踩坑记录 单纯的记录下yolov5进行检测遇到了点问题的解决方法 安装过程: 准备: 1,下载YOLOv5 github项目:https://github.com/ult ...

  8. nnUNet安装踩坑记录

    nnUNet安装踩坑记录 论文地址:https://arxiv.org/abs/1809.10486 https://github.com/MIC-DKFZ/nnUNet 更新于2020/12/04: ...

  9. pyqt5安装踩坑记录

    pyqt5安装踩坑记录

最新文章

  1. python参数类型限定_python限定方法参数类型、返回值类型、变量类型等|python3教程|python入门|python教程...
  2. “我的父老乡亲”公益征文活动 ——讲述平凡故事,记录小的伟大
  3. 事件标志组的等待与通知
  4. dblclick,默认全选屏蔽
  5. linux shell if判断字符串是否包含某字符串
  6. android锁屏显示应用程序,今日应用:微软又给 Android 做了一款锁屏应用
  7. 使用post访问不到接口_Postman工具使用说明
  8. 解除单个文件的与svn服务器的关联
  9. JAVA_SE基础——24.面向对象的内存分析
  10. Redis(案例一:注册登录-图形验证码+谷歌开源Kaptcha)
  11. [转]xargs详解
  12. 安卓手机运行ios教程_安卓手机充电提示音教程
  13. lr_save_var() 截取任意字符串长度,以参数形式输出(参数转变量)
  14. ELK 收集 Tomcat 日志
  15. 二进制、十进制、八进制、十六进制转换对照表
  16. D-Link DWA-160 wifi抓包
  17. OpenSIPS实战(一):OpenSIPS使用简介
  18. 如何建立风险分析模型
  19. 电脑自动开机+自动输入密码
  20. python ---图片转为卡通图

热门文章

  1. unity虚拟仿真PC端需要掌握的技术
  2. 第十届大学生服务外包创新比赛心得和感悟
  3. python文件的用法_关于.py文件的详细介绍
  4. XSS挑战之旅---游戏通关攻略
  5. 阿里云申请域名过程记录
  6. 用计算机遥感技术图片,遥感简答题
  7. 降低CSS特异性的策略
  8. 互联网晚报 | 1月23日 星期日 | 抖音推出PC版客户端;春节档预售票房破亿;岚图FREE第10000辆下线...
  9. 亲身试验力荐:番茄工作法
  10. 2×3卡方检验prism_卡方检验2python代码实现