任务背景
hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。hive是十分适合数据仓库的统计分析和Windows注册表文件。
hive 构建在基于静态批处理的Hadoop 之上,Hadoop 通常都有较高的延迟并且在作业提交和调度的时候需要大量的开销。因此,hive 并不能够在大规模数据集上实现低延迟快速的查询,例如,hive 在几百MB 的数据集上执行查询一般有分钟级的时间延迟。
hive 是一种底层封装了Hadoop 的数据仓库处理工具,使用类SQL 的hiveQL 语言实现数据查询,所有hive 的数据都存储在Hadoop 兼容的文件系统(例如,Amazon S3、HDFS)中。hive 在加载数据过程中不会对数据进行任何的修改,只是将数据移动到HDFS 中hive 设定的目录下,因此,hive 不支持对数据的改写和添加,所有的数据都是在加载的时候确定的。hive 的设计特点如下。
任务需求:
现大多数数据仓库应用程序都是使用关系数据库进行实现的,并使用SQL作为查询语言。Hive降低了将这些应用程序转移到Hadoop系统上的难度。凡是会使用SQL语言的开发人员都可以很轻松的学习并使用Hive。为了更好的掌握hive,我们要先从他的安装开始。
任务步骤:
1)mysql赋予权限
2)hive安装包解压
3)配置hive环境变量,配置hive相关文件参数
4)运行hive
任务结果:
Shell命令操作
任务实施过程:
1.安装Hive
知识点
1)Hive的依赖环境及安装步骤
实验目的
1)掌握Hive的安装过程
实验环境
1)Oracle Linux 7.4
2)Hadoop2.7.4
3)Hive2.1.1
4)Mysql5.5.57
5)Java1.8.0_144
实验步骤
1)安装前的准备
1.点击桌面Konsole图标打开一个终端
2.安装包位于/root/experiment/file目录下
2)Hive元数据库的建立
1.进入MySQL命令窗口
[Command 001]:
mysql -u root -p
2.建立Hive元数据需要的MySQL下的数据库“hive”,并赋予相应权限
[Command 002]:
create database hive;
[Command 003]:
grant all privileges on *.* to 'root'@'master' identified by 'root';
[Command 004]:
grant all privileges on *.* to 'root'@'%' identified by 'root';
[Command 005]:
flush privileges;
3.查看数据库“hive”的权限
[Command 006]:
SELECT host,user,password,Grant_priv,Super_priv FROM mysql.user;
4.退出MySQL命令窗口
[Command 007]:
quit;
3)配置Hive安装包
1.解压Hive压缩包至/opt目录下。
[Command 008]:
tar xf experiment/file/apache-hive-2.1.1-bin.tar.gz -C /opt/
[Command 009]:
ll /opt/
2.解压后的Hive压缩包apache-hive-2.1.1-bin更名为hive。
[Command 010]:
mv /opt/apache-hive-2.1.1-bin /opt/hive
[Command 011]:
ll /opt/
3.拷贝Hive需要的mysql依赖包mysql-connector-java-5.1.42.jar 至hive/lib目录下。
[Command 012]:
cp ~/experiment/file/mysql-connector-java-5.1.42.jar /opt/hive/lib/
[Command 013]:
ll /opt/hive/lib/mysql-*
4)配置Hive环境变量
1.打开配置Hive环境变量的文件profile。
[Command 014]:
vim /etc/profile
2.敲键盘“i”键,使profile处于可插入状态,配置Hive环境变量参数。将[Command 015]命令下的三行加入profile文件的合适位置,建议加在文件尾部(将光标移动至文件最后,按2 次回车,然后粘贴[Command 015]下的三行内容)。由于用户可能在此文件存在其它的配置,所以与下面截图可能不完全一致,只要保证新加入的内容与红框内的内容一致即可(即Hive相关环境参数)。
[Command 015]:
export HIVE_HOME=/opt/hive
export HIVE_CONF_DIR=/opt/hive/conf
export PATH=$HIVE_HOME/bin:$PATH
3.按“ESC”键,敲“:wq!”命令,按回车保存并退出profile文件。
[Command 016]:
:wq!
4.使profile文件配置生效。
[Command 017]:
source /etc/profile
5.查看hive的环境变量是否生效。
[Command 018]:
echo $PATH
5)配置Hive相关配置文件的参数
1.进入Hive配置文件的目录。
[Command 019]:
cd /opt/hive/conf/
[Command 020]:
ll
2.生成hive-site.xml文件。
[Command 021]:
cp /opt/hive/conf/hive-default.xml.template /opt/hive/conf/hive-site.xml
[Command 022]:
ll
3.打开配置hive-site.xml文件。
[Command 023]:
vim /opt/hive/conf/hive-site.xml
4.删除hive-site.xml文件中标签<configuration>与</configuration>之间的所有内容。可以通过借助系统本身的文本工具如KWrite等打开hive-site.xml文件,删除指定标签<configuration>与</configuration>之间的所有内容。也可以通过命令删除。下面介绍用命令删除的方法,在打开的文档状态下,在键盘敲入“5327dd”命令(意思是删除5327行,具体删除行数依据你的文档定,最终目的是删除标签<configuration>与</configuration>之间的所有内容),然后回车。注意屏幕上看不到5327dd字样,尽管操作就好。其中5327dd代表的是删除5327行。
[Command 024]:
22gg
5327dd
5.删除hive-site.xml文件指定内容后的文件全部内容如下。
6.通过键盘敲入”i”,使更改后的hive-site.xml文件处于可编辑状态,即可在文件下方看到“INSERT”或“插入”的字样。
7.将需要配置的参数敲入或者去已经配置好的文件里将配置内容(即Code001的所有内容)全部复制到hive-site.xml文件中<configuration>与</configuration>标签之间,粘贴的所有内容如下:
[Code 001]:
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/data/hive/warehouse</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master/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>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
8.注意粘贴(点击文档的空白处,点击鼠标右键,即可看到“粘贴”或“Paste”选项,选中它完成粘贴)的位置位于标签<configuration>与</configuration>之间。
9.粘贴后的hive-site.xml文件如下所示,按ESC键,录入“:wq!”退出并保存文件。
[Command 026]:
:wq!
2.启动Hive服务端
知识点
1)Hive的启动步骤
实验目的
1)掌握Hive的启动方式
实验环境
1)Oracle Linux 7.4
2)Hadoop2.7.4
3)Hive2.1.1
4)Mysql5.5.57
5)Java1.8.0_144
实验步骤
1)启动服务端
1.初始化元数据。初始化成功后,会在操作窗口下面看到“schemaTool completed“初始化完成的字样,此时在[Command 002]命令时建立的hive数据库里会看到很多用于装载数据仓库hive元数据的表。
[Command 027]:
schematool -dbType mysql -initSchema
2.如果Hadoop服务没有启动,需要启动Hadoop。
[Command 028]:
start-all.sh
3.查看Hadoop守护进程,如果系统运行其它程序,进程数可能与下图有差别,但不影响运行,只要红框中除了RunJar进程外的其它所有进程(DataNode、NameNode、SecondaryNameNode 、ResourceManager、NodeManager)都存在即可。
[Command 029]:
jps
4.从键盘上敲入下面命令启动hive服务并进行日志记录。(这里注意,由于hive的环境变量是配置在/etc/profile文件下,如果操作完之前的操作后,你关闭的命令窗口后重新打开窗口操作后,有可能会出现hive命令不认识的情况,此时只需要在执行下面命令之前,执行一下[Command 017]的命令“source /etc/profile”,后再执行下面的命令[Command 030]即可。)
[Command 030]:
nohup hive --service metastore > metastore.log 2>&1 &
5.启动Hive。(这里注意,由于hive的环境变量是配置在/etc/profile文件下,如果执行hive命令,报“bash:hive:command not found”信息,即hive命令不存在的意思。此时只需要在执行hive命令之前,执行一下 “source /etc/profile”命令,具体步骤见[Command 032])。
[Command 031]:
hive
6.点击桌面Konsole图标,再打开一个终端,像上一条一样录入hive启动Hive,由于环境变量配置在profile,如果出现问题,可像如下执行即可。
[Command 032]:
source /etc/profile
[Command 033]:
hive
3.Hive基本操作
知识点
1)Hive CLI
2)Hive操作本地磁盘
3)Hive操作HDFS
实验目的
1)掌握Hive基本应用
实验环境
1)Oracle Linux 7.4
2)Hadoop2.7.4
3)Hive2.1.1
4)Mysql5.5.57
5)Java1.8.0_144
实验步骤
1)使用Ctrl+c组合键停止KVLite服务端进程
1.创建数据库dbtest。
[Command 034]:
CREATE DATABASE dbtest;
2.显示Hive中数据库。
[Command 035]:
SHOW DATABASES;
3.删除数据库dbtest。
[Command 036]:
DROP DATABASE dbtest;
4.显示Hive中数据库。
[Command 037]:
SHOW DATABASES;
5.如果dbtest不存在,建立数据库dbtest。
[Command 038]:
CREATE DATABASE IF NOT EXISTS dbtest;
6.使用数据库dbtest。
[Command 039]:
use dbtest;
7.显示数据库dbtest。
[Command 040]:
set hive.cli.print.current.db=true;
8.查询当前正在使用的数据库。
[Command 041]:
SELECT current_database();
9.显示当前数据库中的表。
[Command 042]:
show tables;
10.关闭显示当前数据库信息。
[Command 043]:
set hive.cli.print.current.db=false;
11.hive中查询本地磁盘上文件路径命令。
[Command 044]:
!pwd;
12.hive中查询本地磁盘上命令。
[Command 045]:
!ls /opt/hive/conf/;
13.磁盘查询本地磁盘上目录命令。注意这里不是在hive>环境下了,是在本地系统环境下。具体做法是:点击桌面Konsole图标打开一个终端,即命令窗口,在其中敲入pwd命令。
[Command 046]:
pwd
14.磁盘查询本地磁盘上命令。注意这里不是在hive>环境下了,是在本地系统环境下。具体做法是:点击桌面Konsole图标打开一个终端,即命令窗口,在其中敲入“ls /opt/hive/conf/”命令。
[Command 047]:
ls /opt/hive/conf/
15.hive中查询HDFS命令。
[Command 048]:
dfs -ls /;
16.Hadoop中查询HDFS命令。注意这里不是在hive>环境下了,是在本地系统环境下。具体做法是:点击桌面Konsole图标打开一个终端,即命令窗口,在其中敲入” hadoop dfs -ls /”命令。
[Command 049]:
hadoop dfs -ls /