Linux基于Hadoop2.8.0集群安装配置Hive2.1.1及基础操作

前言

安装Apache Hive前提是要先安装hadoop集群,并且hive只需要在hadoop的namenode节点集群里安装即可,安装前需保证Hadoop已启(动文中用到了hadoop的hdfs命令)。

关于如何安装Hadoop集群请参照:CentOS7搭建Hadoop2.8.0集群及基础操作与测试

下载Apache Hadoop

下载

地址:http://hive.apache.org/downloads.html

Linux基于Hadoop2.8.0集群安装配置Hive2.1.1及基础操作

Linux基于Hadoop2.8.0集群安装配置Hive2.1.1及基础操作

Linux基于Hadoop2.8.0集群安装配置Hive2.1.1及基础操作

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/
配置环境变量

Linux基于Hadoop2.8.0集群安装配置Hive2.1.1及基础操作

立即生效

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

因为

Linux基于Hadoop2.8.0集群安装配置Hive2.1.1及基础操作

Linux基于Hadoop2.8.0集群安装配置Hive2.1.1及基础操作

所以要让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/

如图:

Linux基于Hadoop2.8.0集群安装配置Hive2.1.1及基础操作

检查/tmp/hive是否创建成功,执行命令:

$HADOOP_HOME/bin/hadoop  fs  -ls /tmp/

如图:

Linux基于Hadoop2.8.0集群安装配置Hive2.1.1及基础操作

修改hive-site.xml中的临时目录

将hive-site.xml文件中的${system:java.io.tmpdir}替换为hive的临时目录,例如我替换为 /usr/local/hadoop/apache-hive-2.1.1-bin/tmp,该目录如果不存在则要自己手工创建,并且赋予读写权限。

如图:

Linux基于Hadoop2.8.0集群安装配置Hive2.1.1及基础操作

替换为

Linux基于Hadoop2.8.0集群安装配置Hive2.1.1及基础操作

将${system:user.name}都替换为root

Linux基于Hadoop2.8.0集群安装配置Hive2.1.1及基础操作

替换为

Linux基于Hadoop2.8.0集群安装配置Hive2.1.1及基础操作

切记要全部替换,以上只为示例。

修改hive-site.xml数据库相关的配置

本文使用postgres数据库,如需了解请参照Linux安装postgresql及基础操作

搜索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目录下。

Linux基于Hadoop2.8.0集群安装配置Hive2.1.1及基础操作

新建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

如图:

Linux基于Hadoop2.8.0集群安装配置Hive2.1.1及基础操作

执行成功后,hive数据库里已经有一堆表创建好了

如图:

Linux基于Hadoop2.8.0集群安装配置Hive2.1.1及基础操作

启动hive

进入到hive的bin目录执行命令:

cd /usr/local/hadoop/apache-hive-2.1.1-bin/bin

执行hive脚本进行启动,执行命令:

./hive

如图:

Linux基于Hadoop2.8.0集群安装配置Hive2.1.1及基础操作

以上Hive配置完成

上一篇:django 一个关于分组查询的问题分析


下一篇:禅道-bug管理系统部署