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.rpmwget 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 mysqldsystemctl enable mysqldsystemctl 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.2export HIVE_CONF_DIR=$HIVE_HOME/confexport PATH=$HIVE_HOME/bin:$PATH#立刻失效环境变量source /etc/profile#cd 到文件下/usr/local/hive-3.1.2/conf#复制一份文件为hive-site.xmlcp 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_261export HADOOP_HOME=/usr/local/hadoop-3.2.1export 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/binschematool -initSchema -dbType mysql#启动hive,间接输出hive启动hive#查看database 和 tableshow databases;show tables;
文章继续更新,能够微信搜寻「 大数据分析师常识分享」第一工夫浏览,回复【666】获取大数据相干材料。