Hive

Hive基本原理详解 目录一、Hive概述(1)什么是Hive?(2)Hive的优点及应用场景二、Hive 和 RDBMS(关系数据库管理系统)的对比三、Hive架构(1)Hive的基本组成(2)各组件的基本功能四、Hive的工作原理 一、Hive概述 (1)什么是Hive? 由Facebook开源用于解决海量结构化日志的数据统计 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射成一张表,并提供类SQL查询功能 构建在Hadoop之上的数据仓库:使用HQL作为查询接口,使用HDFS存储,使用MapRed 阅读详情

hive

  1. 查询

    1. 全表查询 selec * from table
    2. 在查询字段后使用 name as new_name可以重命名一个列
  2. 算术运算符

    A+BA 和 B 相加
    A-BA 减去 B
    A*BA 和 B 相乘
    A/BA 除以 B
    A%BA 对 B 取余
    A&BA 和 B 按位取与
    A|BA 和 B 按位取或
    A^BA 和 B 按位取异或
    ~AA 按位取反
  3. 常用函数

    1. count():求总行数
    2. max():最大值
    3. min():最小值
    4. sum():总和
    5. avg():平均值
  4. Limit :查询数据限制返回的行数

  5. where : 数据过滤,将不符合条件的数据过滤掉

  6. 比较运算符

    操作符支持的数据类型描述
    A=B基本数据类型如果 A 等于 B 则返回 TRUE,反之返回 FALSE
    A<=>B基本数据类型如果 A 和 B 都为 NULL,则返回 TRUE,如果一边为 NULL, 返回 False
    A<>B, A!=B基本数据类型A 或者 B 为 NULL 则返回 NULL;如果 A 不等于 B,则返回 TRUE,反之返回 FALSE
    A<B基本数据类型A 或者 B 为 NULL,则返回 NULL;如果 A 小于 B,则返回 TRUE,反之返回 FALSE
    A<=B基本数据类型A 或者 B 为 NULL,则返回 NULL;如果 A 小于等于 B,则返 回 TRUE,反之返回 FALSE
    A>B基本数据类型A 或者 B 为 NULL,则返回 NULL;如果 A 大于 B,则返回 TRUE,反之返回 FALSE
    A>=B基本数据类型A 或者 B 为 NULL,则返回 NULL;如果 A 大于等于 B,则返 回 TRUE,反之返回 FALSE
    A [NOT] BETWEEN B AND C基本数据类型如果 A,B 或者 C 任一为 NULL,则结果为 NULL。如果 A 的 值大于等于 B 而且小于或等于 C,则结果为 TRUE,反之为 FALSE。 如果使用 NOT 关键字则可达到相反的效果。
    A IS NULL所有数据类型如果 A 等于 NULL,则返回 TRUE,反之返回 FALSE
    A IS NOT NULL所有数据类型如果 A 不等于 NULL,则返回 TRUE,反之返回 FALSE
    IN(数值 1, 数值 2)所有数据类型使用 IN 运算显示列表中的值
    A [NOT] LIKE BSTRING 类型B 是一个 SQL 下的简单正则表达式,也叫通配符模式,如 果 A 与其匹配的话,则返回 TRUE;反之返回 FALSE。B 的表达式 说明如下:‘x%’表示 A 必须以字母‘x’开头,‘%x’表示 A 必须以字母’x’结尾,而‘%x%’表示 A 包含有字母’x’,可以 位于开头,结尾或者字符串中间。如果使用 NOT 关键字则可达到 相反的效果。
    A RLIKE B, A REGEXP BSTRING 类型B 是基于 java 的正则表达式,如果 A 与其匹配,则返回 TRUE;反之返回 FALSE。匹配使用的是 JDK 中的正则表达式接口
  7. like和rlike

    1. like

      1. % 代表零个或多个字符(任意个字符)。

      2. _ 代表一个字符。

      3. 实例 :查找名字以 A 开头的员工信息

        select * from emp where ename LIKE 'A%';

    2. rlike

      1. 实例:查找名字中带有 A 的员工信息

        select * from emp where ename RLIKE '[A]';

  8. 逻辑运算符

    1. and :逻辑并
    2. or : 逻辑或
    3. not : 逻辑非
  9. 分组

    1. Group by

      1. 按一个或多个列对数据进行分组,然后对每个组进行聚合操作。

      2. 使用group by 语句,select语句中出现的字段,都必须在group by 语句中

      3. 实例:计算 emp 表每个部门的平均工资

        select t.deptno, avg(t.sal) avg_sal from emp t group by t.deptno;

    2. Having

      1. having 和 where 的区别

        (1)where 后面不能写分组函数,而 having 后面可以使用分组函数。

        (2)having 只用于 group by 分组统计语句。

        (3)having可以对group by 后的聚合字段进行操作

      2. 实例:求每个部门的平均薪水大于 2000 的部门

        select deptno, avg(sal) avg_sal from emp group by deptno having avg_sal > 2000;

  10. join

    1. 等值join(内连接)

      只有进行连接的两个表中都存在与连接条件相匹配的数据才会被保留下来

    2. 左外连接

      JOIN 操作符左边表中符合 WHERE 子句的所有记录将会被返回。

    3. 右外连接

      JOIN 操作符右边表中符合 WHERE 子句的所有记录将会被返回。

    4. 满外连接

      将会返回所有表中符合 WHERE 语句条件的所有记录。如果任一表的指定字 段没有符合条件的值的话,那么就使用 NULL 值替代。

    5. 笛卡尔积

      1. 笛卡尔积的产生条件
        1. 省略连接条件
        2. 连接条件无效
        3. 所有表中的所有行互相连接
  11. 排序

    1. 全局排序(order by)

      1. 全局排序只有一个reduce

      2. ASC(ascend): 升序(默认)

        DESC(descend): 降序

      3. 可按多个列排序

      4. 实例:查询员工信息按工资降序排列

        select * from emp order by sal desc

    2. reduce内部排序(sort by)

      1. Sort by 为每个 reducer 产生一个排序文件。每个 Reducer 内部进行排序,对全局结果集 来说不是排序。

      2. 实例:根据部门编号降序查看员工信息

        select* from emp sort by deptno desc

    3. 分区(distribute by)

      1. 在有些情况下,我们需要控制某个特定行应该到哪个 reducer,通常是为 了进行后续的聚集操作。distribute by 子句可以做这件事。distribute by 类似 MR 中 partition

        (自定义分区),进行分区,结合 sort by 使用.

      2. 实例:先按照部门编号分区,再按照员工编号降序排序

        select * from emp distribute by deptno sort by empno desc

    4. cluster by

      1. 当 distribute by 和 sorts by 字段相同时,可以使用 cluster by 方式。

      2. cluster by 除了具有 distribute by 的功能外还兼具 sort by 的功能。但是排序只能是升序 排序,不能指定排序规则为 ASC 或者 DESC。

      3. 实例:

        select* from emp cluster by deptno

  12. 分区表

    1. 分区表实际上就是对应一个 HDFS 文件系统上的独立的文件夹,该文件夹下是该分区所 有的数据文件。Hive 中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据 集。在查询时通过 WHERE 子句中的表达式选择查询所需要的指定的分区,这样的查询效率 会提高很多。

    2. 创建语法:在创建表时加上 partitioned by(字段名 类型)。分区字段不能是表中已经存在的数据字段,可以将分区字段看作表的伪列

    3. 加载数据到分区表:分区表在加载数据时需在最后指定要添加数据的分区

    4. 查询分区表数据:将分区字段当作普通字段使用即可

    5. 增加分区:语法:

      alter table dept_partition add partition(day='20200405') partition(day='20200406');

      可同时添加多个分区, 分区间用空格隔开

    6. 删除分区:语法:

      alter table dept_partition drop partition (day='20200404'), partition(day='20200405');

      可同时删除多个分区,分区间用逗号隔开

    7. 查看表有多少个分区和分区表结构

      语法:show partitions dept_partition;

      desc formatted dept_partition;

    8. 二级分区

      1. 在创建表时加上 partitioned by(字段名1 类型,字段名2 类型,…)。
    9. 把数据直接上传到分区目录上,让分区表和数据产生关联的三种方式

      1. 上传数据后修复

        执行修复命令

        msck repair table dept_partition2;

      2. 上传数据后添加分区

        上传完数据后,使用添加分区的方法将上传目录添加成新的分区

      3. 创建文件夹后 load 数据到分区

        通过load命令对load数据进行指定分区操作

  13. 分桶表

    1. 分桶是将数据集分解成更容易管理的若干部分的另一个技术。 分区针对的是数据的存储路径;分桶针对的是数据文件。

    2. 创建分桶表,在创建表示通过clustered by(字段)语句进行分桶表的创建,指定字段必须是表中已存在的数据字段

    3. 分桶规则

      Hive 的分桶采用对分桶字段的值进行哈希,然后除以桶的个数求余的方 式决定该条记录存放在哪个桶当中

  14. 抽样查询

    1. 对于非常大的数据集,有时用户需要使用的是一个具有代表性的查询结果而不是全部结 果。Hive 可以通过对表进行抽样来满足这个需求。

    2. 语法:tablesample(bucket x out of y)

      x表示从哪个bucket开始抽取,如果需要取多个分区,以后的分区号为当前分区号加上y。例如,table总bucket数为4,tablesample(bucket 1 out of 2),表示总共抽取(4/2=)2个bucket的数据,抽取第1(x)个和第3(x+y)个bucket的数据。

      注意:x的值必须小于等于y的值,否则

      FAILED: SemanticException [Error 10061]: Numerator should not be bigger than denominator in sample clause for table stu_buck

  15. 函数

    1. 系统内置函数

      1. 空字段赋值

        语法:NVL( value,default_value)。它的功能是如 果 value 为 NULL,则 NVL 函数返回 default_value 的值,否则返回 value 的值,如果两个参数 都为 NULL ,则返回 NULL。

      2. case when then else end

        case 字段 when 值 then 值 then 值 else 值 end

        case 选取字段 与when后的值进行判断,结果为true则返回then后的值否则返回else后的值,类似于switch case

        实例:

        select dept_id,
        sum(case sex when '男' then 1 else 0 end) male_count,
        sum(case sex when '女' then 1 else 0 end) female_count from emp_sex
        group by dept_id;
        
  16. 行转列

    1. CONCAT(string A/col, string B/col…):返回输入字符串连接后的结果,支持任意个输入字 符串;

    2. CONCAT_WS(separator, str1, str2,…):它是一个特殊形式的 CONCAT()。第一个参数剩余参 数间的分隔符。分隔符可以是与剩余参数一样的字符串。如果分隔符是 NULL,返回值也将 为 NULL。这个函数会跳过分隔符参数后的任何 NULL 和空字符串。分隔符将被加到被连接 的字符串之间;注意: CONCAT_WS must be "string or array

    3. COLLECT_SET(col):函数只接受基本数据类型,它的主要作用是将某字段的值进行去重 汇总,产生 Array 类型字段。

    4. 实例:数据:

      nameconstellationblood_type
      孙悟空白羊座A
      大海射手座A
      宋宋白羊座B
      猪八戒白羊座A
      凤姐射手座A
      苍老师白羊座B

      需求:

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EYY3jVcA-1616401917030)(C:\Users\13918\AppData\Roaming\Typora\typora-user-images\image-20210205184719592.png)]

      代码:

      SELECT
      t1.c_b, CONCAT_WS("|",collect_set(t1.name))
      FROM (
      SELECT
      NAME,
      CONCAT_WS(',',constellation,blood_type) c_b FROM person_info
      )t1
      GROUP BY t1.c_b
      
      
  17. 列转行

    1. EXPLODE(col):将 hive 一列中复杂的 Array 或者 Map 结构拆分成多行。

      LATERAL VIEW

      用法:LATERAL VIEW udtf(expression) tableAlias AS columnAlias

      解释:用于和 split, explode 等 UDTF 一起使用,它能够将一列数据拆成多行数据,在此 基础上可以对拆分后的数据进行聚合。

    2. 数据:

      moviecategory
      《疑犯追踪》悬疑,动作,科幻,剧情
      《Lie to me》悬疑,警匪,动作,心理,剧情
      《战狼 2》战争,动作,灾难
    3. 需求:

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gC66UxD2-1616401917038)(C:\Users\13918\AppData\Roaming\Typora\typora-user-images\image-20210205184840704.png)]

    4. 代码:

      SELECT
      movie, category_name
      FROM
      movie_info lateral VIEW
      explode(split(category,",")) movie_info_tmp AS category_name;
      
      
  18. 窗口函数

    1. OVER():指定分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变而变化。

      CURRENT ROW:当前行

      n PRECEDING:往前 n 行数据 n FOLLOWING:往后 n 行数据 UNBOUNDED:起点,

      UNBOUNDED PRECEDING 表示从前面的起点,

      UNBOUNDED FOLLOWING 表示到后面的终点 LAG(col,n,default_val):往前第 n 行数据 LEAD(col,n, default_val):往后第 n 行数据

      NTILE(n):把有序窗口的行分发到指定数据的组中,各个组有编号,编号从 1 开始,对 于每一行,NTILE 返回此行所属的组的编号。注意:n 必须为 int 类型。

  19. rank

    1. RANK() 排序相同时会重复,总数不会变
    2. DENSE_RANK() 排序相同时会重复,总数会减少
    3. ROW_NUMBER() 会根据顺序计算
  20. 添加自定义函数

    hive命令行 add jar jar_path

    创建函数

    create [temporary] function [if exists] function_name as class_name

    删除函数drop [temporary] function [if exists] function_name

  21. 自定义UDF

    1. 创建Maven工程
    2. 创建java类继承GenericUDF类,重写方法
    3. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-06f0ceMf-1616401917040)(C:\Users\13918\AppData\Roaming\Typora\typora-user-images\image-20210207180543975.png)]
    4. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1OSuSy5j-1616401917042)(C:\Users\13918\AppData\Roaming\Typora\typora-user-images\image-20210207180621338.png)]
    5. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HNdK2QMp-1616401917044)(C:\Users\13918\AppData\Roaming\Typora\typora-user-images\image-20210207180645184.png)]
  22. 自定义UDTF

    1. 继承类GenericUDTF
    2. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v6rUW10m-1616401917045)(C:\Users\13918\AppData\Roaming\Typora\typora-user-images\image-20210207180754853.png)]
    3. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4MYKAx21-1616401917046)(C:\Users\13918\AppData\Roaming\Typora\typora-user-images\image-20210207180822119.png)]
    4. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gpQ3x4wG-1616401917047)(C:\Users\13918\AppData\Roaming\Typora\typora-user-images\image-20210207180834555.png)]
  23. 练习

    1. 数据表结构

      视频表

      字段备注详细描述
      videoId视频唯一 id(String)11 位字符串
      uploader视频上传者(String)上传视频的用户名 String
      age视频年龄(int)视频在平台上的整数天
      category视频类别(Array)上传视频指定的视频分类
      length视频长度(Int)整形数字标识的视频长度
      views观看次数(Int)视频被浏览的次数
      rate视频评分(Double)满分 5 分
      Ratings流量(Int)视频的流量,整型数字
      conments评论数(Int)一个视频的整数评论数
      relatedId相关视频 id(Array)相关视频的 id,最多 20 个

      用户表

      字段备注字段类型
      uploader上传者用户名string
      videos上传视频数int
      friends朋友数量int
    2. 统计视频观看数Top10

      思路:使用 order by 按照 views 字段做一个全局排序即可,同时我们设置只显示前 10

      条。

      代码

      select * from gulivideo order by views limit 10;
      
    3. 统计视频类别热度 Top10

      思路:选出视频id和类型并将类型炸裂开

      select 
          videoId,
          videotype
      from gulivideo
      lateral view explode(category) type_tmp as videotype;t1
      
      

      再根据t1按类型分组统计再排序选出前十

      select 
          t1.videotype,
          count(*) as num
      from 
          (select 
          videoId,
          videotype
      from gulivideo
      lateral view explode(category) type_tmp as videotype)t1
      group by t1.videotype
      order by num desc
      limit 10;
      
    4. 统计出视频观看数最高的 20 个视频的所属类别以及类别包含Top20 视频的个数

      思路:先选出观看数最高的20个视频

      select 
         videoId,
         category,
         views
      from 
          gulivideo
      order by 
         views
         desc
      limit 20;t1
      

      一个视频对应多个类型,将类型炸裂开

      select 
          videoId,
          category_name
      from 
          (select 
         videoId,
         category,
         views
      from 
          gulivideo
      order by 
         views
         desc
      limit 20)t1
      lateral view explode(category) category_tmp 
      as category_name;t2
      

      按照类别进行统计

      select
          category_name,
          count(*) num
      from 
          (select 
          videoId,
          category_name
      from 
          (select 
         videoId,
         category,
         views
      from 
          gulivideo
      order by 
         views
         desc
      limit 20)t1
      lateral view explode(category) category_tmp 
      as category_name)t2
      group by 
          category_name;
      
    5. 统计视频观看数 Top50 所关联视频的所属类别排序

      思路:先选出观看数前50视频的关联视频

      select 
          views,
          relatedId
      from 
          gulivideo
      order by views desc
      limit 50;t1
      

      将关联视频id炸裂开

      select
          id
      from (select 
          views,
          relatedId
      from 
          gulivideo
      order by views desc
      limit 50)t1
      lateral view explode(t1.relatedId) relatedId_tmp 
      as id;t2
      

      将炸裂出来的id和原表进行join

      select
          g.videoId,
          g.category
      from
          (select
          id
      from (select 
          views,
          relatedId
      from 
          gulivideo
      order by views desc
      limit 50)t1
      lateral view explode(t1.relatedId) relatedId_tmp 
      as id)t2
      join
          gulivideo g
      on 
          t2.id = g.videoId;t3
      

      将关联后的表对类型进行炸裂

      select
          videoId,
          category_name
      from 
         (select
          g.videoId,
          g.category
      from
          (select
          id
      from (select 
          views,
          relatedId
      from 
          gulivideo
      order by views desc
      limit 50)t1
      lateral view explode(t1.relatedId) relatedId_tmp 
      as id)t2
      join
          gulivideo g
      on 
          t2.id = g.videoId)t3
      lateral view explode(category) category_tmp 
      as category_name;t4
      

      按炸裂后的类型进行统计排序

      select 
          category_name,
          count(*) num
      from 
          (select
          videoId,
          category_name
      from 
         (select
          g.videoId,
          g.category
      from
          (select
          id
      from (select 
          views,
          relatedId
      from 
          gulivideo
      order by views desc
      limit 50)t1
      lateral view explode(t1.relatedId) relatedId_tmp 
      as id)t2
      join
          gulivideo g
      on 
          t2.id = g.videoId)t3
      lateral view explode(category) category_tmp 
      as category_name)t4
      group by 
          category_name
      order by num;
      
    6. 统计每个类别中的视频热度 Top10,以 Music 为例

      SELECT
      t1.videoId, t1.views, t1.category_name
      FROM (
      SELECT
      videoId, views, category_name
      FROM gulivideo_orc
      lateral VIEW explode(category) gulivideo_orc_tmp AS category_name
      )t1 WHERE
      t1.category_name = "Music" ORDER BY
      t1.views DESC
      LIMIT 10;
      
    7. 统计每个类别视频观看数 Top10

      思路:取出视频id,观看数和类别并将类别炸开

      select
         videoId,
         views,
         category_name
      from 
         gulivideo
      lateral view explode(category) category_tmp
      as category_name;t1
      

      按照类别分组按视频播放量排序添加排名

      select 
         category_name,
         videoId,
         row_number()
         over(partition by category_name 
             order by views desc) as hot
      from 
         (select
         videoId,
         views,
         category_name
      from 
         gulivideo
      lateral view explode(category) category_tmp
      as category_name)t1;t2
      

      选取每个类别排名前十的视频

      select 
          category_name,
          videoId,
          t2.hot
      from
          (select 
         category_name,
         videoId,
         row_number()
         over(partition by category_name 
             order by views desc) as hot
      from 
         (select
         videoId,
         views,
         category_name
      from 
         gulivideo
      lateral view explode(category) category_tmp
      as category_name)t1)t2
      where
          t2.hot <= 10;
      
    8. 统计上传视频最多的用户 Top10 以及他们上传的视频 观看次数在前 20 的视频

      思路:先选取上传视频数前十的用户

      select
         uploader,
         videos
      from
         gulivideo_user_ori
      order by videos
      desc
      limit 10;t1
      

      将t1表和gulivideo表按用户名关联,按观看次数排序取前20

      select 
          t1.uploader,
          g.views,
          g.videoId
      from
          (select
         uploader,
         videos
      from
         gulivideo_user_ori
      order by videos
      desc
      limit 10)t1
      join
          gulivideo g
      on 
          t1.uploader = g.uploader
      order by g.views desc
      limit 20;
      
