自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spark 任务执行经典十八问

1 SparkContext哪一端生成的?Driver端即SparkContext(Driver 是一个统称,DAGSchedule ,TaskScheduler,BlockManager,ShuffeManager,BroadcastManger)2 DAG是在哪一端被构建的?Driver 端3 RDD是在哪一端生成的?Driver 端 ,RDD 不装真正要计算的数据,而是记录了数据的描述信息(以后从哪里读数据,怎么计算)4 调用 RDD 的算子(Transformation和Ac

2020-12-30 18:14:19 46

原创 Spark 知识点

**一 spark **Spark是一个分布式计算框架 ,你对 RDD 进行 map 操作,其实是对它里面的每一个分区进行 map 进行操作你对 RDD 里面的数据进行操作,其实 RDD 里面 不装数据, RDD里面有多个分区 ,每个分区会生成 多个 task你对 RDD 操作,本质上是对 RDD 里面的每个分区进行操作 ,分区会记录你的操作信息(调哪个方法,传哪个函数)以后会根据这个分区信息 生成taskspark程序的流程 :读取或者转化数据创建一系列 RDD ,然后使用转化操作生成新

2020-12-30 00:35:55 79

原创 HDFS 关闭安全模式

hdfs dfsadmin -safemode leave; //退出安全模式hdfs dfsadmin -safemode forceExit; //强制退出安全模式若使用正常的退出安全模式方法无法生效时,即还是Safe mode is ON就使用强制退出安全模式

2020-12-29 23:29:24 2610

原创 广播变量案列练习

package cn._51doit.day06import org.apache.spark.rdd.RDDimport org.json4s.scalap.scalasig.ScalaSigEntryParsers.indeximport utils.{IpUtils, SparkUtils}object IpLocationCount { def main(args: Array[String]): Unit = { val sc = SparkUtils.createCon

2020-12-29 23:23:09 77

原创 通过并行化创建 RDD

一首先连接集群 ,进入Spark客户端在 bin 目录下./spark-shell --master spark://linux01:7077二我们可以通过一个集合来创建 RDDval arr=Array(1,2,3,4,5,6,7,8,9) val rdd = sc.parallelize(arr) 得到一个新的 RDDrdd.partitions.length 这是分区的数量val rdd =sc.parallelize(arr,200)这是改变分区的数量 (200)

2020-12-22 23:10:26 1330

原创 RDD

RDD**是一个 分布式、弹性、可容错的抽象数据集,代表着一个不可变的,可分区的,可以并行执行的一个集合RDD中不保存计算的数据,保存的式元数据,即数据的描述信息和运算逻辑,比如数据要从哪里读取,怎么运算等RDD 可以被认为是一个代理, 你对RDD 进行操作,相当于在Driver 端先是记录下计算的描述信息,然后生成Task ,将Task 调度到 Executor 端才执行真正的计算逻辑**RDD特点一 有多个分区,分区数量决定任务并行数① 从HDFS 中读取 :1)如果是从HDFS中读取数

2020-12-22 21:12:09 66

原创 MapReduce Spark 的区别

隐士转换有两种类型一种继承 一种包装

2020-12-22 20:31:07 47

原创 shuffle

1、什么是shuffle?把父RDD中的KV对按照Key重新分区,从而得到一个新的RDD。也就是说原本同属于父RDD同一个分区的数据需要进入到子RDD的不同的分区。2、为什么需要shuffle?在分布式计算框架中,数据本地化是一个很重要的考虑,即计算需要被分发到数据所在的位置,从而减少数据的移动,提高运行效率。Map-Reduce的输入数据通常是HDFS中的文件,所以数据本地化要求map任务尽量被调度到保存了输入文件的节点执行。但是,有一些计算逻辑是无法简单地获取本地数据的,reduce的逻辑都是如

2020-12-22 09:11:38 337

原创 在 idea 里面编写 WordCount 程序

object WorldCount { def main(args: Array[String]): Unit = { // 创建SparkContext ,只有使用SparkContext 才可以向集群申请资源, // 才可以创建 RDD val conf = new SparkConf().setAppName("WorldCount") val sc = new SparkContext(conf) // 第一步创建RDD : 指定【以后】从HD

2020-12-21 23:51:40 377

原创 Spack 架构体系

Spack 架构体系1.1 standalone client模式1.2 standalone cluster模式1.3 Spark On YARN cluster模式1.4 Spark执行流程简介Job:RDD每一个行动操作都会生成一个或者多个调度阶段 调度阶段(Stage):每个Job都会根据依赖关系,以Shuffle过程作为划分,分为Shuffle Map Stage和Result Stage。每个Stage对应一个TaskSet,一个Task中包含多Task,Task

2020-12-21 23:47:56 445

原创 Spark 简介

Spark简介1.1什么是SparkSpark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache的顶级项目,2014年5月发布spark1.0,2016年7月发布spark2.0,2020年6月18日发布spark3.0.01.2 Spark特点1)快速高效Hadoop的MapReduce作为第一代分布式大数据计算引擎,在设计之初,受当时计算机硬件条件所限(

2020-12-21 23:41:15 228

原创 Akka 框架简介 及 RPC 通信案例过程分析

Akka介绍**Akka 是 JAVA 虚拟机平台上构建高并发, 分布式和容错应用的工具包。运行时 Akka 用 Scala 语言编写,同时提供了 Scala 和 java 的开发接口。Akka处理并发的方法基于Actor 模型 ,Actor 之间通信的唯一机制就是消息传递 **Akka 特点:1) 对并发模型进行了更高的抽象2) 是异步,非阻塞,高性能的事件驱动机构编程模型3) 是轻量级时间处理(1 GB 内存可容纳百万级别个Actor)4)它提供了一种称为 Actor 的 并发模型,其粒

