自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 hive优化

1抓取优化)把hive.fetch.task.conversion设置成more,然后执行查询语句,如下查询方式都不会执行mapreduce程序。set hive.fetch.task.conversion=more;2适当时候采取本地模式)set hive.exec.mode.local.auto=true; //开启本地mr//设置local mr的最大输入数据量,当输入数据量小于这个值时采用local mr的方式,默认为134217728,即128Mset hive.ex..

2021-01-10 17:06:09 100

原创 hive中函数的行与列的转换

行专列CONCAT(string A/col, string B/col…):返回输入字符串连接后的结果,支持任意个输入字符串;CONCAT_WS(separator, str1, str2,…):它是一个特殊形式的 CONCAT()。第一个参数剩余参数间的分隔符。分隔符可以是与剩余参数一样的字符串。如果分隔符是 NULL,返回值也将为 NULL。这个函数会跳过分隔符参数后的任何 NULL 和空字符串。分隔符将被加到被连接的字符串之间;注意:CONCAT_WS must be “string or

2020-11-29 16:16:05 268

原创 Hive

hive的本质Hive处理的数据存储在HDFSHive分析数据底层的实现是MR执行程序运行在Yarn上Hive的优缺点操纵接口使用SQL语法,容易上手避免去写MR优势在于处理海量数据,支持海量数据的分析与计算支持自定义函数,根据项目需求来实现函数缺点hive延迟比较高,一般采用hive on spark用spark底层来处理数据,速度快hive调优比较困难,粒度教大等10.hive分析的数据存储在hdfs,hdfs不支持随机写,只支持追加写,所以在hive不能de

2020-11-29 16:09:15 128

原创 spark-stage任务划分、sparkclient运行模式

