Hive官网:http://hive.apache.org
下载网址:http://archive.apache.org/dist/hive/
文档网址:https://cwiki.apache.org/confluence/display/Hive/LanguageManual
备注:Hive的元数据默认存储在自带的 derby 数据库中,生产中多采用MySQL;derby:java语言开发占用资源少,单进程,单用户。仅仅适用于个人的测试。
MySQL安装
Hive中使用MySQL存储元数据,MySQL的版本 5.7.26。
环境准备(删除有冲突的依赖包、安装必须的依赖包)
1 2 3 4 5
| # 查询是否安装了mariadb rpm -aq | grep mariadb
# 删除mariadb。-e 删除指定的套件;--nodeps 不验证套件的相互关联性 rpm -e --nodeps mariadb-libs
|
1
| yum install net-tools -y
|
安装MySQL
1 2 3 4 5 6 7 8 9
| # 上传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
|
修改MySQL的root口令(找到系统给定的随机口令、修改口令)
1 2 3 4 5
| # 启动数据库 systemctl start mysqld
# 查看MySQL数据库状态 systemctl status mysqld
|
1 2
| # 查找root密码 grep password /var/log/mysqld.log
|
1 2 3 4 5 6 7 8 9 10 11
| # 进入MySQL,使用前面查询到的口令 mysql -u root -p
# 设置口令强度 set global validate_password_policy=0;
# 将root口令设置为12345678 set password for 'root'@'localhost' =password('12345678');
# 刷新 flush privileges;
|
validate_password_policy 密码策略(默认是1),可配置的值有以下:
-
0 or LOW 仅需需符合密码长度(由参数validate_password_length【默认为8】指定)
-
1 or MEDIUM 满足LOW策略,同时还需满足至少有1个数字,小写字母,大写字母和特殊字符
-
2 or STRONG 满足MEDIUM策略,同时密码不能存在字典文件(dictionaryfile)中
备注:个人开发环境,出于方便的目的设比较简单的密码;生产环境一定要设复杂密码!
MySQL创建hive用户
1 2 3 4 5 6 7 8
| # 创建用户设置口令 CREATE USER 'hive'@'%' IDENTIFIED BY '12345678';
# 授权 GRANT ALL ON *.* TO 'hive'@'%';
# 刷新 FLUSH PRIVILEGES;
|
1 2
| # 是否可登录新建的hive用户 mysql -uhive -p12345678
|
Hive安装
安装Hive
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| # 上传Hive压缩包 # 解压缩 tar -zxvf apache-hive-2.3.7-bin.tar.gz -C /opt/lagou/servers
# 修改解压的hive文件夹名 cd /opt/lagou/servers mv apache-hive-2.3.7-bin hive-2.3.7
# 在 /etc/profile 文件中增加环境变量 vim /etc/profile
export HIVE_HOME=/opt/lagou/servers/hive-2.3.7 export PATH=$PATH:$HIVE_HOME/bin
# 执行并生效 source /etc/profile
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| # 修改Hive配置 cd /opt/lagou/servers/hive-2.3.7/conf vi hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <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>
|
备注:注意jdbc的连接串,如果没有 useSSL=false 会有大量警告;在xml文件中 & 表示 &
将 mysql-connector-java-5.1.46.jar 拷贝到 $HIVE_HOME/lib
1
| schematool -dbType mysql -initSchema
|
查看MySQL数据库,新增了hivemetadata数据库
1 2 3 4
| # 启动hive服务之前,请先启动hdfs、yarn的服务 hive
hive> show functions;
|