2020-12-19 23:11:44 263 1

原创 Scala 构造器

Scala构造器的介绍和 java 一样, Scala 构造对象也需要调用构造方法,并且可以有任意多个构造方法(即 Scala 中构造器也支持重载)scala 类的 构造器包括: 主构造器 和 辅助构造器代码演示如下// 在构造器中传递的参数可以用 val,var 修饰,会成为类的成员变量class Boy(val name:String ,var age :Int) { var gender :String =_ // 对应类型变量的初始默认值 var fv: Doub

2020-12-18 00:56:30 132

原创 Scala 学习第一天 简单的常用方法

object HelloScala{def main(args:Array[String]):Unit={ println("hello,scala~~")} // 说明 1 def 表示是一个方法 ,这是一个关键字 2 main表示方法名字,表示程序入口 3 args:Array[String] 表示形参,scala的特点是将参数名在前 类型在后 4 Array[String] 表示类型数组 5 :Unit= 表示该函数的返回值为空(void) 6 printl

2020-12-16 19:41:22 63

原创 Scala 安装编译器

一 安装JDK因为Scala是运行在JVM平台上的,所以安装Scala之前要安装JDK二 安装Scala1) Windows 安装Scala编译器 Scala 官网 http://www.scala-lang.org/下载Scala编译器安装包,目前最新版本是2.12.x,但是目前大多数的框架都是用2.11.x编写开发的,Spark2.x使用的就是2.11.x,所以这里推荐2.11.x版本,下载scala-2.11.8.msi后点击下一步就可以了(1) 安装 jdk1.8

2020-12-13 21:56:54 309

原创 Scala 入门学习 介绍 了解 Scala

idea 插件网址

2020-12-13 21:18:39 152

原创 JAVAEE ajax 查询用户列表案列

案例过程思路1 启动 tomcat2 xt 项目在内置的tomcat中注意 : 这是一个程序的入口1 ) main方法程序的入口 运行 启动 tomcat2)tomcat 容器启动 进行加载项目3)创建app 容器 ,初始化 springboot 项目4)根据项目中的依赖 完成自动配置(web 端口 前端控制器的拦截url 乱码 包扫描 )5) 启动 加载前端控制器 , 加载控制器 ,加载业务层【自动的包扫描】6) 加载静态资源7) 页面请求 ----->

2020-12-12 21:00:23 175

原创 Intellij IDEA 常用的快捷键

Intellij IDEA 快捷键大全IntelliJ Idea 常用快捷键列表Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾Ctrl+F12,可以显示当前文件的结构Ctrl+F7,可以查询当前元素在当前文件中的引用,然后按 F3 可以选择Ctrl+N,可以快速打开类Ctrl+Shift+N,可以

2020-12-11 23:58:10 38

原创 ClickHouse 表引擎

表引擎(即表的类型)决定了:数据的存储方式和位置,写到哪里以及从哪里读取数据支持哪些查询以及如何支持。并发数据访问。索引的使用(如果存在)。是否可以执行多线程请求。数据复制参数。在读取时,引擎只需要输出所请求的列,但在某些情况下,引擎可以在响应请求时部分处理数据。对于大多数正式的任务,应该使用MergeTree族中的引擎。1 日志引擎 具有最小功能的轻量级引擎。当您需要快速写入许多小表(最多约100万行)并在以后整体读取它们时,该类型的引擎是最有效的。1 TinyLog引擎(数据

2020-12-09 00:03:27 328

原创 Clickhouse SQL 语法

1创建数据库1本地引擎默认的引擎, 默认操作本地或者是指定集群的数据CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] [ENGINE = engine(…)]2mysql引擎MySQL引擎用于将远程的MySQL服务器中的表映射到ClickHouse中,并允许您对表进行INSERT和SELECT查询,以方便您在ClickHouse与MySQL之间进行数据交换。MySQL数据库引擎会将对其的查询转换为MySQL语法并发送到

