概述
前言
安装过程中遇到的问题从以下博客学习而得,现对其进行整理
在Hadoop1.2.1分布式集群环境下安装hive0.12
CentOS下Hive2.0.0单机模式安装详解
CentOS下Hive2.0.0集群模式安装详解
解决Hive installation issues: Hive metastore database is not initialized
hive启动报错 java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7B
1.准备环境
java 1.7以上
hadoop版本参见hive官网的支持版本号,并启动hadoop集群。
2.下载、解压hive安装包
Hive官网地址: http://hive.apache.org/
下载安装包后用tar -xzvf命令解压,并用mv对文件夹重命名为hive
3.配置环境变量
vim /etc/profile,加入下面几行
HIVE_HOME=/home/hive
CLASSPATH=$CLASSPATH:$HIVE_HOME/lib
PATH=$PATH:$HIVE_HOME/bin
export HIVE_HOME CLASSPATH PATH
保存后使用命令:source /etc/profile使环境变量立即生效
4. 创建hive-env.sh、hive-site.xml文件
进入hive/conf根据各template创建这两个文件
4.1修改hive-env.sh文件
HADOOP_HOME=/home/hadoop
4.2修改hive-site.xml文件
此处需要修改的部分2.1.0版本都不用修改,低版本可能需要修改
<value>auth</auth>修改为<value>auth</value>
把hive.metastore.schema.verification=true,修改为 hive.metastore.schema.verification=false
至此hive的相关配置工作完成。
5.MySQL
5.1安装MySQL
Hive默认使用derby数据库存储元数据,但是该数据库不适用于生产环境,这边使用MySQL作为元数据的存储数据库。
所以需要先安装好MySQL
。
安装过程使用sudo apt-get install mysql-server mysql-client命令安装即可,但是注意如果出现Encountered a section with no Package: header错误时,使用如下命令解决:
sudo rm /var/lib/apt/lists/* -vf
sudo apt-get update
安装MySQL过程中会为root用户设置密码,安装完毕后输入mysql -u root -p以及密码启动MySQL来创建数据库用户5.2创建MySQL用户
create user 'hive' identified by 'hive';
grant all privileges on *.* to 'hive' with grant option;
flush privileges;
create database hive;
5.3拷贝MySQL驱动文件
下载地址:http://dev.mysql.com/downloads/connector/j/ ,解压后拷贝其中的mysql-connector-java-5.1.39-bin.jar
到hive的lib文件夹下。
6.修改hive-site.xml文件
<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>
7.初始化数据库
在使用hive或者hive --service cli来运行之前需要初始化数据库,如果在初始化之前已经运行了上述命令并且失败,则需要删除产生的metastore_db文件
使用命令schematool -initSchema -dbType mysql初始化mysql数据库
出现以下几行说明初始化成功:
Starting metastore schema initialization to 2.1.0
Initialization script hive-schema-2.1.0.derby.sql
Initialization script completed
schemaTool completed
8.启动hive
在使用hive或者hive --service cli运行hive时出现java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D错误
需要修改hive-site.xml的以下部分
<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}/<username> 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>
然后即可正常运行。
9.测试
使用命令:
show tables;
create table test1(id int,name string);
select * from test1;
drop table test1;
来测试HiveQL是否能使用。
最后
以上就是眯眯眼红酒为你收集整理的Ubuntu系统下配置Hadoop2.7.1+Hive2.1.0的全部内容,希望文章能够帮你解决Ubuntu系统下配置Hadoop2.7.1+Hive2.1.0所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复