IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> hadoop——hive(认识hive) -> 正文阅读

[大数据]hadoop——hive(认识hive)

hadoop——hive(认识hive)

1、什么是hive

Hive:由 Facebook 开源用于解决海量结构化日志的数据统计。
Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类 SQL 查询功能。
hive的本质其实就是将HQL转化成MapReduce 程序

Hive 处理的数据存储在 HDFS
Hive 分析数据底层的实现是 MapReduce
执行程序运行在 Yarn

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QTr1o3bB-1632406205872)(/Users/lifuwei/Desktop/hive.png)]

2、hive的优缺点

优点:
1、操作接口采用类SQL语法,提高快速开发的能力
2、避免了去写复杂的mapreduce,减少开发人员的学习成本
3、hive的执行延迟比较高,因此hive常用语数据分析,对实时性要求不高
4、hive优势在于处理大数据,对于处理小数据没有优势,因此hive的执行延迟比较高
5、hive支持用户自定义函数,用户可以根据自己的需求实现自己的而函数
缺点:
1、hive的hql表达能力有限
2、hive的效率比较滴滴

3、hive的原理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kA6bbkEb-1632406205876)(/Users/lifuwei/Desktop/hive底层原理.png)]

1、用户接口
   CLI、JDBC、ODBS、WEBUI
2、元数据
   包括表名,表所属的数据库(默认是default),表的拥有者,列、分区字段、表的类型、表的数据所在目录
3、HDFS
   用于数据的存储
4、驱动器:Driver
   1、解析器:将SQL字符串转换成抽象语法树AST,主要用于检查表是否存在,字段是否存在,SQL是否有误
   2、编译器:将AST编译生成逻辑执行计划
   3、优化器:对逻辑执行计划进行优化
   4、执行器:把逻辑执行计划转换成可以运行的物理计划,相当于转换成mapreduce、spark
5、运行原理
    hive通过给用户提供一系列的交互接口,接收到用户指令(SQL),使用自己的Driver,并结合元数据,将这些指令转换成mapreduce,提交给hadoop中执行,最后将结果返回输出到用户交互接口

4、hive和数据库的比较

其实hive不是数据库,它只是采用了一种类SQL的语言进行查询。两者的相似之处就是查询语言类似。hive主要是为数据仓库而设计的,并不是为存储数据而存在

5、hive的浅知识

1、hive是建立在数据仓库之上,所以hive的数据都是存储在HDFS中。而数据库则是可以将数据保存在快设备或者本地文件系统中
2、数据仓库的内容都是读多写少,所以hive中不建议对数据的改写
3、hive是通过hadoop提供的mapreduce来实现,而数据库通常有自己的执行引擎
4、hive的执行延迟比较高。一是hive没有索引需要扫描全表、二是maprecue本身具有高延迟
5、可扩展性比较好
6、hive可以支持大规模的数据

hive的安装部署

1、上传
2、解压
tar -zxvf apache-hive-1.2.1 -C /opt/apps
3、修改hive的名
mv apache-hive-1.2.1 hive
4、修改/opt/module/hive/conf 目录下的 hive-env.sh.template 名称为 hive-env.sh
mv hive-env.sh.template hive-env.sh
5、配置hive-env.sh文件
   配置HADOOP_HOME路径
   export HADOOP_HOME=/opt/apps/hadoop-2.7.2
   配置HIVE_HOME_DIR路径
   export HIVE_HOME_DIR=/opt/apps/hive/conf
6、hadoop集群配置
   1、必须启动hdfs和yarn
   start-dfs.sh
   start-yarn.sh
   2、在HDFS上创建/tmp和/user/hive/warehouse两个目录并修改他们的同组权限可写
   hadoop fs -mkdir /tmp
   hadoop fs -mkdir -p /user/hive/warehouse
   hadoop fs -chmod g+w /tmp
   hadoop fs -chmod g+w /user/hive/warehouse

hive的基本操作

1、启动hive
   在bin目录下  hive
2、查看数据库
   show databases;
3、打开默认数据库
   use default
4、创建一张表
   create table student(id int,name string);
