hadoop
文章平均质量分 78
牧码文
只要思想不滑坡,从此不怕bug多
展开
-
HIVE自定义UDTF函数
其实就是将参数列表封装成了StructObjectInspector对象,如果想要校验参数,那么通过上述的方式,可以看到,调用getAllStructFieldRefs方法,获取所有的输入列列表,遍历就可以取到参数列表了。HIVE提供了丰富的内置函数,但是对于一些复杂逻辑还是需要自定义函数来实现,对此,HIVE也提供了一些自定义的接口和类。注意在UDTF函数中,会出现传入数据异常的问题,在这里我并没有校验参数,在实际生产中是需要校验参数的。UDAF:多进一出,多对一的关系数据。顾名思义,打扫干净,下一位。原创 2022-09-02 21:43:54 · 1129 阅读 · 0 评论 -
HIVE自定义UDAF函数
/ 确定各个阶段输入输出参数的数据格式ObjectInspectors public ObjectInspector init(Mode m , ObjectInspector [ ] parameters) throws HiveException;// 保存数据聚集结果的类 abstract AggregationBuffer getNewAggregationBuffer() throws HiveException;...原创 2022-08-31 23:38:54 · 1861 阅读 · 0 评论 -
HIVE多维分析函数:grouping sets、cube、rollup
这里with cube就等同于grouping sets ((department,name,age),(department,name),(department,age),(department),(name,age),(name),(age),())HIVE的多维分析函数,配合group by 使用,通常的group by只能对单维度的字段进行分析聚合操作,如果想要获取不同组合字段的聚合操作,就需要写多个group by 组合,HIVE提供了内置的函数用于上述这种多维分析。...原创 2022-08-29 22:36:23 · 3122 阅读 · 1 评论 -
HIVE存储格式和压缩方式详解
引用:https://blog.csdn.net/yizhiniu_xuyw/article/details/113811001LZO压缩算法特点:SNAPPY压缩算法特点:尽管 Snappy 应该相当轻便,但它主要针对 64 位 x86 兼容处理器进行了优化,并且在其他环境中运行速度可能较慢。BZIP2压缩算法特点:HIVE的压缩格式压缩可以存在很多地方,在mr任务运行时候,map端溢写到磁盘,以及reduce端从磁盘中拉取文件,都有大量的IO操作,都可以设置压缩方法。设置压缩格式的参数如下所示HIVE配原创 2022-07-11 22:37:25 · 2410 阅读 · 2 评论 -
Hadoop HDFS 的shell命令
下面介绍几个常用的命令-help如果对于某个命令不熟悉,想要知道具体的用法,可以使用 --help命令查看比如:查看ls的命令使用说明二、上传文件-moveFromLocal:从本地剪切粘贴到 HDFS-copyFromLocal:从本地文件系统中拷贝文件到 HDFS 路径去-put:等同于 copyFromLocal,生产环境更习惯用 put-appendToFile:追加一个文件到已经存在的文件末尾三、下载文件-copyToLocal:从 HDFS 拷贝到本地-get:等同于原创 2022-07-10 07:00:00 · 581 阅读 · 0 评论 -
Spark源码之Stage的划分
先看一下Stage的规律可以看到只有一个阶段,Stage-0如果是join操作呢?可以看到有三个阶段:Stage-0、Stage-1、Stage-2如果是分组求和操作呢?可以看到有两个阶段:Stage-0、Stage-1去重操作?可以看到有两个阶段:Stage-0、Stage-1这里可以看出来,其实Spark中Stage的划分,好像和一些join、group by、distinct等这些有关系,那么Spark在划分Stage的时候是以什么为区分呢?其实Spark的底层是根据RDD的血缘依赖原创 2022-06-06 22:04:09 · 875 阅读 · 0 评论 -
Spark源码之组件间通信(Driver <==> Executor)
因为Linux对AIO的支持并不好,所以Linux采用了Epoll的方式模拟了AIO通信Spark 通讯框架中各个组件(Client/Master/Worker)可以认为是一个个独立的实体,各 个实体之间通过消息来进行通信。Endpoint(Client/Master/Worker)有 1 个 InBox 和 N 个 OutBox(N>=1,N 取决于当前 Endpoint 与多少其他的 Endpoint 进行通信,一个与其通讯的其他 Endpoint 对应一个 OutBox),Endpoint 接收到的原创 2022-06-05 14:10:05 · 580 阅读 · 0 评论 -
Spark源码之任务提交流程
执行脚本提交任务,实际是启动一个 SparkSubmit 的 JVM 进程;SparkSubmit 类中的 main 方法反射调用 YarnClusterApplication 的 main 方法;YarnClusterApplication 创建 Yarn 客户端,然后向 Yarn 服务器发送执行指令:bin/java ApplicationMaster;Yarn 框架收到指令后会在指定的 NM 中启动 ApplicationMaster;ApplicationMaster 启动 Driver 线程,执原创 2022-06-04 22:14:07 · 1013 阅读 · 0 评论 -
13:Hive从0到1系列学习:几个Hive小案例,连接Hive知识点,加深巩固
内容目录Hive实战小项目1、数据准备2、业务分析①统计视频观看数Top10②统计视频类别热度Top10③统计出视频观看数最高的20个视频的所属类别以及类别包含Top20视频的个数④统计视频观看数Top50所关联视频的所属类别排序⑤统计类别视频观看数Top10⑥统计每个类别视频观看数Top10⑦统计上传视频最多的用户Top10以及他们上传的视频观看次数在前20的视频Hive实战小项目需求分析:统计硅谷影音视频网站的常规指标,各种TopN指标:– 统计视频观看数Top10– 统计视频类别热度Top1原创 2022-01-02 17:25:35 · 1382 阅读 · 6 评论 -
12:Hive从0到1系列学习:函数之自定义函数
内容目录一、自定义函数二、自定义UDF函数三、自定义UDTF函数一、自定义函数自定义函数包括三种:①一进一出:UDF②多进一出:UDAF—>比如max、sum、count③一进多出:UDTF—>比如explode()自定义函数分为三个步骤1)编写方法的程序(1)继承Hive提供的类org.apache.hadoop.hive.ql.udf.generic.GenericUDForg.apache.hadoop.hive.ql.udf.generic.GenericUDTF;原创 2021-12-30 08:30:00 · 448 阅读 · 9 评论 -
11:Hive从0到1系列学习:函数之常用的内置函数
内容目录常用的内置函数①空字段赋值:NVL②CASE WHEN THEN ELSE END③行转列④列转行⑤窗口函数⑥Rank常用的内置函数①空字段赋值:NVLNVL:给值为NULL的数据赋值,它的格式是NVL( value,default_value)。功能:如果value为NULL,则NVL函数返回default_value的值,否则返回value的值如果两个参数都为NULL ,则返回NULL。用法1:赋予一个常量比如在员工表中就有很多空值,现在将奖金为空的员工赋值为0select en原创 2021-12-29 08:30:00 · 642 阅读 · 3 评论 -
10:Hive从0到1系列学习:函数之系统内置函数
内容目录系统内置函数①查看系统自带的函数②显示自带的用法系统内置函数①查看系统自带的函数show functions;②显示自带的用法desc function year;③详细显示自带的函数用法desc function extended year;...原创 2021-12-28 08:30:00 · 166 阅读 · 0 评论 -
09:Hive从0到1系列学习:分桶表和抽样查询
内容目录分桶表抽样查询Hive的存储是在hdfs上,当Hive创建一张表的时候,其实是在hdfs上创建了一个文件夹。在查询数据的时候,也是将文件夹下所有的文件进行读取,这在海量数据的应用中无疑是非常耗时的,为了进行查找优化,可以使用分区分桶,将数据按照分区分开,在查询的时候查看是哪个区或桶,到相应的位置查找即可分桶表对于一张表或者分区,Hive 可以进一步组织成桶,也就是更为细粒度的数据范围划分。分区是针对与文件夹,可以将数据分为不同的文件夹,而分桶是针对数据文件而言的①创建分桶表create原创 2021-12-27 08:30:00 · 330 阅读 · 0 评论 -
08:Hive从0到1系列学习:分区表
内容目录分区表分区表分区表Hive的存储是在hdfs上,当Hive创建一张表的时候,其实是在hdfs上创建了一个文件夹。在查询数据的时候,也是将文件夹下所有的文件进行读取,这在海量数据的应用中无疑是非常耗时的,为了进行查找优化,可以使用分区分桶,将数据按照分区分开,在查询的时候查看是哪个区或桶,到相应的位置查找即可。分区表1)分区表实际上就是对应一个HDFS文件系统上的独立的文件夹。2)该文件夹下是该分区所有的数据文件。3)Hive中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集原创 2021-12-26 08:30:00 · 710 阅读 · 0 评论 -
07:Hive从0到1系列学习:查询之排序查询
内容目录查询(重点)排序查询①全局排序:order by②每个reduce内部排序:sort by③分区:distribute by④Cluster by查询(重点)查询的基本语法SELECT [ALL | DISTINCT] select_expr, select_expr, ...FROM table_reference[WHERE where_condition][GROUP BY col_list][ORDER BY col_list][CLUSTER BY col_list| [D原创 2021-12-25 08:30:00 · 759 阅读 · 0 评论 -
05:Hive从0到1系列学习:查询之分组查询
内容目录查询(重点)分组查询①Group By②Having语句查询(重点)查询的基本语法SELECT [ALL | DISTINCT] select_expr, select_expr, ...FROM table_reference[WHERE where_condition][GROUP BY col_list][ORDER BY col_list][CLUSTER BY col_list| [DISTRIBUTE BY col_list] [SORT BY col_list]][L原创 2021-12-23 08:30:00 · 498 阅读 · 0 评论 -
06:Hive从0到1系列学习:查询之join连接
内容目录查询(重点)Join语句①等值join②内连接:join③左外连接:left join④右外连接:right join⑤满外连接:full join⑥多表连接⑦笛卡尔积查询(重点)查询的基本语法SELECT [ALL | DISTINCT] select_expr, select_expr, ...FROM table_reference[WHERE where_condition][GROUP BY col_list][ORDER BY col_list][CLUSTER BY c原创 2021-12-24 08:30:00 · 703 阅读 · 0 评论 -
04:Hive从0到1系列学习:查询之基本查询
查询(重点)查询的基本语法SELECT [ALL | DISTINCT] select_expr, select_expr, ...FROM table_reference[WHERE where_condition][GROUP BY col_list][ORDER BY col_list][CLUSTER BY col_list| [DISTRIBUTE BY col_list] [SORT BY col_list]][LIMIT number]基本查询1、全表查询和特定列查询①原创 2021-12-22 16:49:35 · 1178 阅读 · 0 评论 -
03:Hive从0到1系列学习:DML数据操作语言
文章目录Hive得DML语言1、数据导入①向表中装载数据②从hdfs加载到hive表③通过查询项hive表中加载数据④查询语句中创建表并加载说句AS SELECT⑤创建表时通过location指定加载数据路径⑥import数据到指定表中2、数据导出①insert导出②hadoop命令导出本地③Hive shell命令导出④Export导出到hdfs上3、清除数据truncate1、数据导入①向表中装载数据②从hdfs加载到hive表中③通过查询向hive表中装载数据④查询语句中创建表并加载数据(As Sel原创 2021-12-21 12:18:44 · 1291 阅读 · 0 评论 -
02:Hive从0到1系列学习:DDL数据定义语言
DDL数据定义语言1、创建数据库创建数据库的语句CREATE DATABASE [IF NOT EXISTS] database_name[COMMENT database_comment][LOCATION hdfs_path][WITH DBPROPERTIES (property_name=property_value, ...)];注意:创建的hive库默认是存放在hdfs上的,默认存放位置是/user/hive/warehouse/*.db①创建一个数据库create data原创 2021-12-20 14:19:23 · 1991 阅读 · 0 评论 -
01:Hive从0到1系列学习:Hive的数据结构
数据类型Hive的数据类型可以分为两种,一种是基本数据类型,另一种是集合数据类型1、基本数据类型Hive数据类型Java数据类型长度例子TINYINTbyte1byte有符号整数20SMALINTshort2byte有符号整数20INTint4byte有符号整数20BIGINTlong8byte有符号整数20BOOLEANboolean布尔类型,true或者falseTRUE FALSEFLOATfloat单精度浮原创 2021-12-19 16:41:11 · 662 阅读 · 0 评论 -
最火的集群监控框架Zabbix,安装细节,附有截图
Zabbix安装关闭集群关闭防火墙关闭SELinuxsudo vim /etc/selinux/config修改文件内容# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:# enforcing - SELinux security policy is enforced.# permissive - SELinux pri原创 2021-12-18 20:19:36 · 1331 阅读 · 0 评论 -
大数据怎么可视化?superset帮你解决,安装superset,每步附有截图
Superset安装Superset是由python编写的,所以需要环境中安装了python3.7的环境,因为centos自带的是python2.7安装miniconda所以我们可以借助miniconda来创建python3.7的环境首先安装miniconda,准备python环境将miniconda的安装包上传到集群,是一个.sh文件执行此文件就可以进行交互式的安装操作bash Miniconda3-latest-Linux-x86_64.sh让摁回车enter继续,摁下回车ent原创 2021-12-16 16:10:46 · 1556 阅读 · 0 评论 -
大数据框架ZooKeeper安装,一步步安装,每步都附有截图
一、ZooKeeper安装①首先将ZooKeeper安装包上传到集群上,使用Xftp进行上传②解压到module中tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/将ZooKeeper名字修改mv apache-zookeeper-3.5.7-bin/ zookeeper-3.5.7③在该目录中常见一个文件夹zkData,在文件家中编写myid文件mkdir zkDatavim zkData/myid在myi原创 2021-12-11 20:03:14 · 1129 阅读 · 0 评论 -
超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚
Hadoop集群配置1)集群部署规划注意:①NameNode和SecondaryNameNode不要安装在同一台服务器上。NN和2NN的关系就好像是NN的补充是2NN,如果安装在同一个机器上,机器一挂,NN和2NN全挂,完全不需要2NN对NN的补充②ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上所以安装规划如下hadoop102hadoop103hadoop104HDFSNameNodeDataN原创 2021-12-10 13:46:28 · 10190 阅读 · 1 评论 -
超详解Hadoop安装及集群分发脚本工具(ssh无密登录设置),每步都附有图解
一、安装HadoopHadoop可以到官网去下载,官网下载地址https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz1、将hadoop安装tar包使用Xftp上传到服务器2、解压到module中tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/查看是否已经解压到了module目录中ll /opt/module3、将Hadoop目录添加原创 2021-12-08 15:00:04 · 1475 阅读 · 0 评论 -
Hadoop集群搭建准备环境,手把手教你一步一步搭建,超详细
Hadoop集群环境怎么准备,需要在机器中安装什么软件,有需要怎么设置自己的集群环境,从设置网络IP,到完全准备好Hadoop的安装前环境,手把手一步一步讲解,小白也能看的懂原创 2021-12-06 19:31:10 · 3452 阅读 · 2 评论 -
MapReduce并行处理csv文件,将船舶数据划分子轨迹
bean对象因为在划分子轨迹中,主要使用的字段是mmsi号、位置、速度、时间,以及划分的特征点、子轨迹段,所以只需要这几个属性即可,重写toString方法,重写序列化和反序列化方法// bean类class SubTrajectorBean implements Writable{ private String MMSI; private Double Lat_d; private Double Lon_d; private Long unixTime; private Integer l原创 2021-12-03 19:25:30 · 1735 阅读 · 0 评论 -
图解yarn的作业提交流程
YARN的作业提交机制作业提交全过程详解(1)作业提交第 1 步:Client 调用 job.waitForCompletion 方法,向整个集群提交 MapReduce 作业。第 2 步:Client 向 RM 申请一个作业 id。第 3 步:RM 给 Client 返回该 job 资源的提交路径和作业 id。第 4 步:Client 提交 jar 包、切片信息和配置文件到指定的资源提交路径。第 5 步:Client 提交完资源后,向 RM 申请运行 MrAppMaster。(2)作业初始原创 2021-11-19 19:55:08 · 3106 阅读 · 0 评论 -
NodeManager单节点工作及优化
NodeManager单节点默认内存默认情况下,NM单节点的默认内存是8G,在生产环境中需要配置为100G在NameNode中注册的一个任务的默认内存为8G,这个内存我们可以根据job数据量来设置,通常规则是数据量===》内存128M====》1G1G====》8G2G====》16G而关于Map Task和Reduce Task的内存设置规则相似,一般控制在4-6G...原创 2021-11-19 19:53:59 · 371 阅读 · 0 评论 -
MapReduce的数据压缩
MapReduce进行数据压缩压缩方式有snappy、lzo、bzip2等为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器压缩格式对应的编码/解码器DEFLATEorg.apache.hadoop.io.compress.DefaultCodecgziporg.apache.hadoop.io.compress.GzipCodecbzip2org.apache.hadoop.io.compress.BZip2CodecLZOcom.hadoop原创 2021-11-19 19:52:45 · 756 阅读 · 0 评论 -
图解MapReduce中Shuffle过程及其优化
MapReduce中的shuffle操作在map方法之后,reduce方法之前待处理的数据以及提交的信息,切片信息,jar包,xml文件都已经上传到了yarn上,在mapreduce程序启动之后,会先调用getPartition计算出Map Task的数量map执行之后向环形缓冲区写入<k,v>数据,环形和缓冲区默认是100m,当写入80%之后,开始反向刷写,并将数据溢写到文件reduce拉去相应分区的数据,先加载到内存中,如果内存够再加载到磁盘,进行归并,落盘相应的shuffle过原创 2021-11-19 19:51:07 · 828 阅读 · 0 评论 -
Hadoop的三大组件
HadoopHDFS组成HDFS主要有两个要素组成,NameNode和DataNodeNameNode元数据节点,类似于数据的目录,在响应请求的时候,会现在NameNode中查找数据存放在哪个DataNode中,类似与一本书的目录管理HDFS的名称空间配置副本策略管理数据块(Block)映射信息处理客户端读写请求DataNode数据节点,真正存放数据的地方存储实际的数据块HDFS的文件是按块进行存储的,Block,块的大小可以根据参数设定dfs.原创 2021-11-19 19:49:14 · 1298 阅读 · 0 评论 -
将mysql中的数据导入到hdfs中
将mysql中的数据导入到hdfs中mysql中的数据导入到hdfs中,需要借助一个工具sqoop完成,sqoop的安装和简介请点大数据必学框架-sqoop。一、配置sqoop环境为了能够让sqoop识别到hdfs,需要在配置文件中指定位置,conf目录下的sqoop-env.shexport HADOOP_COMMON_HOME=/opt/module/hadoopexport HADOOP_MAPRED_HOME=/opt/module/hadoopexport ZOOKEEPER_HOME原创 2021-09-26 19:22:20 · 6324 阅读 · 0 评论 -
flume采集数据到hdfs时报错java.lang.NoSuchMethodError
flume采集数据到hdfs时报错java.lang.NoSuchMethodError在最近的学习中,我想用flume和kafka以及hdfs设计一个日志采集的管道,使用flume监控本地文件,当本地文件发生变化时候将数据采集到kafka中,然后在通过flume消费kafka的数据采集到hdfs中存储。但是在进行的过程中发现有一些问题,程序采集完毕之后,hdfs中并没有收集到数据,然后就开始了排除bug的选择首先怀疑是配置文件编写错误,但是如果配置文件有明显错误就不可能执行成功,本着仔细的原则还是从原创 2021-09-25 20:42:05 · 728 阅读 · 0 评论 -
在ubuntu中安装conda部署python3.7环境,然后安装superset
Ubuntu下安装conda和supersetApache Superset 是一个现代的数据探索和可视化平台。它功能强大且十分易用,可对接各种数据源,包括很多现代的大数据分析引擎,拥有丰富的图表展示形式,并且支持自定义仪表盘Superset 官网地址:http://superset.apache.org/一、介绍在安装Superset之前,要转备好安装环境,Supetset是用python开发的,对python要求的版本是3.7+,但是对于ubuntu来讲,其实是自带python的,只是自带的pt原创 2021-09-22 17:38:43 · 1698 阅读 · 0 评论 -
大数据必须框架-Azkaban
大数据必须框架-Azkaban一、Azkaban 概论1、为什么需要工作流调度系统1)一个完整的数据分析系统通常都是由大量任务单元组成: Shell 脚本程序,Java 程序,MapReduce 程序、Hive 脚本等2)各任务单元之间存在时间先后及前后依赖关系3)为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行;2 、常见工作流调度系统1)简单的任务调度:直接使用 Linux 的 Crontab 来定义;2)复杂的任务调度:开发调度平台或使用现成的开源调度系统,比原创 2021-08-10 15:32:12 · 1462 阅读 · 0 评论 -
大数据必学框架-Sqoop
大数据必学框架-SqoopSqoop 简介Sqoop 是一款开源的工具, 主要用于在 Hadoop(Hive)与传统的数据库(mysql、 postgresql…)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres 等)中的数据导进到 Hadoop 的 HDFS 中,也可以将 HDFS 的数据导进到关系型数据库中。Sqoop 项目开始于 2009 年, 最早是作为 Hadoop 的一个第三方模块存在, 后来为了让使用者能够快速部署, 也为了让开发人员能原创 2021-08-10 14:58:42 · 385 阅读 · 0 评论 -
HBase与Hive集成
与 Hive 的集成HBase 与 Hive 的对比1.Hive(1) 数据仓库Hive 的本质其实就相当于将 HDFS 中已经存储的文件在 Mysql 中做了一个双射关系,以方便使用 HQL 去管理查询。(2) 用于数据分析、清洗Hive 适用于离线的数据分析和清洗,延迟较高。(3) 基于 HDFS、MapReduceHive 存储的数据依旧在 DataNode 上,编写的 HQL 语句终将是转换为 MapReduce 代码执行。2.HBase(1) 数据库是一种面向列族存储的原创 2021-08-10 12:23:42 · 148 阅读 · 0 评论 -
HBase与MapReduce集成
HBase集成MapReduce通过 HBase 的相关 JavaAPI,我们可以实现伴随 HBase 操作的 MapReduce 过程,比如使用MapReduce 将数据从本地文件系统导入到 HBase 的表中,比如我们从 HBase 中读取一些原始数据后使用 MapReduce 做数据分析。官方 HBase-MapReduce1.查看 HBase 的 MapReduce 任务的执行$ bin/hbase mapredcp2.环境变量的导入(1)执行环境变量的导入(临时生效,在命令行执行下述操原创 2021-08-10 12:22:57 · 710 阅读 · 0 评论