大数据
文章平均质量分 73
桥路丶
这个作者很懒,什么都没留下…
展开
-
HBase面试题汇总
HBase面试题汇总原创 2023-01-04 21:26:49 · 634 阅读 · 0 评论 -
Hadoop面试题汇总-20221031
Hadoop面试题汇总原创 2022-10-31 11:07:04 · 981 阅读 · 0 评论 -
【微话】究竟什么是大数据?
秒懂微话大数据是一种在海量数据规模下进行数据存储和计算的一种技术体系(或解决方案)内容解读满足4V特征(数据量大、速度快、数据多样性、价值高)的场景,被称为大数据场景。这概述了大数据场景的特点,但究竟什么是大数据?我认为,大数据是一种在海量数据规模下进行数据存储和计算的一种技术体系(或解决方案)。用于解决当数据达到一定规模后,数据的存储以及计算的问题。解决思路是,分而治之,移动计算而非移动数据。今日台词当你不能再拥有的时候,唯一可以做的,就是令自己不要忘记。《东邪西毒》...原创 2022-03-14 13:25:18 · 1439 阅读 · 0 评论 -
历时三个月,游乐场优雅的干掉了我的环境搭建恐惧症
你能想象,在一套刚装好的centos集群中,2分钟之内快速完成一整个集群完成初始化工作吗?这里面,包含在各个节点上安装jdk、关闭防火墙、selinux、配置hosts、与其它节点配置免密登录等操作。还能一键完成大数据主流组件的安装?hadoop、spark、hive、hbase、kafka、zookeeper、flink、hue、sqoop、flume、presto、azkaban,真正成了开箱即用?各种基础环境,scala、maven、nodejs、mysql,也都是随手就来。甚至Doc原创 2021-08-19 10:00:28 · 127 阅读 · 0 评论 -
【单点】每日突破,Yarn公平调度配置
Yarn公平调度配置问:如何配置Yarn公平调度。答:首先在yarn-site.xml中进行全局配置,表示开启公平调度策略。<property> <name>yarn.resourcemanager.scheduler.class</name> <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value> <原创 2021-07-25 11:41:14 · 424 阅读 · 0 评论 -
【单点】每日突破,MapReduce分区
MapReduce分区问:MapReduce在进行HashPartitoner时,会获取key的hashCode,之后为什么要与Integer.MAX_VALUE进行逻辑与计算?答:源码部分如下public class HashPartitioner<K, V> extends Partitioner<K, V> { /** Use {@link Object#hashCode()} to partition. */ public int getPartitio原创 2021-07-25 11:40:26 · 232 阅读 · 0 评论 -
【单点】每日突破,MapReduce自定义InputFormat
MapReduce自定义InputFormat问:如何自定义InputFormat?答:创建自定义类,继承需要的InputFormat,如FileInputFormat。重写createRecordReader方法,返回自定义RecordReader。创建自定义RecordReader,继承RecordReader类,并重写方法。// 初始化资源,一般用于打开IO流// 常用IO流为FSDataInputStream,默认会定义在成员变量中:inputStreampublic void i原创 2021-07-25 11:39:45 · 147 阅读 · 0 评论 -
【单点】每日突破,HBase Memstore数据flush
HBase Memstore数据flush问:HBase中Memstore在何时进行数据的flush操作?答:Memstore级别:当MemStore的大小达到设置阈值(默认128M),会触发flush操作。<property> <name>hbase.hregion.memstore.flush.size</name> <value>134217728</value></property>Region级别:为了原创 2021-07-25 11:38:29 · 313 阅读 · 0 评论 -
【单点】每日突破,MapReduce序列化
MapReduce 序列化问:Hadoop数据类型Writable,与Java基本数据类型有什么区别?答:public interface WritableComparable<T> extends Writable, Comparable<T> Writable实现了WritableComparable接口,间接继承了Writable, Comparable类,实现了序列化、排序的功能。而这两个功能,在MapReduce中非常重要,排序是MapTask、ReduceTas原创 2021-07-18 14:25:20 · 110 阅读 · 0 评论 -
【单点】每日突破,MapReduce Split
MapReduce Split问:在MapReduce进行数据处理时,会进行split数据切片,它的默认拆分规则是?如果不按照默认规则进行拆分,会发生什么现象?答:MapReduce默认按照128M进行数据split切分(与HDFS Block大小相同),具体计算规则为:Math.max(minSize, Math.min(maxSize, blockSize)); mapreduce.input.fileinputformat.split.minsize=1 默认值为1 mapred原创 2021-07-17 11:04:01 · 727 阅读 · 3 评论 -
【单点】每日突破,HBase布隆过滤器
HBase布隆过滤器问:请描述HBase的布隆过滤器答:布隆过滤器可以用于快速判断一个数据是否存在一个集合中。它的原理是,创建一个长度为n的二进制数组,初始状态下值均为0;然后将当前集合中的数据进行哈希计算后,将数组中的对应位置变为1。比如,字符串"hbase"经过哈希计算后,值为3,那么将原数组[0,0,0,0,0]更改为[0,0,0,1,0]。那么,要查询的数据也会先经过哈希计算,在数组中快速寻找,如果已经置为1,说明数据可能在这个集合中,如果为0,说明一定不在集合中。所以布隆过滤器是一种原创 2021-07-17 10:56:56 · 234 阅读 · 0 评论 -
【单点】每日突破,MapReduce调优篇
MapReduce调优篇1、MapReduce常见的调优方式。答:采用CombineTextInputFormat来作为输入,解决输入端大量小文件场景。大量的小文件会产生大量的map任务,任务都需要初始化,从而导致mr运行缓慢减少spill溢写次数:通过调整mapreduce.task.io.sort.mb及mapreduce.map.sort.spill.percent参数的值,增大触发spill的内存上限,减少spill次数,从而减少磁盘io的次数。减少merge合并次数:调整mapre原创 2021-07-17 10:50:49 · 314 阅读 · 1 评论 -
【单点】每日突破,HDFS缓存篇
HDFS缓存机制问:请描述HDFS的缓存机制。答:HDFS提供了一个高效的缓存加速机制—— Centralized Cache Management ,它允许用户指定要缓存的HDFS路径。NameNode会和保存着所需Block数据的所有DataNode通信,并指导它们把块数据缓存在堆外内存(off-heap)中进行缓存。DataNode会通过心跳机制向NameNode汇报缓存状态。NameNode查询自身的缓存指令集来确定应该缓存哪个路径。缓存指令持久化存储在fsimage和edit日志中,可原创 2021-07-17 10:47:47 · 434 阅读 · 0 评论 -
【单点】每日突破,HDFS读写篇
HDFS写流程问:请描述HDFS的写流程。答:首先由客户端向 NameNode 发起文件上传请求,NameNode 检查文件要上传的目录,并鉴权。如果上传用户对此目录有权限,则允许客户端进行上传操作。客户端接收到允许指令后,将要上传的文件切分为 Block,之后按照顺序依次上传 block1、block2…block N,不允许多线程并发写入。按照顺序,开始上传 block1。Client向 NameNode 发起请求,NameNode 会按照 block 副本放置策略,为 block1 选择原创 2021-07-17 10:45:03 · 192 阅读 · 1 评论 -
理解大数据,可以换一个角度
一提到大数据,大多数技术人可能会想到它的4V特征:数据量、速度、多样性、价值。但同时也会想到它庞大的技术生态圈——大数据产品的数量非常丰富。仅仅是常见的产品,就已经有这么多了,眼花缭乱。这不禁让很多大数据开发者叹息:“卧槽,学不动了,学不动了”。但实际上,如果从单机的角度去看待大数据技术,其实很容易理解。比如,我们传统的数据库MySQL、Oracle。在单机节点部署的时候,是直接安装在操作系统上。操作系统提供了数据库运行的基本资源。操作系统提供了哪些必要的东西呢?首先是文件系统,用于原创 2021-06-08 19:43:46 · 170 阅读 · 1 评论 -
Alluxio在携程大数据平台的应用实践
在《携程技术2018年度合集》中,一共70篇文章中,只有5篇是大数据的内容。其中有一篇,讲到了Alluxio的应用过程。在2018年,携程主集群规模已经突破千台,存储着50PB的数据,并且每天的数据增量大概是400TB。每天的作业数也达到了30万。当时,携程使用的Spark Streaming实时任务,会将结果数据直接写入到HDFS中,400个流作业每天带来500万小文件的落地,虽然会有任务定期进行小文件合并,但巨大的增量为HDFS集群带来了很大的压力。并且对于HDFS进行停机优化,又会导致大量流作业原创 2021-04-10 20:14:08 · 290 阅读 · 0 评论 -
Hive On Spark搭建报错:Failed to create Spark client for Spark session xx: ..TimeoutException
错误描述按照官方文档,搭建Hive On Spark时,出现以下错误。FAILED: Execution Error, return code 30041 from org.apache.hadoop.hive.ql.exec.spark.SparkTask. Failed to create Spark client for Spark session xxx: java.util.concurrent.TimeoutException: Client 'xxx timed out waiting f原创 2021-03-23 09:52:11 · 9526 阅读 · 0 评论 -
Hive On LLAP搭建&常见问题
Hive On LLAP搭建&常见问题基本概述Hive在2.0之后,推出一个新特性LLAP(Live Long And Process),可以显著提高查询效率。LLAP是一个常驻于Yarn的进程,并不是一个执行引擎,它将DataNode数据预先缓存到内存中,然后交由DAG引擎进行查询、处理任务使用。部分查询、权限控制将由LLAP执行,短查询任务的结果会很快的返回。相对于Hive 1.x,提升大约25倍的性能。安装准备Apache Slider安装LLAP需要常驻于Yarn之上,所以需原创 2021-01-24 11:15:33 · 1220 阅读 · 3 评论 -
【大数据】那些简化操作的辅助脚本
【大数据】那些简化操作的辅助脚本大数据常用环境中,除了hadoop、spark本身自带脚本,能够完成快速启停,其它组件的启动命令稍微复杂,而且步骤较多。首先是hive,在多用户环境中启动时,需要启动metastore、hiveserver2服务。其次,使用beeline进行连接测试时,也略显冗长。关闭服务时,也需要先使用jps命令找到RunJar,然后手动kill掉。在学习时,就会增加很多不便。这些可以简单封装为脚本,便于自己操作。hive启动脚本:start_hive.sh#!/bin/ba原创 2021-01-17 10:37:40 · 186 阅读 · 0 评论 -
大数据环境安装脚本升级
大数据环境安装脚本升级功能新增&调整最近对大数据环境安装脚本进行了升级。相比上一个版本,增加了以下功能:增加HBase集群安装。增加Spark一键安装。增加HUE一键编译安装。增加Maven一键安装,并配置国内阿里镜像源。增加NodeJS一键安装,并配置国内阿里镜像源。HBase、Spark安装配置文件frames.txt格式有所调整。# 安装包名 是否安装(true/false) 安装节点 主节点hbase-2.0.0-bin.tar.gz true n原创 2021-01-16 11:12:43 · 208 阅读 · 0 评论 -
退役的Apache Slider
退役的Apache SliderApache Slider是一个工具和技术集,用于在Apache Hadoop YARN集群上打包、部署和管理长时间运行的应用程序。它是Apache的一个孵化项目,在2014-04-29开始孵化,在2018-05-24退役。中间断断续续有过十几次更新。为什么要开发Slider?因为Yarn,一般用于一次性的作业提交,如MapReduce、Spark,为作业分配Container资源,当作业完成后就会进行资源的释放。而Slider的想法,是可以将长时间运行的守护进程直原创 2021-01-06 11:17:13 · 346 阅读 · 0 评论 -
HDFS权限管控
HDFS权限管控HDFS在权限管控时,提供类似POSIX系统的文件和目录权限模型,这里称为普通权限管控。它和在linux系统上的操作类似,每个文件或目录都有owner、group、other三种角色,它们拥有不同的权限。权限分为r、w、x三种。rwx权限,也可以使用数字4、2、1表示。HDFS可以通过开启配置支持POSIX ACLs,提供更加灵活的授权。ACLs的开启,需要在hdfs-site.xml中进行设置:<property> <name>dfs.namenode.原创 2021-01-06 11:15:15 · 399 阅读 · 0 评论 -
企业常用Hive SQL配置
企业常用Hive SQL配置在企业中使用Hive SQL需要一定的规范。一般在SQL编写之前,需要进行规范的注释添加,并设定特定的配置。在SQL文件开始,常见的注释有:--@Name:所属数据库.结果表--@Description:描述--@Type:表类型,如每日汇总表--@Target:结果表--@source:数据源表1 别名1--@source:数据源表2 别名2--@Author:工号 作者--@CreateDate:创建日期--@ModifyBy:修改人--@Modify原创 2021-01-06 11:00:56 · 257 阅读 · 0 评论 -
Hive Schema Tool元数据运维
Hive Schema Tool元数据运维Hive Schema存在的问题较早的Hive版本,不会在MetaStore中写入版本号。所以升级到新版本之后,会报错:FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveM原创 2021-01-06 10:56:59 · 1557 阅读 · 0 评论 -
Hive Join方式与优化
Left Semi-JoinHive支持的Join方式有Inner Join和Outer Join,这和标准SQL一致。除此之外,还支持一种特殊的Join:Left Semi-Join。Left Semi-Join即左半开连接,Hive使用左半开连接实现 in / exists 语法,在0.13版本推出IN/NOT IN/EXISTS/NOT EXISTS 语法后,已经不经常使用。SELECT a.key, a.valFROM a LEFT SEMI JOIN b ON (a.key = b.key原创 2021-01-05 10:40:17 · 394 阅读 · 0 评论 -
数据脱敏?Hive一个函数搞定
数据屏蔽函数(Data Masking Functions)Hive在2.1.0版本后,支持数据屏蔽函数(Data Masking Functions),可以用于数据的快速掩码处理(脱敏)。比如mask函数,默认会将查询回的数据,大写字母转换为X,小写字母转换为x,数字转换为n。当然也可以添加参数自定义转换的字母mask(string str[, string upper[, string lower[, string number]]]),upper定义大写字母转换,lower定义小写字母转换,nu原创 2021-01-05 10:39:12 · 3415 阅读 · 0 评论 -
Hive全局排序解决之道
全局排序Order ByHive中的全局排序,使用Order By来进行,具体语法为:SELECT <select_expression>, <select_expression>, ... FROM <table_name> ORDER BY <col_name> [ASC|DESC] [,col_name [ASC|DESC], ...]但在Hive中使用全局排序时,需要注意,Hive会将所有数据交给一个Reduce任务计算,实现原创 2021-01-05 10:37:57 · 2127 阅读 · 0 评论 -
实时数仓:流式数据建模
流式数据模型架构设计数据模型设计是贯穿数据处理过程的,在实时流式数据处理中也一样。实时建模与离线建模类似,数据模型整体上分为5层(ODS、DWD、DWS、ADS、DIM)。其中ODS数据属于操作数据层,是直接从业务系统采集来的原始数据。在这一层上,数据与离线系统是一致的。ODS层实时进入的数据,会进行去重、清洗等任务,适度做一些维度退化工作,清洗后的数据会存放到DWD层中,DWD数据明细层的数据会回流到消息队列中,从而实时同步到下游实时任务中,同时会持久化到数据库中供离线系统使用。一般而言,OD原创 2021-01-05 10:37:04 · 1382 阅读 · 0 评论 -
实时数仓:Kappa架构
上一期讲了Lambda架构,对于实时数仓而言,Lmabda架构有很明显的不足,首先同时维护两套系统,资源占用率高,其次这两套系统的数据处理逻辑相同,代码重复开发。能否有一种架构,只需要维护一套系统,就可以同时完成流处理、批处理任务呢?当然,那就是Kappa架构。Kappa架构Kappa架构是真正意义上的流批一体的处理方式。它是随着流处理引擎的逐步完善后,由LinkedIn公司提出的一种实时数仓架构。这种架构,相当于在Lambda架构上去掉了批处理层(Batch Layer),只留下单独的流处理层(原创 2021-01-05 10:35:43 · 1891 阅读 · 0 评论 -
实时数仓:Lambda架构
实时数仓:Lambda架构在某些场景中,数据的价值随着时间的推移而逐渐减少。所以在传统大数据离线数仓的基础上,逐渐对数据的实时性提出了更高的要求。于是随之诞生了大数据实时数仓,并且衍生出了两种技术架构Lambda和Kappa。Lambda架构其中Lambda架构是较早的解决方案,使用流处理和批处理两种架构进行数据处理。其中流处理部分负责实时数据的处理,但流处理因为数据可靠性并不高,所以需要批处理部分定期进行运算稽查。流处理相当于作为临时视图存在,满足数据实时性要求。而准确数据以批处理计算为主。原创 2021-01-05 10:34:28 · 1253 阅读 · 0 评论 -
ORC与Parquet表的压缩
Hive表压缩功能除了直接配置MapReduce压缩功能外,Hive的ORC表和Parquet表直接支持表的压缩属性。但支持的压缩格式有限,ORC表支持None、Zlib、Snappy压缩,默认为ZLIB压缩。但这3种压缩格式不支持切分,所以适合单个文件不是特别大的场景。使用Zlib压缩率高,但效率差一些;使用Snappy效率高,但压缩率低。Parquet表支持Uncompress、Snappy、Gzip、Lzo压缩,默认不压缩Uncompressed。其中Lzo压缩是支持切分的,所以在表的单个文件原创 2021-01-05 10:33:28 · 3568 阅读 · 1 评论 -
Hive常见的压缩格式
压缩格式Hive支持的压缩格式有bzip2、gzip、deflate、snappy、lzo等。Hive依赖Hadoop的压缩方法,所以Hadoop版本越高支持的压缩方法越多,可以在$HADOOP_HOME/conf/core-site.xml中进行配置:<property> <name>io.compression.codecs</name> <value>org.apache.hadoop.io.compress.原创 2021-01-05 10:31:52 · 3925 阅读 · 1 评论 -
Hive分桶一文读懂
什么是分桶?和分区一样,分桶也是一种通过改变表的存储模式,从而完成对表优化的一种调优方式。但和分区不同的是,分区是将表拆分到不同的子目录中进行存储,而分桶是将表拆分到不同文件中进行存储。那什么是分桶呢?它按分桶键哈希取模的方式,将表中数据随机、均匀地分发到若干桶文件中。比如,对表的ID字段进行分桶,那ID字段被称为分桶键。ID字段存储的数据假设是1-10,执行分桶操作时,需要确定要分几个桶,这里定为3个;那么便会对分桶键中的值,按照桶的数量进行哈希取模,这里即对桶数3进行取余。那么,ID为3、6原创 2021-01-05 10:30:29 · 1207 阅读 · 3 评论 -
Hive表类型(存储格式)一览
Hive表类型Hive支持的表类型,或者称为存储格式有:TextFile、SequenceFile、RCFile、ORC、Parquet、AVRO。TextFile其中TextFile是文本格式的表,它是Hive默认的表结构;在存储时使用行式存储,并且默认不进行压缩,所以TextFile默认是以明文的文本方式进行保存的,可以手动开启Hive的压缩功能进行数据压缩。但在TextFile表压缩后再进行解压,即反序列化时,耗费的时间很大,是SequenceFile的十几倍。TextFile表因为采用原创 2021-01-05 10:29:03 · 4679 阅读 · 0 评论 -
一文学会MapReduce编程
MapReduce编程模型,相对于初学者来说,会有一些门槛,没关系,这一篇让你学会使用MapReduce进行分布式处理。基础知识MapReduce 框架只对 <key, value> 形式的键值对进行处理。MapReduce会将任务的输入当成一组 <key, value> 键值对,最后也会生成一组 <key, value> 键值对作为结果。常见的输入为文件,此时读取的行偏移量会作为Key,文件内容作为Value。key 和 value 的类必须由框架来完成序列化,所原创 2021-01-04 16:57:27 · 258 阅读 · 0 评论 -
大数据编年史
不了解大数据的历史,就没有真正掌握大数据。接下来,一起看一下开源大数据的发展历程,看它是如何顺应时代而诞生的。大数据初期首先在2002年的时候,Doug Cutting、Mike Cafarella创建了开源网页爬虫项目Nutch,而爬虫的特征就是源源不断的爬取数据,那这样就急需一种解决方案来存储这些海量的数据,并且可以随着数据量的增长而扩展。恰好在第二年(2003年),Google发表了Google File System论文,论述的就是一种新型的分布式文件系统,可以满足海量数据的存储。于是20原创 2021-01-01 10:54:46 · 403 阅读 · 0 评论 -
HDFS安全模式
HDFS集群进入了安全模式?原因是什么?如何解决?来一起解读安全模式这种特殊的HDFS状态什么是安全模式安全模式是HDFS的一种特殊状态,在这种状态下,HDFS只接收读数据请求,而不接收写入、删除、修改等变更请求。它是HDFS确保集群安全的一种保护机制, NameNode如果检测到任何异常,便会进入到安全模式,直到问题解决。触发安全模式的原因Block上报率缺失DataNode主动向NameNode汇报可用Block列表等信息,当Block上报率 <= 阈值时(默认阈值为0.999), 会处原创 2021-01-01 10:53:07 · 1625 阅读 · 0 评论 -
大数据环境一键搭建?是的,文中附赠脚本
大数据集群一键搭建脚本?是的,这可以使你在10分钟之内,快速搭建起一套大数据学习环境,解放双手。如何操作?请看文中教程。环境说明操作系统及组件版本各组件版本如下,学习环境尽量保持一致,避免版本不一致带来的操作问题。集群规划使用3台虚拟机来进行搭建集群,分别为Node01、Node02、Node03。集群的规划如下:其中Hadoop一共3个节点,主节点搭建在Node01上,从节点在Node01-Node03上分别有一个。虚拟机准备安装说明&文件下载下载并安装Virtual Box原创 2021-01-01 10:51:28 · 664 阅读 · 0 评论 -
大数据技术体系梳理
大数据技术体系来一起认识下大数据的技术框架有哪些,它们分别用于解决哪些问题?它们的内在逻辑和适用场景有哪些?OK,一起去探索下。生态架构首先,看一下大数据技术体系的整体架构图。根据数据流转的方向,从下而上进行介绍。在前面,我们了解到,大数据的数据存储是分布式的,而且能够接受任务调度,与传统的数据存储存在差异。所以离线方式处理的数据,需要通过ETL模块,导入到大数据的数据存储系统进行存储;其中Sqoop是常见的抽取结构化数据工具;而Flume和Logstach是用于抽取非结构化、半结构化数据工具。原创 2021-01-01 10:49:53 · 3443 阅读 · 0 评论 -
爆肝一周后,HUE也可以一键编译安装了?
在大数据开源产品中,HUE是一个非常好用的客户端工具。它可以连接HDFS、Yarn、Hive、HBase、Ooize、Presto等组件,并直接在HUE的WEB界面中,直接对各种组件提交命令。但HUE的编译过程又比较繁琐,很容易失败。我爆肝了一周,解决了很多编译上的问题。成功编译HUE之后,并把整体流程编写成了脚本,可以一键进行安装和配置。这里,将介绍一下编译过程中的常见问题,并将脚本分享给大家。HUE编译问题首先来看一下HUE编译中的一些问题。首先是编译需要的npm、maven环境,因为网速原创 2020-12-27 10:46:26 · 1018 阅读 · 1 评论