共计 3845 个字符,预计需要花费 10 分钟才能阅读完成。
HIVE 是一个数据仓库,该仓库基于 hadoop 框架,能够将存在 hdfs 上的结构化数据文件映射为一张数据库表。HIVE 能够应用类 SQL 语句来解决结构化数据(查问数据),也即是把结构化数据当成一张类 mysql 中的表,采纳 SQL 语句查问。
结构化数据即行数据,能够用二维表构造来体现的数据;非结构化数据即不能二维表构造来体现的数据,包含所有格局的办公文档、文本、图片、XML、HTML、各类报表、图像和音频 / 视频信息。
Hive 的实质是将 SQL 语句转换为 MapReduce 工作运行,使不相熟 MapReduce 的用户很不便地利用 HQL 解决和计算 HDFS 上的结构化的数据,实用于离线的批量数据计算。
HIVE 官网
官网介绍:
The Apache Hive ™ data warehouse software facilitates reading,writing, and managing large datasets residing in distributed storage using SQL. Structure can be projected onto data already in storage. A command line tool and JDBC driver are provided to connect users to Hive.
1 MySQL 装置
HIVE 默认把元数据放在内嵌的 Derby 数据库中,但因为 Derby 数据库只能容许一个会话连贯,不实用理论生产环境中,所以本文采纳 MySQL 存储 HIVE 的元数据。
MySQL 下载地址
采纳 yum 工具装置 MySQL
# 下载 mysql80-community-release-el8-1.noarch.rpm
wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
#装置 rpm 软件包
yum localinstall mysql80-community-release-el8-1.noarch.rpm
#装置 mysql 服务端
yum install mysql-community-server
#启动 mysql 服务端,并设置开机启动
systemctl start mysqld
systemctl enable mysqld
systemctl daemon-reload
#登陆 mysql 客户端之前先批改 root 账户的默认明码
#日志文件中查看 mysql 的 root 用户默认明码
grep 'temporary password' /var/log/mysqld.log
#mysql 客户端登陆,填写上边命令取出的明码,三个选一个。mysql -uroot -p
#批改明码,明码必须要有大小写和数字。ALTER USER 'root'@'localhost' IDENTIFIED BY 'Pass9999';
批改好明码,要重新启动服务端。systemctl restart mysqld
#登陆客户端
mysql -uroot -p Pass9999
#批改 root 的近程拜访权限,即可近程连贯 mysql。GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Pass9999' WITH GRANT OPTION;
#刷新 MySQL 的零碎权限
FLUSH PRIVILEGES;
mysql 存贮 hive 的元数据,元数据都有哪些表,每个表具体含意如下:
SELECT * FROM `VERSION`
SELECT * FROM `DBS`
SELECT * FROM `TBLS`
- version 表:hive 版本信息
- DBS 表:hive 数据库相干的元数据表
- TBLS 表:hive 表和视图相干的元数据表
2 HIVE 装置
我下载的软件包为:apache-hive-3.1.2-bin.tar.gz,下载地址能够从 hadoop 集群搭建那篇文章中找。
# 解压缩 /usr/local 下
tar -zxvf apache-hive-3.1.2-bin.tar.gz /usr/local
#重命名
mv apache-hive-3.1.2-bin hive-3.1.2
#配置环境变量
vi /etc/profile
#在文档开端增加如下配置
export HIVE_HOME=/usr/local/hive-3.1.2
export HIVE_CONF_DIR=$HIVE_HOME/conf
export PATH=$HIVE_HOME/bin:$PATH
#立刻失效环境变量
source /etc/profile
#cd 到文件下
/usr/local/hive-3.1.2/conf
#复制一份文件为 hive-site.xml
cp hive-default.xml.template hive-site.xml
#清空 hive-site.xml 的内容,增加如下内容
<configuration>
<property><!-- 数据库连贯地址,应用 MySQL 存储元数据信息,创立 hive DB-->
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value>
</property>
<property><!-- 数据库驱动 -->
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property><!-- 数据库用户名 -->
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>Username to use against metastore database</description>
</property>
<property><!-- 明码 -->
<name>javax.jdo.option.ConnectionPassword</name>
<value>Pass-9999</value>
<description>password to use against metastore database</description>
</property>
<property><!--HDFS 门路,用于存储不同 map/reduce 阶段的执行打算和这些阶段的两头输入后果。-->
<name>hive.exec.local.scratchdir</name>
<value>/tmp/hive</value>
</property>
<property><!--Hive 查问日志所在的目录,HDFS 门路 -->
<name>hive.querylog.location</name>
<value>/tmp/logs</value>
</property>
<property><!-- 本地表的默认地位,HDFS 门路 -->
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property><!-- 本地模式开启,3 种启动模式,具体看下文 -->
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property
<name>hive.server2.logging.operation.log.location</name>
<value>/tmp/logs</value>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/tmp/hive${hive.session.id}_resources</value>
</property>
</configuration>
#批改 hive 配置文件
#cd 到 bin 文件下
/usr/local/hive-3.1.2/bin
#增加如下配置
export HADOOP_HEAPSIZE=${HADOOP_HEAPSIZE:-256}
export JAVA_HOME=/usr/local/jdk1.8.0_261
export HADOOP_HOME=/usr/local/hadoop-3.2.1
export HIVE_HOME=/usr/local/hive-3.1.2
#增加 java 驱动
cd /usr/local/hive-3.1.2/lib
#把 jar 放在 lib 文件下,该文件从网上下载。mysql-connector-java-5.1.49-bin.jar
#对 Hive 进行初始化并启动 Hive
# cd 到 bin 文件下,对 hive 初始化,次要是初始化 mysql,增加 mysql 为 hive 的元数据库。cd /usr/local/hive-3.1.2/bin
schematool -initSchema -dbType mysql
#启动 hive,间接输出 hive 启动
hive
#查看 database 和 table
show databases;
show tables;
文章继续更新,能够微信搜寻「大数据分析师常识分享」第一工夫浏览,回复【666】获取大数据相干材料。