HIve安装踩坑手册

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: HIve安装踩坑手册

一、安装环境


JDK 1.8


二、安装Hadoop


1、下载hadoop


http://mirror.bit.edu.cn/apache/hadoop/ 选择合适的版本


下载hadoop


wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz


执行 进行解压,为了方便使用吗,mv进行修改名称

1. tar -xzvf hadoop-3.3.0.tar.gz 
2. mv hadoop-3.3.0.tar.gz  hadoop


2、修改环境变量

将hadoop环境信息写入环境变量中

vim /etc/profile
export HADOOP_HOME=/opt/hadoop
export PATH=$HADOOP_HOME/bin:$PATH


执行source etc/profile使其生效

3、修改配置文件

修改hadoop-env.sh文件,vim etc/hadoop/hadoop-env.sh修改JAVA_HOME信息

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64


执行hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar grep input output 'dfs[a-z]',hadoop自带的例子,验证hadoop是否安装成功


三、安装hive


1、下载hive


wget http://mirror.bit.edu.cn/apache/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz


解压tar -zxvf apache-hive-3.1.2-bin.tar.gz


修改名称 mv apache-hive-3.1.2-bin hive


2、修改环境变量


vim /etc/profile

export HIVE_HOME=/opt/hive
export PATH=$MAVEN_HOME/bin:$HIVE_HOME/bin:$HADOOP_HOME/bin:$PATH


source etc/profile

3、修改hivesite 配置

<!-- WARNING!!! This file is auto generated  for   documentation purposes ONLY! -->
<!-- WARNING!!! Any changes you make to  this   file will be ignored by Hive.   -->
<!-- WARNING!!! You must make your changes in hive-site.xml instead.         -->
<!-- Hive Execution Parameters -->
       <!-- 以下配置原配置都有,搜索之后进行修改或者删除后在统一位置添加 -->
   <property>
       <name>javax.jdo.option.ConnectionUserName</name>用户名
       <value>root</value>
   </property>
   <property>
       <name>javax.jdo.option.ConnectionPassword</name>密码
       <value> 123456 </value>
   </property>
  <property>
       <name>javax.jdo.option.ConnectionURL</name>mysql
       <value>jdbc:mysql: //127.0.0.1:3306/hive</value>
   </property>
   <property>
       <name>javax.jdo.option.ConnectionDriverName</name>mysql驱动程序
       <value>com.mysql.jdbc.Driver</value>
   </property>
<property>
   <name>hive.exec.script.wrapper</name>
   <value/>
   <description/>
</property>

复制mysql的驱动程序到hive/lib下面,然后进入/hive/bin 目录执行

schematool -dbType mysql -initSchema


4、验证是否安装成功

hive --version查看当前版本

hive 看是否进入hive命令操作行,进去的话说明成功


d930e8113edc894d264fb883fb51a61f.png

四、错误记录


1、配置文件中存在异常字符


根据指定的

26b7310379bfe35aa53f9566f71896a6.png

Logging initialized using configuration in jar:file:/opt/hive/lib/hive-common- 3.1 . 2 .jar!/hive-log4j2.properties Async:  true
Exception in thread  "main"   java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D
     at org.apache.hadoop.fs.Path.initialize(Path.java: 263 )
     at org.apache.hadoop.fs.Path.<init>(Path.java: 221 )
     at org.apache.hadoop.hive.ql.session.SessionState.createSessionDirs(SessionState.java: 710 )
     at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java: 627 )
     at org.apache.hadoop.hive.ql.session.SessionState.beginStart(SessionState.java: 591 )
     at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java: 747 )
     at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java: 683 )
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 62 )
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43 )
     at java.lang.reflect.Method.invoke(Method.java: 498 )
     at org.apache.hadoop.util.RunJar.run(RunJar.java: 323 )
     at org.apache.hadoop.util.RunJar.main(RunJar.java: 236 )
Caused by: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D
     at java.net.URI.checkPath(URI.java: 1823 )
     at java.net.URI.<init>(URI.java: 745 )
     at org.apache.hadoop.fs.Path.initialize(Path.java: 260 )
     ...  12   more


解决方式:

找到指定的配置文件行数,将描述进行删除

 <property>
    <name>hive.exec.scratchdir</name>
    <value>/tmp/hive</value>
    <description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/&lt;username&gt; is created, with ${hive.scratch.dir.permission}.</description>
  </property>
  <property>
    <name>hive.exec.local.scratchdir</name>
    <value>/tmp/hive/local</value>
    <description>Local scratch space for Hive jobs</description>
  </property>
  <property>
    <name>hive.downloaded.resources.dir</name>
    <value>/tmp/hive/resources</value>
    <description>Temporary local directory for added resources in the remote file system.</description>
  </property>

二、guava版本不一致

a1958de21b159f7bc35d5f98a44c2e39.png

