一、配置环境变量
首先,解压安装包到指定的路径,如我的路径为:/opt/software/
使用指令,对系统的环境变量进行编辑。
vim /etc/profile
在环境变量配置文件中,添加如下参数:
#HIVE_HOME
#下面一行为Hive的安装根目录
export HIVE_HOME=/opt/software/hive312
export PATH=$PATH:$HIVE_HOME/bin
二、配置Hive的配置文件
首先来到Hive安装目录下的conf文件夹,我的指令如下:
cd /opt/soft/hive312/conf/
然后创建一个hive-site.xml文件,并编辑,指令如下:
vim hive-site.xml
hive-site.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/opt/soft/hive312/warehouse</value>
<description>hdfs上元数据存储位置</description>
</property>
<property>
<name>hive.metastore.db.type</name>
<value>mysql</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://mymysql:3306/hive40?createDatabaseIfNotExist=true</value>
<description>将mysql服务器(我的主机名:mymysql)和hive(我的安装hive的主机名为hive40)连接</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.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>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
<description>关闭schema验证</description>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
<description>提示当前数据库名</description>
</property>
<property>
<name>hive.cli.print.header</name>
<value>true</value>
<description>查询输出时带列名一起输出</description>
</property>
</configuration>
三、添加Jar包
四、初始化mysql
schematool -dbType mysql -initSchema
五、启动Hive
方式一:
通过服务端之间启动,指令为:
hive
方式二:
通过客户端远程连接访问,首先,启动Hive服务,指令如下:
hive --service hiveserver2
接着,使用客户端进行远程连接,指令如下:
beeline -u jdbc:hive2://IP地址:10000
其他:
hive --service hiveserver2这样的话就会占用两个窗口,那么就用下面的语句让反馈信息放到一个黑洞里面这样就不用占用一个窗口用来反馈信息。
六、修改HDFS上给定文件执行的读写权限
hdfs dfs -chmod -R 777 /tmp
hadoop fs -chmod -R 777 /tmp
七、用sql语句操作数据库
基本操作和mysql类似,不赘叙。注意,当数据库中有数据时,hive无法直接删除数据库,这时可以通过指令强制删除:
drop database if exists test cascade;