HIVE安装配置

it2022-05-05  139

Hive简介

Hive 基本介绍 Hive 实现机制 Hive 数据模型 Hive 如何转换成MapReduce Hive 与其他数据库的区别 以上详见:https://chu888chu888.gitbooks.io/hadoopstudy/content/Content/8/chapter8.html

Hive 和 Hbase 的区别 详见:http://www.cnblogs.com/justinzhang/p/4273470.html


Hive环境模式

内嵌模式 将元数据保存在本地内嵌的 Derby 数据库中,这是使用 Hive 最简单的方式。但是这种方式缺点也比较明显,因为一个内嵌的 Derby 数据库每次只能访问一个数据文件,这也就意味着它不支持多会话连接。

本地模式 这种模式是将元数据保存在本地独立的数据库中(一般是 MySQL),这用就可以支持多会话和多用户连接了。

远程模式 此模式应用于 Hive 客户端较多的情况。把 MySQL 数据库独立出来,将元数据保存在远端独立的 MySQL 服务中,避免了在每个客户端都安装 MySQL 服务从而造成冗余浪费的情况。


下载安装HIVE

Hive 是基于 Hadoop 文件系统之上的数据仓库。因此,安装Hive之前必须确保 Hadoop 已经成功安装。

本次教程,使用hive2.0.1版本,下载地址:http://mirrors.hust.edu.cn/apache/hive/hive-2.0.1/ 下载apache-hive-2.0.1-bin.tar.gz,解压至/data/hive

tar -zxvf apache-hive-2.0.1-bin.tar.gz -C /data cd /data mv apache-hive-2.0.1-bin hive

配置环境变量

# 编辑文件 vim /etc/profile # 文件末尾添加 export HIVE_HOME=/data/hive export PATH=$HIVE_HOME/bin:$HIVE_HOME/conf:$PATH # 使修改生效 source /etc/profile

内嵌模式

(1)修改 Hive 配置文件

Hive工程的配置文件为 hive-site.xml,默认情况下,该文件并不存在,需要拷贝它的模版来实现。

cd /data/hive/conf cp hive-default.xml.template hive-site.xml

hive-site.xml的主要配置有

<property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> <description>location of default database for the warehouse</description> </property> .. <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> hive.metastore.warehouse.dir 该参数指定了 Hive 的数据存储目录,默认位置在 HDFS 上面的 /user/hive/warehouse 路径下。hive.exec.scratchdir 该参数指定了 Hive 的数据临时文件目录,默认位置为 HDFS 上面的 /tmp/hive 路径下。

hive-site.xml文件内容不需修改,文件配置详解移步:https://my.oschina.net/HIJAY/blog/503842?p=1

接下来我们还要修改Hive目录下的/conf/hive-env.sh 文件,该文件默认也不存在,同样是拷贝它的模版来修改:

cd /data/hive/conf cp hive-env.sh.template hive-env.sh vim hive-env.sh # 做如下修改 export HADOOP_HEAPSIZE=1024 # Set HADOOP_HOME to point to a specific hadoop install directory HADOOP_HOME=/data/hadoop # Hive Configuration Directory can be controlled by: export HIVE_CONF_DIR=/data/hive/conf # Folder containing extra ibraries required for hive compilation/execution can be controlled by: export HIVE_AUX_JARS_PATH=/data/hive/lib

(2)创建必要目录

前面我们看到 hive-site.xml 文件中有两个重要的路径【/user/hive/warehouse】与【/tmp/hive】。 切换到hadoop 用户下查看HDFS是否有这些路径,如果没有,就新建目录,并且给它们赋予用户写权限。

$ hadoop dfs -mkdir /user/hive/warehouse $ hadoop dfs -mkdir /tmp/hive $ hadoop dfs -chmod 777 /user/hive/warehouse $ hadoop dfs -chmod 777 /tmp/hive

如果你遇到 no such file or directory 类似的错误,就一步一步新建目录,例如:

