安装hive前须确保安装JDK及Hadoop和MySQL
MySQL数据库须添加hive用户并授权
安装hive:
1.下载
http://archive.apache.org/dist/hive/hive-2.1.1/apache-hive-2.1.1-bin.tar.gz
2.上传至centos7 /root/app (目录任意)
3.解压
cd /root/app (进入文件上传的目录)
tar -vxzf apache-hive-2.1.1-bin.tar.gz (执行解压)
4.改名:
mv apache-hive-2.1.1-bin hive-2.1.1 (非必须)
5.删除hive的tar包:
rm -rf apache-hive-2.1.1-bin.tar.gz (非必须)
6.配置环境变量
vi /etc/profile
export HIVE_HOME=/root/app/hive-2.1.1
export HIVE_CONF_DIR=${HIVE_HOME}/conf
export CLASSPATH=$CLASSPATH.:{HIVE_HOME}/lib
export PATH=$PATH:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:${HIVE_HOME}/bin
/etc/profile文件编辑完成后,执行下面命令,让配置生效:
source /etc/profile
7.对hive进行配置
7.1: 进入到hive的配置文件目录:
cd /root/app/hive-2.1.1/conf
7.2: 将hive-default.xml.template文件复制一份,并且改名为hive-site.xml
cp hive-default.xml.template hive-site.xml
7.3: 使用hadoop新建hdfs目录
因为在hive-site.xml中有这样的配置:
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.exec.scratchdir</name>
<value>/tmp/hive</value>
</property>
所以要让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
7.4修改hive-site.xml数据库相关的配置
搜索javax.jdo.option.ConnectionURL,将该name对应的value修改为MySQL的地址,例如我修改后是:
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.188.128:3306/hive?characterEncoding=UTF-8&createDatabaseIfNotExist=true</value>
</property>
搜索javax.jdo.option.ConnectionDriverName,将该name对应的value修改为MySQL驱动类路径,例如我的修改后是:
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
搜索javax.jdo.option.ConnectionUserName,将对应的value修改为MySQL数据库登录名:
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
搜索javax.jdo.option.ConnectionPassword,将对应的value修改为MySQL数据库的登录密码:
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
</property>
搜索hive.metastore.schema.verification,将对应的value修改为false:
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
将MySQL驱动包上传到Hive的lib目录下, 例如我是上载到/root/app/hive-2.1.1/lib目录下。
8.新建hive-env.sh文件并进行修改
8.1进入到/opt/hive/apache-hive-2.1.1-bin/conf目录,命令是:
cd /opt/hive/apache-hive-2.1.1-bin/conf
8.2将hive-env.sh.template文件复制一份,并且改名为hive-env.sh,命令是:
cp hive-env.sh.template hive-env.sh
8.3打开hive-env.sh配置并且添加以下内容:
# Set HADOOP_HOME to point to a specific hadoop install directory
export HADOOP_HOME=/root/app/hadoop-2.7.3
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/root/app/hive-2.1.1/conf
# Folder containing extra ibraries required for hive compilation/execution can be controlled by:
export HIVE_AUX_JARS_PATH=/root/app/hive-2.1.1/lib
8.4进入到hive的bin目录 执行命令:
cd /root/app/hive-2.1.1/bin
对数据库进行初始化,执行命令:
schematool -initSchema -dbType mysql
执行成功后,hive数据库里已经有一堆表创建好了
9.启动hive
启动前确保Hadoop已启动:
进入到hive的bin目录执行命令:
cd /root/app/hive-2.1.1/bin
执行hive脚本进行启动,执行命令:
./hive
10.测试
执行查看函数的命令:
show functions;
执行查看sum函数的详细信息的命令:
desc function sum;
10.1执行新建表以及导入数据的测试
10.1.1新建数据库
执行新建数据库的hive命令:
create database test_db_hive;
10.1.2创建数据表
在刚才创建的数据库中创建数据表,执行hive命令:
use test_hive_edu;
create table student(id int,name string);
hadoop安装参考:
https://blog.csdn.net/chen_jx_0/article/details/85235981