Hive的安装配置及原理 完美解决解压hive缺少hive-site.xml文件,和安全模式无法启动hive等问题 Hive原理 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。 Hvie是建立在Hadoop上的数据仓库基础架构。它提供了一系列的工... 阅读详情

相关推荐

2、Hive:启动Hive

Hive:启动Hive

m0_53336038的博客 6922

Hive详解(一篇文章让你彻底学会Hive)

最详细的Hive讲解,一篇既可以学会hive的相关知识。

m0_51388399的博客 8545

[Hive]五、Hive 源码编译

G:\Bigdata\2.hive\大数据技术之Hive源码编译。

weixin_44428807的博客 1727

Hive(完整版)

大数据-Hive(完整版)

非我执笔 7596

hive 重启后台hive服务

停止hive [root@zjj101 conf]# jps 22353 NodeManager 90933 DataNode 22105 ResourceManager 90808 NameNode 41900 Jps 77644 RunJar [root@zjj101 conf]# kill -9 77644 [root@zjj101 conf]# 启动hive shell命令: [root@zjj101 conf]# nohup hive --service hiveserver2 &

张俊杰 的博客 9015

【Hive】Mac安装Hive

一. 安装 hive安装:brew install hive mysql安装:brew install mysql 启动mysql:bash mysql.server start 二. 元数据库配置 Hive默认用derby作为元数据库。这里我们用mysql来存储元数据,下面作一些初始化配置 登录mysql:mysql -u root 创建数据库:create database metast...

