大数据之Hive入门

Hive入门

Hive浅显理解:
1.处理的数据来自HDFS
2.分析数据的底层实现MapReduce
3.执行程序运行Yarn
4.Hive使用HSQL对数据进行查询

Hive理解
对HDFS,MapReduce和Yarn的封装

Hive本质
将HSQL转化成MapReduce执行

Hive架构
在这里插入图片描述组成及作用:
用户接口:ClientCLI(hive shell)、JDBC/ODBC(java访问hive)、WEBUI(浏览器访问hive)
元数据:Metastore
元数据包括:表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等;
默认存储在自带的derby数据库中,推荐使用MySQL存储Metastore
3.Hadoop
使用HDFS进行存储,使用MapReduce进行计算
4.驱动器:Driver
(1)解析器(SQL Parser):将SQL字符串转换成抽象语法树AST,这一步一般都用第三方工具库完成,比如antlr;对AST进行语法分析,比如表是否存在、字段是否存在、SQL语义是否有误。
(2)编译器(Physical Plan):将AST编译生成逻辑执行计划。
(3)优化器(Query Optimizer):对逻辑执行计划进行优化。
(4)执行器(Execution):把逻辑执行计划转换成可以运行的物理计划。对于Hive来说,就是MR/Spark。
工作原理:
用户创建数据库、表信息,存储在hive的元数据库中;
向表中加载数据,元数据记录hdfs文件路径与表之间的映射关系;
执行查询语句,首先经过解析器、编译器、优化器、执行器,将指令翻译成MapReduce,提交到Yarn上执行,最后将执行返回的结果输出到用户交互接口。
Hive的实时性不高,而且是

Hive简单操作
在CIL端进行交互查询
show databases; —展示数据库
use 数据库名; —使用数据库
show tables; —展示表
desc 表名; —展示表的信息
desc extended 表名; —展示详细信息(不好观察)
desc formatted 表名; —将详细信息格式化后展示(查看表的类型是外部表还是内部表)
create external table stu(id int ,name string ) row format delimited fields terminater by ‘/t’ location ‘/aaa’ —创建表且是以tab间进行分割的表的形式
LOAD DATA LOCAL INPATH ‘filepath’ OVERWRITE INTO TABLE tab1(加上数据库名的详细的表); —将本地文件加载到某个表
show functions; —展示提供的函数,例如count()
desc function 函数名; —展示函数的用法,例dec function upper

Hive日志文件查看
在Hive的安装包下有个Hive的log配置文件,从里面查找,也可以自己配置log的输出目录

Hive常见配置信息
(1)Hive数据仓库位置配置
默认会配置:/user/hive/warehouse目录下,这个目录是个根目录
如果是在Hive默认的default数据库下创建表,则表会出现在/user/hive/warehouse/表
如果不是在Hive默认的dafault数据库中创建的,在自己创建的数据库中创建的,则/user/hive/warehouse/数据库/表
/user/hive/warehouse是要通过配置文件修改的,为什么要修改那?
因为当不同部门使用不同版本的Hive时,这个默认的数据仓库的文件夹是一样的,这样是肯定不行的,需要不同部门在各自使用的Hive配置文件呢中进行配置。
修改配置后需要给配置的文件赋值权限
$HADOOP_HOME/bin/hadoop fs -chmod g+w /temp
HADOOPHOME/bin/hadoopfschmodg+w/user/hive/warehouse2HADOOP_HOME/bin/hadoop fs -chmod g+w /user/hive/warehouse (2)运行日志位置 在此文件夹下HADOOP_HOME/conf/hive-log4j.properties可以配置
hive.log.dir=/自己设置路径
(3)指定Hive运行时显示的日志级别
在此文件夹下$HADOOP_HOME/conf/hive-log4j.properties可以配置
hive.root.logger=INFO,DRFA
(4)在cli命令行,显示当前数据库的信息和当前表的信息
在hive-site.xml文件进行配置
hive.cli.print.header设置成true
hive.cli.print.current.db设置成true
(5)在Hive启动时,设置配置属性信息
先查询相关命令可以通过 $bin/hive -help
$bin/hive --hiveconf <property=value>
(6)查看当前所有配置信息
hive>set;
自己set后只在当前会话生效

Hive常用几种交互操作
bin/hive -help 再不进入hive> 交互窗口的前提下
(1)bin/hive -e “sql” 在不进入交互页面的前提,下直接执行sql(测试多用)
eg : bin/hive -e “select * from db_log.student;”
(2)bin/hive -f filename 在不进入交互页面的前提下,直接执行文件中的sql(开发多用)
eg : bin/hive -f hivef.sql
在hivef.sql中写入select * from db_log.student;
bin/hive -f hivef.sql > filename (/opt/moudle/sql.txt)将查询的结果输入到sql这个文本文件中
(3)bin/hive -i filename filename中也是sql,但是这个命令通常和UDF一起使用

发布了1 篇原创文章 · 获赞 0 · 访问量 23
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览