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&amp;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】获取大数据相干材料。