藏经阁 | 玄苦 1213

Hive入门

Hive是基于Hadoop的一个数据仓库工具,它可以将结构化或板结构换的数据文件转化为一张数据库表,并提供简单的sql查询功能。 一、Hive简介

m0_61332144的博客 2397

hive安装

一、前提:二、安装步骤:1、上传jar包至/usr/local/soft2、解压并重命名3、配置环境变量三、配置HIVE文件1、配置hive-env.sh2、配置hive-site.xml3、配置日志4、修改默认配置文件5、上传MySQL连接jar包四、修改MySQL编码1、 编辑配置文件2、加入以下内容:3、 重启mysql五、初始化HIVE六、进入hive七、后续配置八、测试hivehive中的几种存储格式TextFile格式:文本格式RCFile:ORCFile:Parquet:安装hive所需要的虚

m0_64372793的博客 1327

Hive(一)概述

Hive(一)概述

ks_1998的博客 2231

Hive on Spark and Spark sql on Hive

结构上Hive On Spark和SparkSQL都是一个翻译层,把一个SQL翻译成分布式可执行的Spark程序。Hive和SparkSQL都不负责计算。Hive的默认执行引擎是mr,还可以运行在Spark和Tez。Spark可以连接多种数据源,然后使用SparkSQL来执行分布式计算。Hive On Spark 配置1、首先安装包要选择对,否则就没有开始了。Hive版本:apache-hive-...