$ hadoop dfs -mkdir /tmp $ hadoop dfs -mkdir /tmp/hive

然后通过相关命令检查是否新建成功,比如【hdfs dfs -lsr /】。

(3)运行 Hive

前面我们已经提到过,内嵌模式使用默认配置和 Derby 数据库,所以无需其它特别修改,先 ./start-all.sh 启动 Hadoop, 然后直接运行 hive:

[root@iZwz9b62gfdv0s2e67yo8kZ /]$ cd /data/hive/bin/ [root@iZwz9b62gfdv0s2e67yo8kZ bin]$ hive

你很可能会遇到与【${system:java.io.tmpdir}】有关的这个错误:

解决方法是修改 hive-site.xml 中所有包含 ${system:java.io.tmpdir} 字段的 value。 可自己新建一个目录来替换它,例如 /data/hive/iotmp,同时赋予相关写权限。

修改后再次启动 hive,可能又遇到数据库未初始化的错误:

执行以下命令初始化即可

cd /data/hive/bin ./schematool -initSchema -dbType derby

继续报错:

Initialization script hive-schema-2.0.0.derby.sql Error: FUNCTION 'NUCLEUS_ASCII' already exists. (state=X0Y68,code=30000) org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !! *** schemaTool failed ***

这个function的构建是数据库初始化的一部分,既然存在了,就直接去hive-schema-2.0.0-derby.sql里面注释掉【CREATE FUNCTION】的相关语句好了。

注释后再次启动hive,就ok了


本地模式

(1)安装 MySQL 成功安装mysql后启动服务,并创建名为hive的数据库,再创建一个hive用户为HIVE所用。 mysql安装方法详见:MySQL安装及卸载

MySQL安装后,还需要下载一个MySQL的JDBC驱动包。 这里使用的是mysql-connector-java-5.1.40-bin.jar,需将其复制到$HIVE_HOME/lib目录下。

$ tar -zxvf mysql-connector-java-5.1.40.tar.gz $ cd mysql-connector-java-5.1.40 $ mv mysql-connector-java-5.1.40-bin.jar /data/hive/lib/

(2)修改 hive-site.xml 配置文件

最后,依然是修改 $HIVE_HOME/conf 下的 hive-site.xml 文件,把默认的 Derby 修改为 MySQL :

<property> <name>javax.jdo.option.ConnectionURL</name> //所连接的MySQL数据库实例 <value>jdbc:mysql://localhost:3306/hive</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> //连接的MySQL数据库驱动 <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> //连接的MySQL数据库用户名 <value>hive</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> //连接的MySQL数据库密码 <value>hive</value> </property>

(3)启动 Hive

启动 Hive 的方式同内嵌模式一样,需先初始化数据库.

cd /data/hive/bin ./schematool -initSchema -dbType mysql

然后运行HIVE,可能发现运行不成功,并一直收到警告

修改hive-site.xml文件的javax.jdo.option.ConnectionURL选项即可

<property> <name>javax.jdo.option.ConnectionURL</name> //所连接的MySQL数据库实例 <value>jdbc:mysql://localhost:3306/hive?characterEncoding=utf8&useSSL=false</value> </property>

再次启动HIVE,仍然报错

经查,再次修改javax.jdo.option.ConnectionURL选项,然后启动HIVE,发现启动成功。

<property> <name>javax.jdo.option.ConnectionURL</name> //所连接的MySQL数据库实例 <value>jdbc:mysql://localhost:3306/hive?characterEncoding=utf8&useSSL=false</value> </property>

链接相关

大数据进阶计划 http://wangxin123.com/2017/02/18/大数据进阶计划/

Hive下载地址 http://mirrors.hust.edu.cn/apache/hive/hive-2.0.1/

转载于:https://www.cnblogs.com/wangxin37/p/6501493.html

相关资源:DirectX修复工具V4.0增强版

最新回复(0)