首页 > 技术文章 > ubuntu安装hive

guochenchen 2020-03-29 10:51 原文

安装包(https://hive.apache.org/)

解压安装后配置环境变量

vi /etc/profile
export HIVE_HOME=/usr/local/hive
export PATH=$HIVE_HOME/bin
source /etc/profile

安装mysql

1.更新数据源
apt-get update
2.安装
apt-get install mysql-server
3.运行安全脚本
mysql_secure_installation
4.vi /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 127.0.0.1
service mysql restart
找到一个mysql-connector-java.jar放到hive/lib下
mysql -u -root -p
输入密码登陆mysql执行:
create database if not exists hive_metadata;
grant all privileges on hive_metadata.* to 'hive'@'%' identified by 'hive';
grant all privileges on hive_metadata.* to 'hive'@'localhost' identified by 'hive';
grant all privileges on hive_metadata.* to 'hive'@'spark1' identified by 'hive';
flush privileges;
use hive_metadata;

配置hive-site.xml

mv hive-default.xml.template  hive-site.xml 修改

<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://hadoop01:3306/hive_metadata?createDatabaseIfNotExist=true</value> 
</property>
<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value>
</property>
<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>hive</value> 
</property>
<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>hive</value>
</property>

连接mysql的配置
这个不是直接添加的 查找name 修改value

mv hive-env.sh.template hive-env.sh

vi /usr/local/hive/bin/hive-config.sh
export JAVA_HOME=/usr/java/java
export HIVE_HOME=/usr/local/hive
export HADOOP_HOME=/usr/local/hadoop

直接输入hive命令:进入完成

启动过程中的错误以及解决方案

问题一:Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)

解决方案:查看hadoop安装目录下share
/hadoop/common/lib内guava.jar版本 查看hive安装目录下lib内guava.jar的版本 如果两者不一致,删除版本低的,并拷贝高版本的 问题解决!
问题二:.Relative path in absolute URI: ${system:java.io.tmpdir
%7D/$%7Bsystem:user.name%7D
解决方案:修改hive
-site.xml文件 <property> <name>hive.exec.local.scratchdir</name> <value>$HIVE_HOME/iotmp</value> <description>Local scratch space for Hive jobs</description> </property> <property> <name>hive.querylog.location</name> <value>$HIVE_HOME/iotmp</value> <description>Location of Hive run time structured log file</description> </property> <property> <name>hive.downloaded.resources.dir</name> <value>$HIVE_HOME/iotmp</value> <description>Temporary local directory for added resources in the remote file system.</description> </property> 问题三:Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
解决方案:schematool
-dbType mysql -initSchema

 

推荐阅读