代灿灿灿的博客 3226

自适应陷波器的原理与实现

x(t)是叠加有两个频率干扰信号的输入信号,s(t)是需要保留的有用信号,在输入信号中,我们只知道频率w1和w2,但不知道信号的幅度A和相位θ,自适应陷波器可以估计两个未知的幅度和相位值,这需要我们提供两路相互正交的单频信号,如cos(w1t)、sin(w1t),通过调整其权值,从而合成出与干扰信号完全相同的信号A1cos(w1t+θ1),从而实现干扰信号的滤除。采用LMS算法,在保证不损失其他有用信号的情况下,有效地抑制输入信号中某一频率的干扰,如需滤除多个频率,只需要增加相应的输入信号。

Melkiades2333的博客 6883

Hive 安装 以及使用 DataGrip 连接 Hive

Hive 安装 以及使用 DataGrip 连接 HiveHive 安装说明Hive 安装前的准备Hive 安装Hive 启动Hive 安装常见的问题 Hive 安装说明 ① 环境说明 Hadoop 环境已通过腾讯云服务器完成搭建,我是将 hive 安装到 该 hadoop 集群的某个节点了 Mysql 中间件使用的是阿里云的产品 ② 版本说明 Hadoop 2.7.5 +Hive 2.1.1 + Mysql 8.0.18 + Centos 7 + DataGrip 2021 Hive 安装前的准备 ① 搭