2020-12-08 22:53:51 812

原创 大数据核心技术

学完大数据可以胜任什么职位?一、ETL研发企业数据种类与来源的不断增加,对数据进行整合与处理变得越来越困难,企业迫切需要一种有数据整合能力的人才。ETL开发者这是在此需求基础下而诞生的一个职业岗位。ETL人才在大数据时代炙手可热的原因之一是:在企业大数据应用的早期阶段,Hadoop只是穷人的ETL。二、Hadoop开发随着数据规模不断增大,传统BI的数据处理成本过高企业负担加重。而Hadoop廉价的数据处理能力被重新挖掘,企业需求持续增长。并成为大数据人才必须掌握的一种技术。三、可视化工具开发可

2020-12-08 21:54:59 89

原创 JSON 函数

JSON 函数一 在CH 中建表create table tb_json(cont String) engine=Log ;二 导入表数据insert into tb_json values('{"movie":"1207","rate":"4","timeStamp":"978300719","uid":"1"}'),('{"movie":"2028","rate":"5","timeStamp":"978301619","uid":"1"}'),('{"movie":"531","ra

2020-12-08 17:28:23 124

原创 数组函数

高阶函数方法: 是一段逻辑代码的封装, 实现功能 , 代码的重复使用, 方便调用函数: 是一段逻辑代码的封装, 实现功能 , 代码的重复使用, 方便调用区别:方法是对象的一部分函数比方法高级 , 可以作为一个特殊的对象单独存在arrayMap 是一个高阶函数参数一 是一个函数 function f(T x){}参数二 数组select arrayMap(x->x*x ,[1,2,3,4]) ;结果数组拼接select arrayConcat([1,2],[3,4],

2020-12-08 17:05:56 41

原创 order by 和 group by 的区别

1,order by 从英文里理解就是行的排序方式,默认的为升序。 order by 后面必须列出排序的字段名,可以是多个字段名。2,group by 从英文里理解就是分组。必须有“聚合函数”来配合才能使用,使用时至少需要一个分组标志字段。注意:聚合函数是—sum()、count()、avg()等都是“聚合函数”3, 在sql命令格式使用的先后顺序上,group by 先于 order by。在Sql中也可以说order by是按字段排序,group by 是按字段分类通常order by 和g

2020-12-07 23:44:38 2469 1

原创 ClickHouse 习题练习 (连续N天的登录记录)

a,2017-02-05,200a,2017-02-06,300a,2017-02-07,200a,2017-02-08,400a,2017-02-10,600b,2017-02-05,200b,2017-02-06,300b,2017-02-08,200b,2017-02-09,400b,2017-02-10,600c,2017-01-31,200c,2017-02-01,300c,2017-02-02,200c,2017-02-03,400c,2017-02-10,600a

2020-12-07 23:42:06 738

原创 MergerTree 引擎 ReplacingMergeTree 引擎 VersionedCollapsingMergeTree 引擎

**该 MergeTree系列的引擎和其他引擎是最强大的ClickHouse引擎 。主要是将大量的数据插入到表中,数据快速的逐个部分写入到表中,然后应用规则在后台合并这些部分。这种方法比插入期间连续重写存储中的 数据效率更高 **主要特点:1) 存储按逐渐排序的数据这时可以创建一个小的稀疏索引,以便更快的查找数据2) 如果指定了分区键,则可以使用分区ClickHouse 支持某些分区操作,这些操作比对相同数据,相同结果的常规操作更有效。ClickHouse 还会自动切断在查询中

2020-12-05 12:09:41 756

原创 建表 建数据库 以及 Log 引擎的应用

1 开启ClickHouseservice clickhouse-server start 开启 clickhouseclickhouse-client -m 进入clickhouse客户端 -m 可以多行写2 建数据库create database db_name ; 建数据库use db_name ; 切换数据库 ;select currentDatabase() ; 查看当前使用的数据库drop database db

2020-12-04 22:33:34 125

原创 ClickHouse 安装

ClickHouse安装1)安装curl工具yum install -y curl2)添加clickhouse的yum镜像curl -s https://packagecloud.io/install/repositories/altinity/clickhouse/script.rpm.sh | sudo bash3)检查镜像情况[root@doit04 yum.repos.d]# yum list | grep clickhouse 会出来以下结果clickhouse-clie

2020-12-04 22:09:13 84

原创 ClickHouse 介绍

**什么是ClickHouseClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。官网中文文档 https://clickhouse.tech/docs/zh/**1)SQL结构化查询语言2)分布式的完全列式的存储的数据库(CRUD)3) 自己管理数据,读取别人的 mysql hdfs 网络 本地文件 存储海量数据4) 解决并发5) 列式存储 可以是每个字段一个文件**ClickHouse是一个完全的列式数据库管理系统,允许在运行时