5、显示数据库中有几张表
   show tables;
6、查看表的结构
   desc student;
7、向表中插入数据
   insert into student values(1000,"ss");
8、查询表中数据
   select * from student;
9、退出hive
   quit;
10、查看hive在hdfs中的结构
数据库:在hdfs中表现为${hive.metasrore.warehouse.dir}目录下一个文件夹
表:在hdfs中表现所属db目录下一个文件夹,文件夹中存放该表中的具体数据

将本地文件导入hive

1、在、/opt/apps/目录下创建data
   mkdir data
2、在该目录喜爱创建student.txt文件并添加数据
   touch student.txt
   vi student.txt
   001 wanzgong
   002 lisi
   003 wangwu
3、启动hive
   bin/ hive
4、显示数据库
   show databases
5、使用default
   use default
6、显示default数据库中的表
   show databases
7、删除已创建的student表
   drop table students
8、创建student表,并声明文件分隔符'\t'
   create table student(
   id int, 
   name string
   )
   ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
9、加载/opt/apps/data/student.txt文件到student数据库表中
load data local inpath '/opt/apps/data/students.txt' into table student;
10、hive查询结果
    select * from student;
11、遇到问题
    再打开一个客户端启动hive,会产生java.sql.SQLEexceptionu异常
    原因:Metastore默认存储在自带derby数据库中,推荐使用M有SQL存储Metastore

MySQL的安装


Hive元数据配置到Mysql

1、驱动拷贝
2、配置Metastore到Mysql
3、多窗口启动hive

Hive其他命令操作

1、退出hive窗口
   exit;
   quit;
2、在hive中查看hdfs文件系统
   dfs -ls /;
3、在hive中查看本地文件系统
   !ls /opt/apps/data
4、查看在hive中输入的所有历史命令
  (1)进入到当前用户的根目录/root 或/home/atguigu
  (2)查看. hivehistory 文件
   在根目录下:cat .hivehistory

hive常见属性配置

1、hive数据仓库位置配置
   1、Default数据仓库的最原始位置是在hdfs上的:/user/hive/apps
   2、在仓库目录下,没有对默认数据库default创建文件夹。如果一个表属于default数据库,直接在数据仓库目录下创建一个文件夹
   3、修改default数据仓库原始位置(hive-default.xml.template——》hive-site.xml)
<property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
    <description>location of default database for the     warehouse</description>
</property>
配置同组用户有执行权限
bin/  hdfs dfs -chmod g+w /user/hive/apps
2、查询后信息显示配置
   1、在hive-site.xml文件中配置,就可以实现显示当前数据库,以及查询表的头信息配置
   <property>
        <name>hive.cli.print.header</name>
        <value>true</value>
   </property>
   
   <property>
        <name>hive.cli.print.current.db</name>
        <value>true</value>
   </property>
   2、重新启动hive,对比配置前后差异
3、Hive运行日志信息配置
   1、hive的log默认存放在/tmp/atguigu/hive.log目录下
   2、修改hive的log存放日志到/opt/apps/hive/logs
      1、修改/opt/module/hive/conf/hive-log4j.properties.template 文件名称为
hive-log4j.properties
      mv hive-log4j.properties.template hive-log4j.properties
      2、在 hive-log4j.properties文件中修改log存放位置
      hive.log.dir=/opt/apps/hive/logs
 4、参数配置方式
    1、查看当前所有的配置信息
    set;
    2、参数配置三种方式
       1、默认配置文件:hive-default.xml
       用户自定义配置文件:hive.site.xml
    **用户自定义配置会覆盖默认配置
      Hive是作为hadoop的客户端启动的,所以Hive的配置会覆盖Hadoop的配置
       2、命令行参数方式
       bin/ hive -hiveconf mapred.reduec.tasks=10;
       **但是这个只针对本次有效
       3、参数声明方式
          可以在HQL中使用SET关键字设定参数
          set mapred.reduce.tasks=100;
          **但是这个只针对本次有效
          查看参数设置
          set mapred.reduce.tasks; 
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-24 10:37:42  更:2021-09-24 10:40:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:56:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码