首页 > 技术文章 > Ubuntu16.04安装apache hive

effortday 2020-05-15 16:00 原文

 

 

0.常规配置操作可参照以下网址:

0.1 Ubuntu安装hive,并配置mysql作为元数据库http://dblab.xmu.edu.cn/blog/install-hive/

 

——————以下为学习笔记及错误记录,与常规操作略有差异,供参考———————

1.官网下载apache-hive-2.3.7-bin.tar.gz:https://mirror.bit.edu.cn/apache/hive/

2.移动到Ubuntu里的“下载”文件夹

 3.解压到指定路径/usr/local

4.配置环境变量(vim ~/.bashrc)

添加代码:

export HIVE_HOME=/usr/local/hive
export HCAT_HOME=$HIVE_HOME/hcatalog
export HIVE_CONF=$HIVE_HOME/conf
export JAVA_HOME=/usr/local/java/jdk1.8
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HIVE_HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

 (环境变量配置完整,否则后面执行start-dfs.sh会报错)

 保存后执行

5. 修改/usr/local/hive/conf下的hive-site.xm

----------------------------------------------------方式1---------------------------------------------------------------

(1)直接在conf下创建(touch)hive-site.xml文件,然后把以下内容粘贴进去

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
    <description>JDBC connect string for a JDBC metastore</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>hive</value>
    <description>username to use against metastore database</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>hive</value>
    <description>password to use against metastore database</description>
  </property>
</configuration>

 

----------------------------------------------------方式2---------------------------------------------------------------

进入hive/conf目录复制文件并编辑,命令如下:

 具体修改内容如下:

(1)搜索system:java.io.tmpdir,并修改为/usr/local/hive/tmp。(全文共4处,搜索命令为“/搜索内容”)

         搜索system:user.name全部替换为user.name。 (全文共3处)

(2)搜索javax.jdo.option.ConnectionURL,将其下边的value值修改为

         jdbc:mysql://localhost:3306/hive?characterEncoding=UTF-8&amp;createDatabaseIfNotExist=true

(3)搜索javax.jdo.option.ConnectionDriverName,将其下边的value值修改为com.mysql.jdbc.Driver

(4)搜索javax.jdo.option.ConnectionUserName,将其下边的value值修改为hive

(5)搜索javax.jdo.option.ConnectionPassword,将其下边的value值修改为hive

 (以上方式任选其一,方式1操作简单,方式2相对繁琐,完成后继续按下边的第6点操作)

6.保存后退出,创建hive用户

7.使用hive用户再在mysql中创建名为hive的数据库

(1) hadoop@joker-VirtualBox:~$ mysql -uhive -phive

(2) mysql> create database hive;

(3) mysql> exit

8.启动hive

 

 

_____________________________________________________________________________

常见错误:

1. 启动hive时出现如下图错误:

(1)java.lang.NoSuchMethodError :

         a. 系统找不到相关jar包

         b.同一类型的 jar 包有不同版本存在,系统无法决定使用哪一个

(2)com.google.common.base.Preconditions.checkArgument :guava.jar 包出错

(3)解决方法:

删除hive中低版本的guava-14.0.1.jar包,将hadoop中的guava-27.0-jre.jar复制到hive的lib目录下:

Hive中guava-14.0.1.jar的路径:/usr/local/hive/lib/guava-14.0.1.jar

Hadoop中guava-27.0-jre.jar的路径:/usr/local/hadoop/share/hadoop/common/lib/guava-27.0-jre.jar

2.  启动hive时出现如下图错误:

(1) 元数据库没有初始化

(2)解决方法:输入命令:schematool -dbType mysql -initSchema 后再执行hive

 

附:

虚拟机与真机之间共享粘贴板和拖放操作设置

1. 打开菜单中的 “设备” -> "安装增强功能" (后续按提示操作)

2. 开启共享粘贴板和拖放的双向功能

 3. 完成设置后还无法双向操作的话,使用reboot命令重启后即可

推荐阅读