前言
安装Apache Hive前提是要先安装hadoop集群,并且hive只需要在hadoop的namenode节点集群里安装即可,安装前需保证Hadoop已启(动文中用到了hadoop的hdfs命令)。
关于如何安装Hadoop集群请参照:CentOS7搭建Hadoop2.8.0集群及基础操作与测试
下载Apache Hadoop
下载
地址:http://hive.apache.org/downloads.html
wget http://mirrors.hust.edu.cn/apache/hive/hive-2.1.1/apache-hive-2.1.1-bin.tar.gz
解压
tar -zxvf apache-hive-2.1.1-bin.tar.gz
移动文件夹
mv apache-hive-2.1.1-bin /usr/local/hadoop/
配置环境变量
立即生效
source ~/.bashrc
修改配置
配置hive-site.xml
进入目录$HIVE_HOME/conf,将hive-default.xml.template文件复制一份并改名为hive-site.xml
#进入hive配置文件目录$HIVE_HOME/conf
cd $HIVE_HOME/conf
#拷贝并重命名
cp hive-default.xml.template hive-site.xml
因为
所以要让hadoop新建/user/hive/warehouse目录,执行命令:
$HADOOP_HOME/bin/hadoop fs -mkdir -p /user/hive/warehouse
给刚才新建的目录赋予读写权限,执行命令:
$HADOOP_HOME/bin/hadoop fs -chmod 777 /user/hive/warehouse
让hadoop新建/tmp/hive/目录,执行命令:
$HADOOP_HOME/bin/hadoop fs -mkdir -p /tmp/hive/
给刚才新建的目录赋予读写权限,执行命令:
$HADOOP_HOME/bin/hadoop fs -chmod 777 /tmp/hive
检查hdfs目录是否创建成功
检查/user/hive/warehouse目录是否创建成功,执行命令:
$HADOOP_HOME/bin/hadoop fs -ls /user/hive/
如图:
检查/tmp/hive是否创建成功,执行命令:
$HADOOP_HOME/bin/hadoop fs -ls /tmp/
如图:
修改hive-site.xml中的临时目录
将hive-site.xml文件中的${system:java.io.tmpdir}替换为hive的临时目录,例如我替换为 /usr/local/hadoop/apache-hive-2.1.1-bin/tmp,该目录如果不存在则要自己手工创建,并且赋予读写权限。
如图:
替换为
将${system:user.name}都替换为root
替换为
切记要全部替换,以上只为示例。
修改hive-site.xml数据库相关的配置
本文使用postgres数据库
搜索javax.jdo.option.ConnectionURL,将该name对应的value修改为Postgres的地址,例如我修改后是:
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:postgresql://192.168.174.200:5432/postgres?charSet=utf-8</value>
搜索javax.jdo.option.ConnectionDriverName,将该name对应的value修改为MySQL驱动类路径,例如我的修改后是:
<name>javax.jdo.option.ConnectionDriverName</name>
<value>org.postgresql.Driver</value>
搜索javax.jdo.option.ConnectionUserName,将对应的value修改为MySQL数据库登录名:
<name>javax.jdo.option.ConnectionUserName</name>
<value>postgre</value>
搜索javax.jdo.option.ConnectionPassword,将对应的value修改为MySQL数据库的登录密码:
<name>javax.jdo.option.ConnectionPassword</name>
<value>postgre</value>
搜索hive.metastore.schema.verification,将对应的value修改为false:
<name>hive.metastore.schema.verification</name>
<value>false</value>
上传postgres驱动包到lib目录
将postgres驱动包上载到Hive的lib目录下,例如我是上载到/usr/local/hadoop/apache-hive-2.1.1-bin/lib目录下。
新建hive-env.sh文件并进行修改
进入到/opt/hive/apache-hive-2.1.1-bin/conf目录,命令:
cd /opt/hive/apache-hive-2.1.1-bin/conf
将hive-env.sh.template文件复制一份,并且改名为hive-env.sh,命令:
cp hive-env.sh.template hive-env.sh
打开hive-env.sh配置并且添加以下内容:
vim hive-env.sh
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.8.0
export HIVE_CONF_DIR=/usr/local/hadoop/apache-hive-2.1.1-bin/conf
export HIVE_AUX_JARS_PATH=/usr/local/hadoop/apache-hive-2.1.1-bin/lib
启动与测试
对postgres数据库进行初始化
进入到hive的bin目录 执行命令:
cd /usr/local/hadoop/apache-hive-2.1.1-bin/bin
对数据库进行初始化,执行命令:
schematool -initSchema -dbType postgres
如图:
执行成功后,hive数据库里已经有一堆表创建好了
如图:
启动hive
进入到hive的bin目录执行命令:
cd /usr/local/hadoop/apache-hive-2.1.1-bin/bin
执行hive脚本进行启动,执行命令:
./hive
如图:
以上Hive配置完成