Exception in thread  "main"   java.lang.RuntimeException: com.ctc.wstx.exc.WstxParsingException: Illegal character entity: expansion character (code  0x8
  at [row,col,system-id]: [ 3215 , 96 , "file:/opt/hive/conf/hive-site.xml" ]
     at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java: 3051 )
     at org.apache.hadoop.conf.Configuration.loadResources(Configuration.java: 3000 )
     at org.apache.hadoop.conf.Configuration.getProps(Configuration.java: 2875 )
     at org.apache.hadoop.conf.Configuration.get(Configuration.java: 1484 )
     at org.apache.hadoop.hive.conf.HiveConf.getVar(HiveConf.java: 4996 )
     at org.apache.hadoop.hive.conf.HiveConf.getVar(HiveConf.java: 5069 )
     at org.apache.hadoop.hive.conf.HiveConf.initialize(HiveConf.java: 5156 )
     at org.apache.hadoop.hive.conf.HiveConf.<init>(HiveConf.java: 5104 )
     at org.apache.hive.beeline.HiveSchemaTool.<init>(HiveSchemaTool.java: 96 )
     at org.apache.hive.beeline.HiveSchemaTool.main(HiveSchemaTool.java: 1473 )
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 62 )
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43 )
     at java.lang.reflect.Method.invoke(Method.java: 498 )
     at org.apache.hadoop.util.RunJar.run(RunJar.java: 323 )
     at org.apache.hadoop.util.RunJar.main(RunJar.java: 236 )
Caused by: com.ctc.wstx.exc.WstxParsingException: Illegal character entity: expansion character (code  0x8
  at [row,col,system-id]: [ 3215 , 96 , "file:/opt/hive/conf/hive-site.xml" ]
     at com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java: 621 )
     at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java: 491 )
     at com.ctc.wstx.sr.StreamScanner.reportIllegalChar(StreamScanner.java: 2456 )
     at com.ctc.wstx.sr.StreamScanner.validateChar(StreamScanner.java: 2403 )
     at com.ctc.wstx.sr.StreamScanner.resolveCharEnt(StreamScanner.java: 2369 )
     at com.ctc.wstx.sr.StreamScanner.fullyResolveEntity(StreamScanner.java: 1515 )
     at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java: 2828 )
     at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java: 1123 )
     at org.apache.hadoop.conf.Configuration$Parser.parseNext(Configuration.java: 3347 )
     at org.apache.hadoop.conf.Configuration$Parser.parse(Configuration.java: 3141 )
     at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java: 3034 )
     ...  15   more


解决办法:


1、com.google.common.base.Preconditions.checkArgument这个类所在的jar包为:guava.jar


2、hadoop-3.2.1(路径:hadoop\share\hadoop\common\lib)中该jar包为  guava-27.0-jre.jar;而hive-3.1.2(路径:hive/lib)中该jar包为guava-19.0.1.jar


3、将jar包变成一致的版本:删除hive中低版本jar包,将hadoop中高版本的复制到hive的lib中。


再次启动问题得到解决!

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
SQL 关系型数据库 MySQL
Mac下安装hive
Mac下安装hive
441 0
|
2月前
|
SQL 分布式计算 Hadoop
Hadoop-12-Hive 基本介绍 下载安装配置 MariaDB安装 3台云服务Hadoop集群 架构图 对比SQL HQL
Hadoop-12-Hive 基本介绍 下载安装配置 MariaDB安装 3台云服务Hadoop集群 架构图 对比SQL HQL
79 3
|
7月前
|
SQL HIVE
|
5月前
|
SQL 分布式计算 关系型数据库
Hadoop-12-Hive 基本介绍 下载安装配置 MariaDB安装 3台云服务Hadoop集群 架构图 对比SQL HQL
Hadoop-12-Hive 基本介绍 下载安装配置 MariaDB安装 3台云服务Hadoop集群 架构图 对比SQL HQL
77 2
|
6月前
|
SQL 分布式计算 关系型数据库
分布式系统详解 -- Hive1.2.1 安装
分布式系统详解 -- Hive1.2.1 安装
71 1
|
7月前
|
SQL 分布式计算 关系型数据库
Ubuntu上安装MySQL以及hive
Ubuntu上安装MySQL以及hive
|
SQL 分布式计算 Ubuntu
基于Hadoop的数据仓库Hive安装
基于Hadoop的数据仓库Hive安装
445 0
|
SQL 存储 分布式计算
Hive学习---1、Hive入门、Hive 安装(二)
Hive学习---1、Hive入门、Hive 安装(二)
|
7月前
|
SQL 分布式计算 Java
Apache Hudi与Hive集成手册
Apache Hudi与Hive集成手册
398 0
|
7月前
|
SQL 分布式计算 Hadoop
Hadoop学习笔记(HDP)-Part.15 安装HIVE
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
218 1
Hadoop学习笔记(HDP)-Part.15 安装HIVE