![](https://img-blog.csdnimg.cn/5782ef1f26a54d118b59667a0d4eab3e.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
爬梯
文章平均质量分 91
大数据爬梯之路
oifengo
爬梯之路
展开
-
Trino开荒
一. 概述1.1 Trino历史Facebook的数据仓库存储在少量大型Hadoop/HDFS集群。Hive是Facebook在几年前专为Hadoop打造的一款数据仓库工具。在以前,Facebook的科学家和分析师一直依靠Hive来做数据分析。但Hive使用MapReduce作为底层计算框架,是专为批处理设计的。但随着数据越来越多,使用Hive进行一个简单的数据查询可能要花费几分到几小时,显然不能满足交互式查询的需求。Facebook也调研了其他比Hive更快的工具,但它们要么在功能有所限制要么就太简单原创 2021-10-24 19:02:36 · 4928 阅读 · 0 评论 -
Flink开荒
我真的想问!你们真的需要用Flink吗?被逼无奈,最近面试都在问Flink 只好Flink开荒了Spark Streaming 生态那么好,是满足不了你们了吗?好了好了 ,正经开荒拥抱Flink! 拥抱第三代计算引擎!拥抱未来!阿里万岁!第一步先看官网一只有着Apache羽毛一样尾巴的松鼠?Flink是为分布式、高性能、随时可以以及准确的流处理应用程序打造的开荒流处理框架处理无界和有界数据任何类型的数据都可以形成一种事件流。信用卡交易、传感器测量、机器日志、网站或移动应用程序上的用户交互原创 2021-04-12 01:33:47 · 146 阅读 · 0 评论 -
Java 8&9&10&11 特性总结
2014 发布Java8 ,自Java5依赖最具有革命性的版本Java8在语言、编译器、类库、开发工具&JVM带来了大量新特性1 Lambda表达式Lambda是一个匿名函数,可以把Lambda表达式理解为一段可以传递的代码(将code像数据一样传递)使用它可以写出更简洁、更灵活的代码。使Java更加紧凑 /* 格式1:无参数,无返回值 * */ @Test public void test1() { Runnable r1原创 2021-01-14 17:20:40 · 401 阅读 · 1 评论 -
Java反射开荒
1 Java反射机制概述1.1 Java RelectionRelection 反射是被称为动态语言的关键,反射机制允许程序在执行期间借助于Reflection API取得任何类的内部消息,并能直接操作任何对象的内部属性& 方法1.2 Java反射机制提供的功能在运行时判断任意一个对象所属的类在运行时构造任意一个类的对象在运行时判断任意一个类所具有的成员变量和方法在运行时获取泛型信息在运行时调用任意一个对象的成员变量和方法在运行时处理注解生成动态代理1.3 反射相关AP原创 2021-01-12 17:46:31 · 168 阅读 · 0 评论 -
Java 枚举 注解 & 网络编程
文章目录1 枚举类如何自定义枚举类如何使用关键字enum定义枚举类Enum类的主要方法实现接口的枚举类2 注解2.1 注解(Annotation)概述2.2 常见的Annotation示例2.3 自定义Annotation2.4 JDK中的元注解2.5 利用反射获取注解信息(在反射部分涉及)2.6 JDK 8中注解的新特性1 枚举类如何自定义枚举类JDK5.0之前需要使用自定义枚举类JDK5.0之后新增的enum关键字用于定义枚举类自定义枚举类私有化类的构造器,保证不能在类的外部创建其对象原创 2021-01-09 18:39:06 · 218 阅读 · 7 评论 -
Java IO流开荒
文章目录1 File类的使用1.2 常用方法2 IO流原理及流的分类3 节点流(或文件流)4 缓冲流5 转换流6 标准输入、输出流7 打印流8 数据流9 对象流10 随机存取文件流11 NIO2中Path、Paths File类的使用1 File类的使用Java.io.File:文件&文件路径的抽象形式,与平台无关File能创建、删除、重命名文件和目录,但是File不能访问文件内容本身,需要用到IO流想要在Java程序中表示一个真实存在的文件或目录,必须有一个FIle对象,但是一个java原创 2021-01-08 13:47:52 · 160 阅读 · 0 评论 -
Java集合开荒
文章目录1 Java集合框架概述2 Collection接口方法3 iterator迭代器接口3.2 iterator接口的方法4 Collection子接口一:List4.1 ArrayListArrayList常用方法ArrayList遍历方法4.2 LinkedList5 Collection子接口二:Set5.1 HashSetSet add过程5.2 LinkedHashSet5.3 TreeSet6 Map接口Map结构的理解7 Collections工具类1 Java集合框架概述数组的特点原创 2020-12-20 14:54:34 · 127 阅读 · 0 评论 -
Java常用类总结
文章目录1 字符串相关类1.1 StringString对象的创建String拼接StringBufferStringBuilder2 JDK8前的日期时间API1. java.lang.System类2. java.util.Date类3. java.text.SimpleDateFormat类java.util.Calendar(日历)类3 JDK8后的日期时间API3.2 Instant 瞬时4 Java比较器4.1 Comparable4.2 Comparator5 System类6 Math类7原创 2020-12-17 01:51:26 · 232 阅读 · 0 评论 -
Java多线程总结
文章目录一. 进程 线程 概念1.1 进程1.2 线程1.3 多核多线程1.4 线程&进程区别二.线程的创建和使用三.线程的声明周期四.线程的同步五.线程的通信六.JDK5.0新增的线程同步方式一. 进程 线程 概念程序(program) 是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。1.1 进程进程(process) 是程序的一次执行过程,或是正在运行的一个程序。是一个动态的过程:有它自身的产生、存在和消亡的过程。——生命周期进程的声明周期:1原创 2020-12-13 01:19:40 · 283 阅读 · 0 评论 -
Java异常处理总结
文章目录一. 异常概述1.1 异常定义1.2 异常体系结构二.常见异常三.异常处理机制 try catch四. 异常处理机制 try catchfinally五. 手动抛出异常 throw六. 用户自定义异常类一. 异常概述输入数据格式文件是否存在网络稳定问题1.1 异常定义异常:程序中发生的不正常情况异常分为两类ErrorJVM无法解决的严重问题:JVM内部错误、资源耗尽比如:StackOverflowError 、 OOM一般不编写针对性的代码进行处理public class原创 2020-12-09 19:50:17 · 387 阅读 · 0 评论 -
JVM内存结构
文章目录一. 程序计数器二. 虚拟机栈 JVM Stacks2.1 栈帧 Framedebug Frame-Xss size 可以指定VM 栈的内存大小Stack线程安全三. 本地方法栈四. 堆 Heap五. 方法区5.2 常量池 Constant pool一. 程序计数器Program Counter Register (寄存器)记住下一条JVM指令的执行地址线程私有不存在内存溢出由于 程序计数器 的特性,JVM把程序计数器放到了CPU的 寄存器中CPU结构二. 虚拟机栈 JVM .原创 2020-11-24 15:05:09 · 224 阅读 · 0 评论 -
Flink浅尝
文章目录一. Flink概述1.1 Flink历史1.2 Flink简介一. Flink概述1.1 Flink历史Flink起源于 Stratosphere 项目2010~2014 年由 德国柏林 一实验室的研究项目2014年 捐赠给 Apache ,12月顶级项目2014年,几位开发者创建 Data Artisans 公司运营Flink2019年,阿里 9000万欧元 收购Data Artisans1.2 Flink简介Apache Flink is a framework and原创 2020-11-11 12:56:46 · 186 阅读 · 0 评论 -
10 Kafka开荒
文章目录一. Kafka开荒1.1 什么是消息队列1.2 消息队列优点1.3 Kafka简介1.4 Kafka架构设计一. Kafka开荒1.1 什么是消息队列点对点模式一对一,消费者主动拉取数据,消息收到后消息清除通常是一个 基于拉取或者查询的消息传送模型,从队列中请求信息,而不是将消息推送到客户端。只能有一个接收者 , 消息收到后Kafka清除数据发布订阅模式一对多,数据产生后,推送给所有订阅者基于 推送的笑死传送模型,发布订阅模型可有多种不同的订阅者订阅者又分为:原创 2020-10-27 17:43:41 · 307 阅读 · 0 评论 -
8.5 Spark 累加器
文章目录Spark 核心编程1累加器实现原理1.1 系统累加器1.2 自定义累加器1.5 演示原因解决 累加器多种累加器2 自定义累加器Spark 核心编程Spark计算框架为了能够高并发 高吞吐 的处理,封装了三大数据结构RDD累加器 : 分布式共享只写变量广播变量 :分布式共享只读变量1累加器实现原理把Executor端变量信息聚合到Driver端,在Dirver程序中定义的变量,在Executor端的每个Task都会得到这个变量的一份新的副本,每个task更新这些副本的值后,传回原创 2020-10-20 01:11:50 · 170 阅读 · 1 评论 -
9 SparkStreaming 开荒
文章目录一. Overview1.2 Streaming 特点1.3 Spark Streaming架构1.3.2 背压机制Spark官网介绍一. OverviewSparkStreaming 也是基于Spark core API做的 高宽带 容错的数据流数据源 & 数据出口如下事实上,虽然称为流处理,底层实现还是微批处理微批处理原理DStream和Spark基于RDD的概念很相似,Spark Streaming使用离散化流(discretized stream)作为抽象表示,原创 2020-09-25 00:52:58 · 251 阅读 · 0 评论 -
8.2 Spark外部数据源
文章目录Apache Parquet 开荒Data Sources1 通用的加载和保存方式1.1 加载数据1.2 保存数据2 读取文件实例2.1 Json2.2 Parquet2.3 CSVApache Parquet 开荒Apache ParquetParquet 是 Hadoop 生态圈中主流的列式存储格式,最早是由 Twitter 和 Cloudera 合作开发,2015 年 5 月从 Apache 孵化器里毕业成为 Apache 顶级项目。有这样一句话流传: HDFS 是大数据时代文件系统的原创 2020-09-22 20:42:36 · 669 阅读 · 0 评论 -
8 Spark_SQL 开荒
一. 概述SharkSparkSQL的前身是Shark,给熟悉RDBMS但又不理解MapReduce的技术人员提供快速上手的工具Hive是早期唯一运行在Hadoop上的SQL-on-Hadoop工具。但是MapReduce计算过程中大量的中间磁盘落地过程消耗了大量的I/O,降低的运行效率,为了提高SQL-on-Hadoop的效率,大量的SQL-on-Hadoop工具开始产生,其中表现较为突出的是:DrillImpalaSharkSharkShark是伯克利实验室Spark生态环境的组..原创 2020-09-22 00:20:57 · 200 阅读 · 0 评论 -
7.4 Spark Core 闭包 依赖关系 序列化
文章目录0 案例实操0 案例实操统计每一个省份每个广告被点击数量排行TOP把省份 ,广告 包在一起转换一下,把省份单独列出来 (河北省,bbb),2 -----------> 河北省,(bbb,2) 相同省份的聚合总览//TODO 统计出每一个省份每个广告被点击数量排行的top3 //TODO 1.获取原始数据 val rowData = sc.textFile("D:\\workplace\\ifeng-Spark\\i原创 2020-09-20 17:22:17 · 273 阅读 · 0 评论 -
7.3 Spark Cluster Run
文章目录一. 配置1.1 开启enentLog1.2 Environment Variables二. 启动2.1 启动一个Spark-shell一. 配置官方教程1.1 开启enentLogvi /home/ifeng/app/spark/conf/spark-defaults.conf# Example:spark.master spark://master:7077spark.eventLog.enabled truespa原创 2020-09-12 19:39:00 · 175 阅读 · 0 评论 -
7.2 RDD开荒
目录一.RDD概述二. RDD 创建2.1.1 从集合(内存)创建RDD2.1.2 从外部存储(文件)创建RDD三. RDD操作1 map2 mapPartitions3 mapPartitionWithIndex4 filer5 glom6 sample7 zip8 flatMap9 flatmapValues10 mapValuesflatMapjoincogroupuniongroupbygroupByKey一.RDD概述/** * A Resilient Distributed Datase原创 2020-09-12 15:31:06 · 108 阅读 · 0 评论 -
Spark算子实现WordCount
1 map + reduceByKey sparkContext.textFile("hdfs://ifeng:9000/hdfsapi/wc.txt") .flatMap(_.split(",")) .map((_,1)) .reduceByKey(_+_).collect()2 countByValue代替map + reduceByKeyval RDDfile = sparkContext.textFile("hdfs://ifeng:9原创 2020-09-01 20:20:46 · 240 阅读 · 0 评论 -
Data_Skew
文章目录1 原理2 示例MockData2.1 重新设计key2.1.1 Mapper2.1.2 Mapper22.1.3 Reducer2.2 设计随机分区1 原理Shuffle的时候,按照Key进行 同一个key分配到一个reducer task来进行处理造成两种现象个别Task执行很慢OOM(JVM Out Of Memory) , 单个JVM压力过大 失败2 示例MockDatapackage DataSkew;import java.io.*;import java.u原创 2020-09-01 00:52:38 · 313 阅读 · 0 评论 -
7.1 Spark-core概述
文章目录1 环境准备2 RDD2.1 RDD 创建2.1.1 从集合(内存)创建RDD2.1.2 从外部存储(文件)创建RDD2.1.3 从其他创建RDD2.1.4 直接创建RDD(new)2.2 RDD并行度 & 分区2.3 RDD转换算子2.3.1 Value类型1 map2 mapPartitions3 mapPartitionsWithIndex4 flatMap5 glom6 groupBy7 filter8 sample9 distinct10 coalesce11 repartitio原创 2020-08-30 20:59:32 · 375 阅读 · 0 评论 -
7 Spark开荒_架构原理
文章目录开荒1.1 Spark定义1.2 Spark and Hadoop1.2.1 时间线1.2.2 功能区别1.3 Spark核心模块1.4 Spark的运行环境1.4.1 Local模式1.4.2 Standalong模式1.4.3 Yarn模式1.4.4 K8S & Mesos模式1.4.5 Win模式1.5 Spark端口号2 Spark运行架构开荒1.1 Spark定义Spark : 基于内存的快速、 通用、可扩展的大数据分析计算引擎。1.2 Spark and Hadoop原创 2020-08-29 19:45:00 · 237 阅读 · 0 评论 -
7 Azkaban开荒
目录1 背景1.1 Azkaban的特点1.2 Azkaban的架构2 Azkaban安装准备2.1 编译2.2 安装包分析2.3 安装启动3 创建Flow3.2 多个job依赖3.3 Hive脚本1 背景Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,主要用于在一个工作流内以一个特定的顺序运行一组工作和流程,它的配置是通过简单的key:value对的方式,通过配置中的dependencies 来设置依赖关系。Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使原创 2020-09-03 11:59:27 · 175 阅读 · 0 评论 -
6.1 Zookeeper_读写流程
1 写1.1 写入请求直接发送到Leader节点Client 向Leader发送写入请求Leader 将数据读取到本地 ,然后发送到所有的Follower当有一半的节点写入完毕(ACK) , 就返回写入成功的消息给Client1.2 写入请求发送到FollowerClient 向Follower发送写请求Follower将请求转发给LeaderLeader将数据读取到本节点…同上当有半数的节点都写入完毕(包括Ledaer自己) , Leader写入完成信息-------->原创 2020-08-21 16:34:31 · 2720 阅读 · 1 评论 -
6 Zookeeper开荒
文章目录1 Zookeeper架构1.1 ZK特点1.2 ZK数据结构1.3 应用场景1.3.1 统一命名服务1.3.2 统一配置管理1.3.3 统一集群管理1.3.4 服务动态上下线软负载均衡1.4 选举机制1 Zookeeper架构Zookeeper : open source 、 distributed 、 为分布式应用提供协调服务的Apache项目。存储 & 管理 数据接收观察者的注册数据变化讲负责通知已经在Zookeeper上注册的那些观察者做出反应。服务端启动时去注册原创 2020-08-18 12:48:19 · 329 阅读 · 0 评论 -
5 Flume开荒
布式的海量日志采集、聚合和传输的系统。Flume基于流式架构文章目录1 安装1.2 Agent1.2.2 Source1.2.3 Channel1.2.4 Sink1.2.5 Event2 Flume Agent内部原理3 开发实例3.1 Simple example3.1.1 安装telnet工具3.1.2 创建Agent配置文件flume-telnet-logger.conf3.1.4 开启Flume监听端口3.1.5 telnet工具向本机44444端口发送内容3.2 实时读取目录文件到HDFS原创 2020-08-16 18:27:19 · 103 阅读 · 0 评论 -
HDFS读写流程
文章目录1 读2 写1 读Client 访问NN 查询元数据信息,获得这个文件的数据块位置列表(小部分) , 返回输入流对象client 调用FileSystem的open方法2 写原创 2021-01-22 12:48:28 · 337 阅读 · 6 评论 -
YARN的个人理解
1 YARN的发展Yet Another Resource NegotiatorHadoop 2.x 之后才出现其他框架使用YARN1.2 启动YARNstart-yarn.sh 之后会多出两个进程ResourceManager (RM) 全局资源管理器NodeManager (NM) 节点资源管理器RM + NM 就是 YRAN(粗略理解)2 YARN的基本架构YARN的架构 和 HDFS 类似Master RMSlave NM3 Resource Manager原创 2020-08-15 01:28:49 · 290 阅读 · 0 评论 -
P1离线数仓_LogServer
文章目录1 多Module的创建1.1 Maven1.2 添加Module1.3 pom管理1 多Module的创建1.1 Maven首先创建普通Maven项目1.2 添加Module1.3 pom管理多Module的在主工程pom中配置</dependencyManagement>并配置详细版本子工程中的pom文件不需要再进行配置版本...原创 2020-08-11 20:37:16 · 137 阅读 · 0 评论 -
4.5 Scala_Collections
文章目录1 Overviewimmutable Array2 Source2.1 Arrayimmutablemutable ArrayBuffer1 OverviewScala collections systematically distinguish between mutable and immutable collectionsScala官网介绍scala.collectionimmutable Arraymutable.2 Source2.1 Arrayimmutabl原创 2020-08-11 12:47:13 · 152 阅读 · 0 评论 -
4.4 Scala伴生对象伴生类
Class和object名称相同,object就是class的伴生对象,class就是object的伴生类文章目录Scala中没有staticApplyScala中没有staticScala没有Java中的static 静态成员替代品是 Scala中有:单例对象:Singleton object除了用Object替换Class之外,单例对象定义看上去就像是类的定义,如下例子object ObjectApp { def main(args: Array[String]): Unit = {原创 2020-08-09 15:09:00 · 155 阅读 · 0 评论 -
离线分析_域名解析
阿里云项目介绍[9/Jun/2015:01:58:09 +0800] 日志开始时间192.168.15.75 访问IP- 代理IP1542 responsetime(单位:ms)"-" refererGET methodhttp://www.aliyun.com/index.html 访问url200 httpcode191 requestsize(单位:byte)2830 responsesize(单位:byte)MISS cache命中状态Mozilla/5.0(compatib原创 2020-08-02 17:41:21 · 519 阅读 · 0 评论 -
4.3 Scala_面向对象
文章目录1 类与对象1.2 类的定义1.3 属性2 对象2.1 类和对象的内存分配机制(重要)1 类与对象Java是面向对象的编程语言,由于历史原因,Java中还存在着非面向对象的内容:基本类型 ,null,静态方法等。Scala语言来自于Java,所以天生就是面向对象的语言,而且Scala是纯粹的面向对象的语言,即在Scala中,一切皆为对象类是抽象的,概念的,代表一类事物,比如人类,猫类…对象是具体的,实际的,代表一个具体事物类是对象的模板,对象是类的一个个体,对应一个实例Scala中类原创 2020-08-01 18:18:53 · 148 阅读 · 0 评论 -
4.1 Scala开荒_变量
文章目录1 变量1.1 变量的介绍1.2 “ + ” 的使用1.3 数据类型1.3.1 整数类型1.3.2 浮点类型1.3.3 字符类型1.3.4 Boolean1.3.5 Unit 类型、 Null类型、Nothing类型1.4 值类型的转换1.4.1 值类型隐式转换1.4.2 强制类型转换1.4.3 值类型和String类型的转换1.5 标识符的命名规范1 变量1.1 变量的介绍变量详相当于内存中的一个数据存储空间的表示,可以理解为门牌号 -----> 房间 通过变量名可以直接访问到变量原创 2020-08-01 17:40:05 · 120 阅读 · 0 评论 -
数仓_Hive全部基础知识点
文章目录1 NULL1.1 nvl(cloumn,0)用0替换掉1.2 Null造成数据倾斜1 NULL1.1 nvl(cloumn,0)用0替换掉在处理avg时,null将不参加 需要替换成0concat(‘abc’,‘def’) = abcdefconcat(‘abc’,‘null’) = nullconcat_ws1.2 Null造成数据倾斜...原创 2020-08-01 00:21:54 · 1149 阅读 · 0 评论 -
3.3 Hive SQL
precedingHive排序 全排序 局部排序 二次排序order by 全局排序 只有一个reducer 性能? hive.mapred.modesort by 局部有序 reducerinsert overwrite local directory '/home/hadoop/tmp/hive/sort'select * from emp sort by sal desc;distribute by 不是做排序用的 类似于mr中的partitioner原创 2020-07-28 20:31:08 · 232 阅读 · 0 评论 -
3.2 Hive优化
Hive排序 全排序 局部排序 二次排序order by 全局排序 只有一个reducer 性能? hive.mapred.modesort by 局部有序 reducerinsert overwrite local directory '/home/hadoop/tmp/hive/sort'select * from emp sort by sal desc;distribute by 不是做排序用的 类似于mr中的partitionerinsert over原创 2020-07-28 00:36:59 · 123 阅读 · 0 评论 -
3.1 Hive_UDF
安装首先需要安装hadoop 、 MySQLMySQL安装4.hive部署启动4.1 部署MySQL及创建hive用户, 参考CDH部署文档和视频mysql> grant all privileges on *.* to hive@'%' identified by 'ifeng';Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> flush privileges;Query OK, 0 rows affected (0原创 2020-07-22 20:32:12 · 252 阅读 · 0 评论