创建时间: 2019/03/14 17:55
内容:linux安装hive
作者:yangyidong
需要包解压hive配置环境变量为hive创建文件夹并授权,用于数据存储配置hive配置hive-env.sh配置hive-site.xmlmysql操作启动并登录mysql shell新建hive数据库配置mysql允许hive接入:添加mysql jdbc驱动包初始化mysql数据库Hive客户端启动Hive几种使用方式:参考
需要包
apache-hive-1.2.2-bin.tar.gz
mysql-connector-java-5.1.46.tar.gz
解压hive
下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-1.2.2/
tar -xf apache-hive-1.2.2-bin.tar.gz
mv apache-hive-1.2.2 hive
mv hive /home/hadoop/
配置环境变量
vi /etc/profile
export HIVE_HOME=/home/hadoop/hive
export PATH=$PATH:$HIVE_HOME/bin
source /etc/profile
为hive创建文件夹并授权,用于数据存储
$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/bin/hadoop fs -mkdir tmp
$HADOOP_HOME/bin/hadoop fs -mkdir /user/hive/warehouse
$HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp
$HADOOP_HOME/bin/hadoop fs -chmod g+w /user/hive/warehouse
配置hive
配置hive-env.sh
#定位
cd /home/hadoop/hive/conf
#生成hive-env.sh文件
cp -r hive-env.sh.template hive-env.sh
#配置
vi hive-env.sh
--------------------------------------------
# Folder containing extra ibraries required for hive compilation/execution can be controlled by:
# export HIVE_AUX_JARS_PATH=
export JAVA_HOME=/usr/java/jdk1.8.0_181-amd64
export HADOOP_HOME=/home/hadoop/hadoop
export HIVE_HOME=/home/hadoop/hive
# HADOOP_HOME=${bin}/../../hadoop
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=$HIVE_HOME/conf
# Folder containing extra ibraries required for hive compilation/execution can be controlled by:
export HIVE_AUX_JARS_PATH=/usr/local/hive/lib/*
配置hive-site.xml
#生成hive-site.xml文件
#配置
vi 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>/user/hive/warehouse</value><!-- 实际数据在hdfs上存储路径 -->
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value><!-- 元数据存储在本地 -->
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value><!-- jdbc驱动 -->
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value><!-- mysql账号 -->
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123123</value><!-- mysql密码 -->
</property>
</configuration>
mysql操作
启动并登录mysql shell
systemctl start mariadb #启动服务
mysql -u root -p #登陆shell界面
新建hive数据库
mysql> create database hive;#这个hive数据库与hive-site.xml中localhost:3306/hive的hive对应,用来保存hive元数据
配置mysql允许hive接入:
添加用户授权
mysql> grant all on *.* to root@localhost identified by '123123';#将所有数据库的所有表的所有权限赋给hive用户,后面的123123是配置hive-site.xml中配置的连接密码
授予外网登陆权限(两种)
grant all privileges on *.* to username@'%' identified by 'password';
#(执行下面的语句 *.*:所有库下的所有表 %:任何IP地址或主机都可以连接)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql> flush privileges; #刷新mysql系统权限关系表
添加mysql jdbc驱动包
wget https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
tar -xf mysql-connector-java-5.1.46.tar.gz
cd mysql-connector-java-5.1.46
移动mysql-connector-java-5.1.46-bin.jar到$hive_home/lib下
放在hive/lib下
初始化mysql数据库
$HIVE_HOME/bin/schematool -dbType mysql -initSchema
Hive客户端启动
hive
Hive几种使用方式:
1.Hive交互shell bin/hive
2.Hive JDBC服务(参考java jdbc连接mysql)
3.hive启动为一个服务器,来对外提供服务
bin/hiveserver2
nohup bin/hiveserver2 1>/var/log/hiveserver.log 2>/var/log/hiveserver.err &
启动成功后,可以在别的节点上用beeline去连接
bin/beeline -u jdbc:hive2://mini1:10000 -n root
或者
bin/beeline
! connect jdbc:hive2://mini1:10000
4.Hive命令
hive -e ‘sql’
bin/hive -e 'select * from t_test'