Hive安装与配置
2021-02-01 本文已影响0人
奋斗的蛐蛐
Hive安装与配置
Hive安装配置
Hive官网:http://hive.apache.org
下载地址:http://archive.apache.org/dist/hive/
文档网址:https://cwiki.apache.org/confluence/display/Hive/LanguageManual
使用安装包:
# hive安装包
apache-hive-2.3.7-bin.tar.gz
# MySQL安装包
mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
# MySQL的JDBC驱动程序
mysql-connector-java-5.1.46.jar
MySQL安装(阿里云环境,CentOS7.6)
Hive使用MySQL存储元数据
-
删除MariaBD
centos自带的MariaDB,与MySQL冲突,
# 查询是否安装了
mariadb rpm -aq | grep mariadb
# 删除mariadb。-e 删除指定的套件;--nodeps 不验证套件的相互关联性
rpm -e --nodeps mariadb-libs
- 安装依赖
yum install perl -y
yum install net-tools -y
yum install libaio -y
- 安装MySQL
# 解压缩
tar xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
# 依次运行以下命令
rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm
- 启动数据库
systemctl start mysqld
# 查看数据库状态
systemctl status mysqld
- 查询root密码
grep password /var/log/mysqld.log
- 修改root口令
# 进入MySQL,使用前面查询到的口令
mysql -u root -p
# 会提示输入密码
# 设置口令强度;将root口令设置为12345678;刷新
set global validate_password_policy=0;
# 设置密码,在哪可以登陆root账号
set password for 'root'@'localhost' =password('12345678');
# 刷新
flush privileges;
validate_password_policy 密码策略:默认是1.
- 0:最低。符合长度即可,(validate_password_length参数控制长度),默认8位
- 1:中等。满足0的条件外,还需在至少有一个数字,小写字母,大写字母和特殊字符
- 2:最强。满足0和1的条件外,还需要密码不能保存在字典文件中
- 常见hive用户
# 创建用户设置口令、授权、刷新
CREATE USER 'hive'@'%' IDENTIFIED BY '12345678';
GRANT ALL ON *.* TO 'hive'@'%';
FLUSH PRIVILEGES;
Hive 安装
- 下载Hive,解压缩
cd /opt/lagou/software
tar zxvf apache-hive-2.3.7-bin.tar.gz -C ../servers/
cd ../servers
mv apache-hive-2.3.7-bin hive-2.3.7
- 修改环境变量
# 在 /etc/profile 文件中增加环境变量
export HIVE_HOME=/opt/lagou/servers/hive-2.3.7
export PATH=$PATH:$HIVE_HOME/bin
# 执行并生效
source /etc/profile
- 修改hive配置
<configuration>
<!-- hive元数据的存储位置 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://linux123:3306/hivemetadata?createDatabaseIfNotExist=true&useSSL=false</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<!-- 指定驱动程序 -->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<!-- 连接数据库的用户名 -->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
<description>username to use against metastore database</description>
</property>
<!-- 连接数据库的口令 -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>12345678</value>
<description>password to use against metastore database</description>
</property>
</configuration>
- 拷贝MySQL JDBC驱动程序
cp /opt/lagou/software/mysql-connector-java-5.1.46.jar /opt/lagou/servers/hive-2.3.7/lib/
- 初始化元数据库
schematool -dbType mysql -initSchema
- 启动hive
# 启动hive服务之前,请先启动hdfs、yarn的服务
hive
Hive 属性配置
可在 hive-site.xml 中增加以下常用配置,方便使用。
<!-- 数据存储位置:数据默认的存储位置(HDFS) -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
<!-- 显示当前库:在命令行中,显示当前操作的数据库 -->
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
<description>Whether to include the current database in the Hive prompt.</description>
</property>
<!-- 显示头信息:在命令行中,显示数据的表头 -->
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<!-- 本地模式:操作小规模数据时,使用本地模式,提高效率 -->
<property>
<name>hive.exec.mode.local.auto</name>
<value>true</value>
<description>Let Hive determine whether to run in local mode automatically</description>
</property>
注意:当Hive的输入数据量非常小的时候,Hive在单机上处理所有任务,效率高,满足下面条件:
- job的输入数据量必须小于参数:hive.exec.mode.local.auto.inputbytes.max (默认128MB)
- job的map数必须小于参数:hive.exec.mode.local.auto.tasks.max (默认4)
- job的reduce数必须为0或者1
Hive的日志文件存放位置:
/temp/root
如果修改目录存放位置
cd /opt/lagou/servers/hive-2.3.7/conf
cp hive-log4j2.properties.template hive-log4j2.properties
vim conf/hive-log4j2.properties
添加以下内容:
property.hive.log.dir = /opt/lagou/servers/hive-2.3.7/logs
Hadoop 2.x 中 NameNode RPC缺省的端口号:8020
Hive参数配置方式
查看参数配置:
-- 查看全部参数
hive> set;
-- 查看某个参数
hive> set hive.exec.mode.local.auto;
-- 输出
hive.exec.mode.local.auto=false
参数配置的三种方式
- 用户自定义配置(hive-site.xml)
- 启动hive时指定参数(-hiveconf)
- hive命令行指定参数(set)
优先级:3 > 2 > 1 > hive-default.xml
启动时指定配置:
hive -hiveconf hive.exec.mode.local.auto=false
命令行修改:
set hive.exec.mode.local.auto=false;
Hive 命令
- Hive
# 帮助命令
hive -help
-e:不进入hive交互窗口,执行sql语句
hive -e "select * from users"
-f:执行脚本中sql语句
# 创建文件hqlfile1.sql,内容:select * from users # 执行文件中的SQL语句
hive -f hqlfile1.sql
# 执行文件中的SQL语句,将结果写入文件
hive -f hqlfile1.sql >> result1.log
- 在hive命令行执行shell命令、dfs命令
hive> ! ls;
hive> ! clear;
hive> dfs -ls / ;