安装前提
已安装并配置了Hadoop集群(单机或者全分布都行)
软件下载
Hive官网:https://hive.apache.org/index.html
Hive安装
配置环境变量
将下载的Hive包上传到机器中,解压到指定路径
编辑 /etc/profile,配置Hive的环境变量
export HIVE_HOME=/.../apache-hive-2.1.0-bin
export PATH=$PATH:$HIVE_HOME/bin
使环境配置生效:source /etc/profile
修改hive-env.sh
因为 Hive 使用了 Hadoop, 需要在 hive-env.sh 文件中指定 Hadoop 安装路径:
同时也要修改其中JAVA_HOME的路径
export JAVA_HOME=/usr/java/jdk-1.8.0_101 ##Java路径
export HADOOP_HOME=/usr/hadoop-2.6.4 ##Hadoop安装路径
export HIVE_HOME=/usr/hadoop-2.6.4/thirdparty/apache-hive-2.1.0-bin ##Hive安装路径
export HIVE_CONF_DIR=$HIVE_HOME/conf ##Hive配置文件路径
配置Hive
进入hive的conf目录:
cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml
cp hive-log4j2.properties.template hive-log4j2.properties
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties
修改hive-site.xml
对应<name/>,修改成如下<value/>值:
<property>
<name>hive.exec.scratchdir</name>
<value>/tmp/hive-${user.name}</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/${user.name}</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>
<property>
<name>hive.querylog.location</name>
<value>/tmp/${user.name}</value>
<description>Location of Hive run time structured log file</description>
</property>
<property>
<name>hive.server2.logging.operation.log.location</name>
<value>/tmp/${user.name}/operation_logs</value>
<description>Top level directory where operation logs are stored if logging functionality is enabled</description>
</property>
配置Hive Metastore
默认情况下, Hive的元数据保存在了内嵌的 derby 数据库里, 但一般情况下生产环境使用 MySQL 来存放 Hive 元数据。
将 mysql-connector-java-5.1.40-bin.jar 放入 $HIVE_HOME/lib 下。
hive-site.xml 中配置 MySQL 数据库连接信息。
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false</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>
为Hive创建HDFS目录
在 Hive 中创建表之前需要使用以下 HDFS 命令创建 /tmp 和 /user/hive/warehouse (hive-site.xml 配置文件中属性项 hive.metastore.warehouse.dir 的默认值) 目录并给它们赋写权限。
start-dfs.sh
hdfs dfs -mkdir /tmp
hdfs dfs -mkdir -p /usr/hive/warehouse
hdfs dfs -chmod g+w /tmp
hdfs dfs -chmod g+w /usr/hive/warehouse
mysql创建用户hive
$ mysql -u root -p
mysql> CREATE USER ‘hive‘@‘localhost‘ IDENTIFIED BY "hive";
mysql> grant all privileges on *.* to [email protected] identified by ‘hive‘;
运行Hive
在命令行运行 hive 命令时必须保证 HDFS 已经启动。可以使用 start-dfs.sh 来启动 HDFS。
从 Hive 2.1 版本开始, 我们需要先运行 schematool 命令来执行初始化操作。
schematool -dbType mysql -initSchema
要使用 Hive CLI(Hive command line interface), 可以在终端输入:hive
启动信息如下:
测试:
使用 show tables 来显示所有的表:
注意
如果配置了MySQL作为元数据存储,启动Hive前要先启动MySQL数据库服务
原文地址:https://www.cnblogs.com/wbyixx/p/10992475.html