半吊子Kyle的博客 6857

Ubuntu20.04安全重启后WiFi图标消失?MT7922网卡驱动修复全攻略

本文详细解析了Ubuntu20.04安全重启后WiFi图标消失的问题,特别是针对MT7922网卡驱动失效的情况。通过诊断命令和分步解决方案,包括禁用PCIe ASPM、更新无线固件和升级HWE内核,帮助用户快速恢复网络连接。文章还提供了进阶排查技巧和系统优化建议,确保WiFi稳定运行。

weixin_29202687的博客 368

Hive和MySQL的部署、配置Hive元数据存储到MySQL、Hive服务的部署

Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的 SQL 查询功能,可以将 SQL 语句转换为 MapReduce 任务来执行。Hive 定义了一种简单的类 SQL 查询语言,称为 HQL(Hive Query Language),它允许熟悉 SQL 的用户查询数据。

2301_78038072的博客 6767

RV1126上YOLOv8部署实战:从模型转换到板端推理的完整避坑指南

本文提供了在瑞芯微RV1126芯片上部署YOLOv8目标识别算法的完整实战指南。内容涵盖从模型转换、环境搭建到板端推理代码编写的全流程,重点解析了RKNN-Toolkit使用、量化配置、内存优化及后处理实现等关键环节的常见问题与解决方案,旨在帮助开发者高效避坑,实现边缘AI应用的稳定落地。

