1.1Hive常用部署安装
第一步,访问HIVE官网:https://hive.apache.org/general/downloads/ 下载(我这里安装的是3.1.3版本)
第二步,将对应版本下载或上传到服务端解压缩
首先需要把我们下载好的压缩包放置到/home/hadoop下
tar -zxvf apache-hive-3.1.3-bin.tar.gz
第三步,将解压缩后的文件夹移动到合适的位置(ln -s 命令为建立一个符号链接)
sudo ln -s /home/hadoop/apache-hive-3.1.3-bin /usr/local/hive
第四步,配置环境变量
vi .bashrc
export HIVE_HOME=/usr/local/hive
export PATH=$HIVE_HOME/bin:$PATH
source .bashrc
第五步,配置Hive相关文件
cd /usr/local/hive/conf
cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-default.xml
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties
cp hive-log4j2.properties.template hive-log4j2.properties
#配置Hadoop所在位置
HADOOP_HOME=/usr/local/hadoop
#配置Hive配置文件位置
export HIVE_CONF_DIR=/usr/local/hive/conf
增加MySQL配置到文件hive-site.xml,找到以下属性,更新为MySQL的配置项(hive密码为hive_123455)
vi hive-site.xml
vi hive-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
#配置MySQL相关参数
<property>
<name>hive.metastore.db.type</name>
<value>MYSQL</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>
jdbc:mysql://single-centos:3306/hadoop_hive?createDatabaseIfNotExist=true
</value>
</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>Hive_123456</value>
</property>
<property>
<name>hive.exec.scratchdir</name>
<value>/data/hive</value>
</property>
<property>
<name>hive.exec.local.scratchdir</name>
<value>/data/hive</value>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/data/hive/resources</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>/data/hive</value>
</property>
<property>
<name>hive.server2.logging.operation.log.location</name>
<value>/data/logs/hive</value>
</property>
</configuration>
第六步,查看Hadoop和Hive中lib下guava包的版本并将低版本更换为高版本
rm -f /usr/local/hive/lib/guava-19.0.jar
cp /usr/local/hadoop/share/hadoop/common/lib/guava-27.0-jre.jar /usr/local/hive/lib
第七步,使用hive-default.xml文件需要将特殊字符部分注释
vi hive-default.xml
<!--
<description>
Ensures commands with OVERWRITE (such as INSERT OVERWRITE) acquire Exclusive locks fortransactional tables. This ensures that inserts (w/o overwrite) running concurrently
are not hidden by the INSERT OVERWRITE.
</description>
-->
第八步,配置Hive临时目录,hive-site.xml配置文件中需要配置system:java.io.tmpdir属性处调整为自己的目录地址
sudo mkdir -p /data/logs/hive/ | \
sudo chown -R hadoop.hadoop /data/logs/hive/ | \
sudo mkdir -p /data/hive/resources | \
sudo chown -R hadoop.hadoop /data/hive/
第九步,在Linux的当前用户目录中,编辑一个.hiverc文件,将参数写入其中:
vi .hiverc
set hive.cli.print.header=true;
set hive.cli.print.current.db=true;
1.2 安装MySQL
在Hive的配置中,指定了由MySQL保存元数据,因此需要进行MySQL的安装
第一步,更新MySQL安装源
#访问MySQL安装源地址:MySQL :: Download MySQL Yum Repository 下载源文件
将源文件上传到服务端并安装及更新yum
sudo rpm -ivh mysql80-community-release-el7-7.noarch.rpm
sudo yum clean all
sudo yum makecache
第二步,安装MySQL
查看yum仓库中的MySQL
sudo yum repolist all | grep mysql
可以使用yum-config-manager 命令修改相应的版本为启用状态
sudo yum install -y yum-utils
sudo yum-config-manager --disable mysql80-community
sudo yum-config-manager --enable mysql57-community
可以编辑 mysql repo文件修改相应的版本为启用状态,将相应版本下的enabled改成 1 即可
sudo cat /etc/yum.repos.d/mysql-community.repo
执行安装
sudo rpm -import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
sudo yum install mysql-community-server
开启MySQL服务
sudo systemctl start mysqld.service
获取MySQL初始密码
sudo cat /var/log/mysqld.log | grep password
使用初始密码登录MySQL并修改密码
mysql -u root -p
ALTER USER 'root'@'dn01-centos' IDENTIFIED BY 'Hive_123456';
CREATE USER 'root'@'%' IDENTIFIED BY 'Hive_123456';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
开启自启动
sudo systemctl enable mysqld.service
拷贝MySQL驱动到Hive目录下的lib下
sudo mv mysql-connector-java-8.0.23.jar /usr/local/hive/lib/
初始化Hive
schematool -dbType mysql -initSchema
Hive基本命令操作
第一步、创建数据库
show databases;
create database test_db;
show databases;
登录MySQL的Shell查看相关元数据:
show databases;
use hadoop_hive
show tables;
查看数据库元数据在MySQL中的保存内容:
select * from DBS \G;
根据数据库在HDFS上的路径查看:
hadoop fs -ls /user/hive/warehouse
第二步、创建表
use test_db;
show tables;
创建测试数据文本test_1.txt,内容为编号、英文名称(用Tab分隔);
创建对应表
create table test_1(id int,name string) ROW FORMAT DELIMITED FIELDS
TERMINATED BY '\t';
show tables;
select * from test_1;
导入测试数据:
load data local inpath '/home/hadoop/test_1.txt' overwrite into table test_1;
查看导入数据:
select * from test_1;
统计数据个数:
select count(1) from test_1;