2020-12-04 21:03:21 1573

原创 使用反射调用 java 类方法

反射 reflect 函数reflect(class(类名) , methodName(方法名) , args(可变的参数)…)1 编写java程序2 打包3 上传到linux系统4 add jar /test.jar 将jar包添加到 $HIVE_HOME/lib/目录下5 select reflect(‘cn._51doit.test.Test1’ , ‘test1’ , ‘HELLO’ , 23) ;select reflect('Test1','test1',

2020-12-04 00:14:53 48

原创 HIve 数据类型的元素的操作

在hive中的数据类型基本数据类型集合数据类型习题练习benben,fengjie_furong,xiaoben:18_daben:19,hui long guan_beijing姓名 朋友 孩子 城市yangyang,caicai_susu,xiao yang:18_xiaoxiao yang:19,chao yang_beijing1) 建表 导入数据drop t...

2020-12-03 23:48:02 123

原创 Hive 一些系统函数

系统函数show functions 查看函数 decs function 函数 查看函数使用方法select trunc ('2020-12-3','MM') ; 这个月的第一天select trunc ('2020-12-3','Q') ; 这个季度的第一天select trunc ('2020-12-3','YEAR') ; 这年的第一天 2020-1-1select date_sub('2020-12-3' , 1 ) ; 减一天

2020-12-03 22:43:31 51

原创 Hive 编号函数

编号函数、row_number ()仅仅定义组内的数据进行编号 1 2 3 4rank()编号的时候 排序字段会参与编号相同的排序字段 标号一致, 总标号不变dense_rank()编号的时候 排序字段会参与编号相同的排序字段标号一致, 总标号有可能变小习题练习孙悟空 语文 87孙悟空 数学 95娜娜 英语 84宋宋 语文 64孙悟空 英语 68宋宋 英语 84婷婷 语文 65娜娜 语文 94宋宋 数学 86婷婷 数学 85娜娜 数学 56婷婷 英

2020-12-03 22:09:40 919

原创 Hive 的 窗口函数介绍

窗口函数一 窗口函数有什么用?在日常工作中,经常会遇到需要在每组内排名,比如下面的业务需求:排名问题:每个部门按业绩来排名topN问题:找出每个部门排名前N的员工进行奖励面对这类需求,就需要使用sql的高级功能窗口函数了。二 什么是窗口函数 ?窗口函数,也叫OLAP函数(Online Anallytical Processing,联机分析处理),可以对数据库数据进行实时分析处理。窗口函数的基本语法如下:selectcount(1) over(partition by name)

2020-12-03 00:46:25 257 1

原创 sql:常用 sql 语句

聚合函数一句话概括什么是聚合函数: 多行合并为一行。1 常用的一些j函数sum, count, max, min, avg sum () 返回某列值之和count () 返回某列的行数max () 返回某列的最大值min () 返回某列的最小值avg () 返回某列的平均值分组函数(Group by)注意 :使用Group by时,在Group by后面出现的字段也要出现在selec

2020-12-03 00:01:32 71

原创 Hive 中 分桶表 和 抽样查询

我们知道 分区表呢 是将数据分文件夹管理 , 减少数据扫描的文件范围 直接从对应文件夹中读取数据 ,但如果有时候分区表中的数据也大的时候,我们读取数据的时候,表之间需要 join 的 时候 会判断所有数据 进行读取扫描 ,效率不高这时候我们可以把分区表中的数据进行分割 就是HIve中的分桶表分桶表 是 对join 对查询的优化 将数据按照指定的字段的规则分文件1 创建普通表 导入数据2 创建分桶表3 开启分桶功能4 使用insert into的方式导入数据 到 分桶表中1

2020-12-02 23:19:25 147

原创 Hive 常用的一些函数

创建数组array(ele1 , ele2…) --创建数组 数组是hive中的一种集合数据类型 和 java中的数组一样select array(1,2,3,4) ; 创建一个数组select array(1,2,3,4)[index] ; 在数组里取值是否包含元素array_contains(arr , element) ;select array_contains(array(‘a’,‘ab’,‘abc’,‘abcd’),‘aa’) ; 是否包含一个元素,包含返回true..

2020-12-02 10:57:10 82

原创 Hive 中 case when 和 聚合函数的使用(练习解析)

习题王奔 A 男娜娜 A 男宋宋 B 男凤姐 A 女热巴 B 女慧慧 B 女求出以下结果 男 女A 2 1B 1 2第一步 先建文件夹导入数据vi /data/emp/emp.txt 把数据输入到emp.txt下第二步 建表在hive客户端建表create table tb_emp(name string ,dname string ,gender string )row format delimi

2020-12-01 21:47:08 1055

空空如也

空空如也

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

TA关注的人

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