pz89012345的博客 567

黑科技已上线|Lazada数据分析软件,一键式搞定你的店铺!

工欲利其事,必先利其器。在lazada跨境电商的整个流程中,适当的使用一些工具,不仅能大大的简化工作流程,而且可以提高实施效率。Mengla专为lazada电商卖家行业精细化分析lazada数据分析软件都有哪些强大功能! 一、两大优势: 1.海量数据: 数据覆盖面积大;数据分析维度逛;精确算法抓取海量数据;亿万数据秒级响应多种数据来源; 2.技术成熟: 深耕SaaS大数据挖掘;提供一站式数据分析服务;拥有领先的采集技术和运算模型架构; 二、Lazada数据分析软件的功能: 1.各国站点一键分析: 马来西亚

Menglakeji的博客 1144

Hive以及Hive安装部署

文章目录1.Hive简介1.1什么是Hive1.2为什么使用Hive1.3Hive的特点1.4Hive架构图1.5Hive与Hadoop的关系1.6Hive与传统数据库对比2.HIVE的安装部署1.derby版hive直接使用1、解压hive2.修改目录名称3.初始化元数据库4.启动5.创建数据库6.创建表7.插入数据8.可能遇到的问题9.Hive启动报错Safe mode2.基于mysql管理元数据版hive1、解压hive2.修改目录名称3.检测服务器mysql数据库4.配置mysql允许外网访问5.退