sparkclient运行模式代码块的提交、sparkshell的执行sparksubmit在AM下启动master执行Driver对任务进行划分和切片、初始化sparkcontext,Driver向RM申请启动一台机器并启动EL,RM会选择一台机器并启动EL(EL执行的仍然是AM中的main方法,然后EL会继续申请资源。获取资源后EL会向资源机器发送启动EB,并创建Executor对象的指令,指令发送成功之后向RM回复,RM并将这一信息返回给Driver,Driver获取信息后,向Execu

2020-10-22 17:28:46 173

原创 大数据分析为什么会把数据分层

原因1.处理的数据基本都是以T为单位的,数据量比较大,如果不分层会对处理数据造成很大的困难程度。2.将复杂的任务分解成多层来完成,每一层只处理简单的任务,方便定位问题。3.规范数据分层,通过的中间层数据,能够减少极大的重复计算,增加一次计算的复用性。4.不论是数据的异常还是数据的敏感性,其真实的数据与统计数据解耦开,把我们想要的数据从复杂的数据集中解析出。分层标准对于普通的数据分层大致只有五层:ODS,DWD,DWS,DWT,ADS。ods(原始数据层):从hdfs取数据,ods存放原始数

2020-10-22 14:40:26 1606

原创 数据同步策略

全量同步1.全量同步适用于数据量不大,并且每天会有新数据的加入,以及数据的修改。2.会将整个数据表作一个完整的备份作为一个分区的数据增量同步1.适用于表的数据量很大,每天会有数据的加入。将新添加的数据作为一个分区,主要适用于数据无法被修改、每条数据都是一个独立的单元的场景下。新增及变化1.适用于表的数据量很大,但是也有新数据的添加和旧数据的修改,将每天加入以及修改的数据作为一个分区。这种策略主要适用于数据能被修改的情况下。特殊表1.这类表一旦加入是无法被修改的 就如地区表,这类表是很多年

2020-10-22 11:35:07 342

原创 spark转换算子 k-v类型数据的使用

partitionBy//自定义类继承分区父类class MyPartition(number:Int) extends Partitioner{ override def numPartitions: Int = number override def getPartition(key: Any): Int = { if(key.isInstanceOf[Int]){ val keyInt: Int = key.asInstanceOf[Int] if (key

2020-09-24 21:29:36 598

原创 spark转换算子 交并差集的使用 以及拉链zip

交并差集的操作 val rdd1: RDD[Int] = sc.makeRDD(1 to 4) val rdd2: RDD[Int] = sc.makeRDD(4 to 8) //交集// rdd1.intersection(rdd2).collect().foreach(println) //并集// rdd1.union(rdd2).collect().foreach(println) //差集 rdd1.subtract(rdd2).colle

2020-09-24 21:11:21 254

原创 spark转换算子12中API的操作

value类型map //设置APP名称 val conf: SparkConf = new SparkConf().setAppName("SparkCoreTest").setMaster("local[*]") //获取配置信息 val sc = new SparkContext(conf) val rdd: RDD[Int] = sc.makeRDD(1 to 4) //通过映射对每个值乘3 val rdd1: RDD[Int] = rdd.ma

2020-09-24 21:06:42 78

原创 切片与MapTask并行度决定机制图鉴

切片与MapTask并行度决定机制数据块:Block是HDFS物理上把数据分成一块一块。数据块是HDFS存储数据单位。数据切片:数据切片只是在逻辑上对输入进行分片,并不会在磁盘上将其切分成片进行存储。数据切片是MapReduce程序计算输入数据的单位,一个切片会对应启动一个MapTask。...

2020-09-03 17:27:56 99

原创 MapReducer数据流

MapReducer数据流

2020-09-03 17:26:13 84

原创 shuffle工作机制、MapTask工作机制、ReducerTask工作机制

shuffle工作机制MapTask工作机制(1)Read阶段:MapTask通过InputFormat获得的RecordReader,从输入InputSplit中解析出一个个key/value。(2)Map阶段:该节点主要是将解析出的key/value交给用户编写map()函数处理,并产生一系列新的key/value。(3)Collect收集阶段:在用户编写map()函数中,当数据处理完成后,一般会调用OutputCollector.collect()输出结果。在该函数内部,它会将生成的key

2020-09-03 17:22:40 110

原创 Yarn工作机制、job工作提交

Yarn工作机制1.job工作提交2.yarn工作机制作业提交全过程详解(1)作业提交第1步:Client调用job.waitForCompletion方法,向整个集群提交MapReduce作业。第2步:Client向RM申请一个作业id。第3步:RM给Client返回该job资源的提交路径和作业id。第4步:Client提交jar包、切片信息和配置文件到指定的资源提交路径。第5步:Client提交完资源后,向RM申请运行MrAppMaster。(2)作业初始化第6步:当RM收到C

2020-09-03 17:17:50 114

原创 MapReduce核心思想图鉴

MapReduce核心思想(1)分布式的运算程序往往需要分成至少2个阶段。(2)第一个阶段的MapTask并发实例,完全并行运行,互不相干。(3)第二个阶段的ReduceTask并发实例互不相干,但是他们的数据依赖于上一个阶段的所有MapTask并发实例的输出。(4)MapReduce编程模型只能包含一个Map阶段和一个Reduce阶段,如果用户的业务逻辑非常复杂,那就只能多个MapReduce程序,串行运行。...

2020-09-03 17:13:22 137

原创 将本地文件传入集群

@Test public void IOIntPut() throws IOException { //打开本地获取输入流 FileInputStream fis = new FileInputStream(new File("D:/Hadoop_Testresult/worktest/ceshi.txt")); //打开hdfs获取输出流 FSDataOutputStream fsDataOutputStream = fileSy..

2020-08-07 20:32:20 512

原创 集群传入本地目录并便利生成集群目录

从本地目录往集群添加整个目录的操作是很简单的 我们只需要知道集群和File文件的操作哪里有区别就行了.File建目录以及写文件请见https://editor.csdn.net/md/?articleId=107520726。下面我们介绍集群遍历本地目录以及创建文件夹@Beforepublic void start() throws URISyntaxException, IOException, InterruptedException { //获取文件系统 confi

2020-08-07 20:30:56 182

原创 java将指定文件删除操作的实现

利用程序删除指定文件是很容易实现的,实现这个功能我们只需要了解File类的一些简单操作,detele—删除文件以及目录操作isDirectory—判断是否为目录isFile—判断是否为文件.listFiles()----将下一级目录存入File数组主程序 File file = new File("F:\\火绒"); //将要删除的目录指定路径存入File deteles(file);//调用递归核心程序public static void deteles(File f

2020-07-22 19:54:41 686

原创 java把一个指定目录复制到另一指定目录下

利用java实现这一功能其实非常简单,我们只需要了解File文件和IO流的一些基本操作就可以了。让我们先介绍一个实现这个复制操作可以用到File内的方法,IO流的基本操作:下面是代码实现: public static void main(String[] args) throws IOException { File file = new File("F:\\测试文件夹"); //要被复制的目录文件 String string1 = "F:\\测试文件夹";

2020-07-22 19:38:20 570

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除