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】获取大数据相干材料。
发表回复