望山。 2348

华为防火墙双ISP出口实战:如何用策略路由实现电信联通流量自动切换(附配置截图)

本文详细解析了华为防火墙在双ISP环境下的智能选路技术,通过策略路由与健康检测的深度应用,实现电信联通流量的自动切换。文章包含实战配置截图,帮助企业解决切换延迟、路径劣化等核心挑战,提升业务连续性。

backprop5master的博客 643

从Hive on YARN到Hive on Spark

本实战通过配置 Hive 与 Spark 集成,分别基于 YARN(MapReduce)和 Spark 引擎执行词频统计任务,验证了 Hive on Spark 在查询性能上的显著优势,同时展示了 Hadoop、Hive 和 Spark 的协同部署与关键配置步骤。

howard2005的专栏 1776

海康SDK实战:如何从PS流中提取H264裸流并实现前端播放(附完整代码)

本文详细介绍了如何利用海康SDK从PS流中提取H264裸流,并构建无插件前端播放的完整链路。通过解析PS流结构、提取H264 ES流,结合WebSocket实时传输与WFS.js前端播放器,实现了低延迟、高可控性的视频流处理方案,为开发者提供了从数据源到前端渲染的实战代码与清晰指南。

weixin_29051811的博客 474

5、自适应 RBF 神经网络控制方法解析

