安装hive 之前,要保证hadoop安装成功,本教程对应的是hadoop版本为2.6.4,hive 版本为 2.1.1,默认情况下,Hive元数据保存在内嵌的 Derby 数据库中,只能允许一个会话连接,只适合简单的测试。为了支持多用户多会话,则需要一个独立的元数据库,我们使用 MySQL 作为元数据库
下载Hive
下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/
安装hive
1.上传在/opt/soft目录下
tar -xzvf apache-hive-2.1.1-bin.tar.gz ##解压
2.配置系统环境变量
修改 /etc/profile 文件 vi /etc/profile 来修改(root用户操作):
设置 Hive环境变量
# Hive environment
export HIVE_HOME=/opt/soft/apache-hive-2.1.1-bin
export PATH=$HIVE_HOME/bin:$HIVE_HOME/conf:$PATH
使环境变量生效:
source /etc/profile
3.修改Hive的配置文件
到hive 配置文件目录中
cd /opt/soft/hive-2.1.1-bin/conf
把初始化的文件 复制一份出来 并且改名
cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml
4.修改hive-env.sh
export JAVA_HOME=/opt/soft/jdk1.7.0_79 ##Java路径
export HADOOP_HOME=/opt/soft/hadoop ##Hadoop安装路径
export HIVE_HOME=/opt/soft/hive-2.1.1-bin ##Hive安装路径
export HIVE_CONF_DIR=/opt/soft/hive-2.1.1-bin/conf ##Hive配置文件路径
在hdfs 中创建下面的目录 ,并且授权
hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -mkdir -p /user/hive/tmp
hdfs dfs -mkdir -p /user/hive/log
hdfs dfs -chmod -R 777 /user/hive/warehouse
hdfs dfs -chmod -R 777 /user/hive/tmp
hdfs dfs -chmod -R 777 /user/hive/log
5.修改hive-site.xml
<property>
<name>hive.exec.scratchdir</name>
<value>/user/hive/tmp</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>/user/hive/log</value>
</property>
*hive.metastore.warehouse.dir*
该参数指定了 Hive 的数据存储目录,默认位置在 HDFS 上面的 /user/hive/warehouse 路径下。
*hive.exec.scratchdir*
该参数指定了 Hive 的数据临时文件目录,默认位置为 HDFS 上面的 /tmp/hive 路径下。
需要在 hive-site.xml 文件中配置 MySQL 数据库连接信息。
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&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>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
*xml文件中&要转义:&*
6.创建tmp文件
mkdir /opt/soft/hive-2.1.1-bin/tmp
在配置文件 hive-site.xml 里面
把{system:java.io.tmpdir} 改成 /opt/soft/hive-2.1.1-bin/tmp/
把 {system:user.name} 改成 {user.name}
(vim下 / 表示搜索,后面跟你的关键词,比如搜索 hello,则为 /hello ,
再回车即可),你可以自己新建一个目录来替换它,
例如 /opt/soft/apache-hive-2.1.1-bin/iotmp
全局替换命令 先按Esc键 再同时按shift+:把以下替换命令粘贴按回车即可全局替换
%s#${system:java.io.tmpdir}#/opt/soft/apache-hive-2.1.1-bin/iotmp#g
7.配置jdbc驱动包
mysql的jdbc 驱动包下载地址:
下载完成后把mysql-connector-java-5.1.30-bin.jar 然后放入 $HIVE_HOME/lib 目录下
8.初始化hive
从 Hive 2.1 版本开始, 我们需要先运行 schematool 命令来执行初始化操作。
schematool -dbType mysql -initSchema
看到schemaTool completed 则初始化完成
检测hive 是否成功 直接在命令行输入hive即可
hive
补充1:
remote分开模式,客户端配置文件:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://b01:9083</value>
</property>
</configuration>
master运行hive –service metastore &起服务
slave运行hive验证
补充2:
Hive Thrift客户端:
master运行
nohup -service hiveserver2 &
slave运行
beeline
!connect jdbc:hive2://b0110000 root root