本文详细解析了基于RBF神经网络的多种自适应控制方法,包括针对函数未知、参数未知以及存在外部干扰的非线性系统的控制策略。通过李雅普诺夫稳定性理论设计自适应律,确保闭环系统稳定,并结合仿真示例和MATLAB代码实现,展示了方法的有效性。文章还对比了不同控制方法的适用场景,并给出了实际应用流程,为复杂系统控制提供了系统性解决方案。

ol789012的博客 71

【Hive】Hive安装

第二章 Hive安装第三章 DDL(Data Definition Language)数据定义第四章 DML(Data Manipulation Language)数据操作第五章 Hive查询第六章 Hive的基础知识第七章 Hive函数第八章 分区表和分桶表第九章 文件格式和压缩第十章 企业级调优附录:常见错误及解决方案。

weixin_44917201的博客 1395

Linux系统之部署经典魔塔小游戏

Linux系统之部署经典魔塔小游戏

jks212454的博客 1810

hive on spark 还是 spark on hive?

在运行sql的时候,hive on spark 还是 spark on hive 到底是什么呢?它们是一个东西吗?区别是什么?

chashugu2022的博客 2288

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Hive配置

hive配置

qq_51180928的博客 1371

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Hive 配置

我使用的hive版本是1.2.1,以下是默认的配置文件。 hive-env.sh 重命名hive-env.sh.template为hive-env.sh,修改如下信息: # Set HADOOP_HOME to point to a specific hadoop install directory # 设置Hadoop安装目录 export HADOOP_HOME=/opt/module/ha...

小杨的技术博客 2万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: CentOS 7.4安装及Hadoop伪分布式配置(虚拟机:VMware)
下一篇: mapReduce知识点(1)
_知多少_
博客等级 码龄7年 273粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值