- 博客(141)
- 资源 (14)
- 收藏
- 关注
原创 JAVA知识整理-0
基础知识java整型变量默认为intjava的整型常量默认为int型,声明long型常量须后加‘ l’ 或‘ L’java程序中变量通常声明为int型,除非不足以表示较大的数 ,才使用longJava的浮点型常量默认为double型,声明float型常量,须后加‘ f’ 或‘ F’ 。字符类型char,用单引号' a ' ,括起来。基本数据类型转换1.byte,short,char之间不会相互转换,他们三者在计算时首先为int类型 。2.boolean类型不能与其它数据.
2021-07-25 14:44:11
383
原创 SQL中的时间
1.关键字:将日期格式转换成时间戳格式unix_timestamp();将日期格式 转换成指定格式date_format(date(),'%y-%m-%d');2.interval的说明上个月或上周之类的 用这个来指定interval 2 month -- 前几个月 数值就是几当函数使用时,即interval(),为比较函数,如:interval(10,1,3,5,7); 结果为4;原理:10为被比较数,后面1,3,5,7为比较数,将后面四个依次与10比...
2021-07-17 08:24:14
1455
2
原创 Scala一些
spark sql对seq(s1, s2, s3, …)值的包装,seq的每个元素si会被包装成一个Row如果si为一个简单值,则生成一个只包含一个value列的Row如果si为一个N-Tuple,则生成一个包含N列的Row特别的,如果N-Tuple是一元组,则视为非元组,即生成一个只包含一个value列的Rowscala> Seq(("bluejoe"),("alex")).toDF().show+-------+| value|+-------+|bluejoe|| ...
2021-07-16 21:51:40
335
原创 构建数据仓库
什么是数据仓库数据仓库试图提供一种从操作型系统到决策支持环境的数据流架构模型。处理过程收集、清洗、整合来自多个数据源的数据。数据仓库描述:一个面向主题的、集成的、随时间变化的、非易失的数据集合。面向主题:数据仓库是面向主题的。主题是一个抽象概念,简单地说就是与业务相关的数据的类别,每一个主题基本对应一个宏观的分析领域。主题域是对某个主题进行分析后确定的主题的边界;集成:集成的概念与面向主题是密切相关的。从公司层面整体分析销售数据,必须将多个分散的数据源统一成一致的、无歧义的数
2021-07-09 23:55:07
180
原创 ElasticSearch-3
KibanaKibana 是一个免费且开放的用户界面,能够让你对 Elasticsearch 数据进行可视化,并让你在 Elastic Stack 中进行导航。你可以进行各种操作,从跟踪查询负载,到理解请求如何流经你的整个应用,都能轻松完成修改 config/kibana.yml 文件# 默认端口server.port: 5601# ES 服务器的地址elasticsearch.hosts: ["http://localhost:9200"]# 索引名kibana.inde
2021-07-05 07:30:53
115
1
原创 ElasticSearch-2
ElasticSearch环境1.集群Cluster一个 Elasticsearch 集群有一个唯一的名字标识,这个名字默认就是”elasticsearch”。这个名字是重要的,因为一个节点只能通过指定某个集群的名字,来加入这个集群。2.节点Node集群中包含很多服务器,一个节点就是其中的一个服务器。作为集群的一部分,它存储数据,参与集群的索引和搜索功能。一个节点也是由一个名字来标识的,默认情况下,这个名字是一个随机的漫威漫画角色的名字,这个名字会在启动的时候赋予节点。这个名字对于管理工
2021-07-04 09:09:55
1582
2
原创 ElasticSearch-1
1.Elasticsearch 是什么The Elastic Stack, 包括 Elasticsearch、Kibana、Beats 和 Logstash(也称为 ELK Stack)。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。Elaticsearch,简称为 ES,ES 是一个开源的高扩展的分布式全文搜索引擎,是整个 Elastic Stack 技术栈的核心。它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理 PB 级别的数据。
2021-07-03 19:11:35
225
1
原创 hive一些操作
建表语句:create external table `dic_list` ( dic_id string comment '代码集id', dic_cnname string comment '代码集中文名称', table_ele string comment '数据项', table_enname string comment '数据集英文名') comment '数据集码表引用记录'ROW FORMAT SERDE ...
2021-06-28 11:20:01
217
原创 JAVA中的一些
正则表达式:然后查看源码知道useDelimiter 下面的实现使用的是Pattern,参考文章得知:https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.htmlBoundary matchers^ The beginning of a line$ The end of a line\b A word boundary\B A non-word boundary\A The b...
2021-06-26 08:59:32
167
原创 Kafka工作原理和机制
Kafka工作流程1.Kafka将消息按Topic进行分类,每条message由三个属性组成。offset:表示message在当前Partition(分区)中的偏移量,是一个逻辑上的值,唯一确定了Partition中的一条message,可以简单的认为是一个id;MessageSize:表示message内容data的大小;data:message的具体内容;2.在整个kafka架构中,生产者和消费者采用发布和订阅的模式,生产者生产消息,消费者消费消息,它俩各司其职,并且都是面向t
2021-06-25 23:14:14
2507
原创 Java操作Kafka
Kafka的介绍Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。Kafka 有如下特性:以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间复杂度的访问性能。 高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条以上消息的传输。 支持Kafka Server间的消息分区,及分布式消费,同时保证每个Partition内的消息顺序传输。 同时支持离线数据处理和实时数据处理。 Scale out:支持在
2021-06-23 16:56:20
4639
原创 Spark官方文档-SparkStreaming
概述Spark Streaming 是核心 Spark API 的扩展,它支持实时数据流的可扩展、高吞吐量、容错流处理。支持多个数据源操作,Kafka, Kinesis, or TCP sockets等;并且可以使用复杂算法来处理数据,像高级别功能表达map,reduce,join和window。在内部,它的工作原理如下。Spark Streaming 接收实时输入的数据流,并将数据分成批处理,然后由 Spark 引擎处理以批处理生成最终的结果流。Spark Streaming 提.
2021-06-22 21:01:32
275
原创 Spark官方文档-SparkCore
快速开始RDD1.Spark 的主要抽象是一个分布式弹性数据集(RDD),可以从 Hadoop InputFormats(例如 HDFS 文件)或通过转换其他RDD来创建RDD。val textFile = spark.read.textFile("README.md")2.可以通过调用某些操作直接从 RDD中获取值,或者转换RDD以获得新的值 textFile.count() textFile.first() // First item in this Dataset3.
2021-06-22 14:07:43
494
原创 Spark中关于购物篮的设计,以及优化
一:介绍1.购物篮的定义2.适用场景3.相关概念4.步骤5.编程实现6.步骤二:程序1.程序package com.ibeifeng.senior.mba.associationimport org.apache.hadoop.fs.{FileSystem, Path}import org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}...
2021-06-15 20:46:47
350
2
原创 Java操作HDFS
一、从hdfs下载文件到windows本地import java.io.IOException;import java.net.URI;import java.net.URISyntaxException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;/*** 从hdfs下载文件到window..
2021-06-15 18:58:21
1326
1
原创 SparkSQL项目
YARN产生背景MapReduce1.X的问题:JobTracker的压力太大了;YARN的产生YARN的架构1个RM(ResourceManager)+N个(NodeManager)ResourceManager的职责:一个集群的active状态的RM只有一个,负责整个集群的资源管理和调度;1.处理客户端的请求(启动/杀死)任务;2.启动/监控ApplicationMaster(一个作业对应一个AM);3.监控NM;4.系统的资源分配和调度;N.
2021-06-15 07:22:42
798
1
原创 玩转数据结构
数组时间复杂度将1次resize均摊给2n+1;所以每次addLast操作,进行2次基本操作;均摊时间复杂度O(1)复杂度震荡addLast和removeLast操作同时考虑:在n/2时,这个临界点,扩容和缩容;解决方案:Lazy当数组中的数据为实际的1/4时,再进行缩容操作data.length / 2 != 0 //当数组元素;当data.length等于1时,数组不能分配0个大小;栈和队列栈是一种线性结构;只能从一端添加元素,也只..
2021-06-08 07:23:48
291
原创 Spark内存分析
我们都知道Spark能够有效的利用内存并进行分布式计算,其内存管理模块在整个系统中扮演着非常重要的角色。为了更好地利用 Spark,深入地理解其内存管理模型具有非常重要的意义,这有助于我们对 Spark 进行更好的调优;在出现各种内存问题时,能够摸清头脑,找到哪块内存区域出现问题。下文介绍的内存模型全部指 Executor 端的内存模型, Driver 端的内存模型本文不做介绍。统一内存管理模块包括了堆内内存(On-heap Memory)和堆外内存(Off-heap Memory)两大区域,下面对这两..
2021-06-07 19:20:44
444
原创 Spark调优(一)-----使用broadcast广播变量
优化方式以下是亲测的一些Spark调优方法并附上优化时间:1.使用broadcast广播变量使用broadcast广播变量,将HBase中的静态表数据做广播,可以大大提高效率,在我们的应用场景中,因为HBase中的静态数据较大,大概是6万多条静态路段信息,若不使用broadcast,会引发频繁GC。1.1原理说明在算子函数中使用到外部变量或两表join时,默认情况下,Spark会将该变量或小维表复制多个副本,通过网络传输到task中,此时每个task都有一个变量副本。如果变量本身比较.
2021-06-04 17:16:58
1026
原创 kafka一些问题
调优(max.request.size)严重的bug,现象是:1.一执行迁移程序,数据库连接就超时。 2.kafka连接不上,同时查看error.log日志,kafka一直报数据大小超过kafka最大的发送size(kafka max.request.size)。也就是那天根本没有上线成功是失败的。那么我们是怎么处理的呢?下面以yml配置为例:消费数据:properties: max.partition.fetch.bytes...
2021-06-04 16:06:35
302
原创 Spark Streaming项目实战
初始实时流处理需求:统计主站每个(指定)课程访问的客户端、地域信息分布地域:ip转换, SparkSQL项目实战客户端:useragent获取, hadoop基础课程实现步骤: 课程编号、IP信息、useragent 进行相应的统计分析操作:MR/Spark项目框架: 日志收集: Flume 离线分析:MR/Spark 统计结果图形化展示问题: 小时级别 10分钟 ...
2021-06-04 07:15:37
1500
原创 Scala一些
getOrElse()方法getOrElse()主要就是防范措施,如果有值,那就可以得到这个值,如果没有就会得到一个默认值,个人认为早开发过程中用getOrElse()方法要比用get()方法安全得多。
2021-06-01 15:49:11
118
原创 Scala集合
Scala集合Scala提供了一套很好的集合实现,提供了一些集合类型的抽象。Scala 集合分为可变的和不可变的集合。可变集合可以在适当的地方被更新或扩展。这意味着你可以修改,添加,移除一个集合的元素。而不可变集合类,相比之下,永远不会改变。不过,你仍然可以模拟添加,移除或更新操作。但是这些操作将在每一种情况下都返回一个新的集合,同时使原来的集合不发生改变。接下来我们将为大家介绍几种常用集合类型的应用:序号 集合及描述 1 Scala List(列表) List
2021-06-01 14:11:05
296
原创 scala中的()和{}的区别总结
scala中的()和{}大括号{}用于代码块,计算结果是代码最后一行;大括号{}用于拥有代码块的函数;大括号{}在只有一行代码时可以省略,除了case语句(Scala适用);小括号()在函数没有参数时可以省略(Scala适用);几乎没有二者都省略的情况。单个参数尽量用{},只有一行代码情况下可以用().两个及以上参数必须用()println(listRDD.mapPartitionsWithIndex( //两个参数,必须() (index, datas) => { ...
2021-05-31 17:34:08
705
原创 Spark一些优化
一、优化1:数据本地化一、进程本地化级别1.PROCESS_LOCAL:进程本地化,代码和数据在同一个进程中,也就是在同一个executor中;计算数据的task由executor执行,数据在executor的BlockManager中;性能最好.2.NODE_LOCAL:节点本地化代码和数据在同一个节点中;比如说,数据作为一个HDFS block块,就在节点上,而task在节点上某个executor中运行;或者是,数据和task在一个节点上的不同executor中;数据需要在进程间进行
2021-05-31 16:48:24
408
原创 Scala学习
Scala程序结构1.Object是一个关键字,表示一个伴生对象;2.如该文件只出现了一个object HelloScala 就会在编译后两个 .class文件;3.第一个文件是HelloScala.class这个表示他的伴生类,但是空的;4.第二个文件是HelloScala$.class对应的是Object HelloScala,但是本质是调用但是本质调用它对应的一个静态 属性MODULE$5.这两个文件的关系和main函数object HelloScala {// 1. d.
2021-05-30 00:19:37
381
原创 Spark 3.0如何提高SQL工作负载的性能
在几乎所有处理复杂数据的部门中,Spark很快已成为跨数据和分析生命周期的团队的事实上的分布式计算框架。新的Adaptive Query Execution框架(AQE)是Spark 3.0最令人期待的功能之一,它可以解决困扰许多Spark SQL工作负载的问题。英特尔和百度混合团队在2018年初的博客中记录了这些内容。要更深入地了解框架,请学习我们更新的Apache Spark Performance Tuning课程。我们在Workload XM方面的经验无疑证实了这些问题的现实性和严重性。A.
2021-05-29 21:43:50
278
原创 HBase 工具 | hbase-sdk 推出HQL功能
hbase-sdk基于HBase Client的相关API开发而来的一款轻量级的HBase ORM框架。提供SQL查询功能,以类SQL的方式——HQL读写HBase数据。????针对HBase 1.x和2.xAPI的不同之处,在其上做了一层统一的封装。hbase-sdk分为spring-boot-starter-hbase和hbase-sdk-core两部分。SpringBoot项目中引入spring-boot-starter-hbase,在普通的Java项目中则可以使用hbase-sdk-
2021-05-29 21:39:07
475
原创 Druid概述
1.Apache Druid简介Apache Druid是一个分布式的、面向列的、实时分析数据库,旨在快速获取大量数据并将其编入索引,并对大型数据集进行快速的切片和切分分析(“OLAP查询),常用于实时摄取、快速查询和对时间依赖性很高的数据库用户。因此,Druid可以为可视化的分析应用程序提供强力的数据源支持,或用作需要快速聚合的高并发API的后端。Druid最适合面向事件的数据。Apache Druid通常位于存储或处理层与最终用户之间,并充当查询层以服务于分析工作负载。常见应用领域.
2021-05-29 21:36:03
2176
3
原创 Spark报错与日志问题查询指南
一、各界面说明1.1、查看YARN页面的driver日志可以在右侧搜索框中填对应application号找到任务,然后点击对应的application号链接,如下图所示:这样会进入该application的信息界面,“FinalStatus”显示了该application的最后状态,点击下方的“logs”按钮也会进入到driver日志界面,如下图所示:对于driver日志而言,代码中的println()和show()等函数的输出,一般都在stdout里,大部分重要的报错信息都在stderr里。...
2021-05-29 21:27:35
1232
3
转载 hive-udf-kafka批量数据导入kafka
背景:数据存在hive中,现在需要将数据导入kafka中,为了减少中间环节,使用自定义UDF将hive数据导入到kafka中问题:UDF时对一行的处理,批量导入就会涉及多行的问题,怎么将多行数据放到一个udf中?解决思路:用collect_list函数将多行转成集合,在udf中循环遍历,发送到kafkapackage cn.kobold; import org.apache.hadoop.hive.ql.exec.Description; import org.apache.had.
2021-05-29 21:08:03
833
原创 Java基础-整理
static存在的主要意义static的主要意义是在于创建独立于具体对象的域变量或者方法。以致于即使没有创建对象,也能使用属性和调用方法!static关键字还有一个比较关键的作用就是 用来形成静态代码块以优化程序性能。static块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次。为什么说static块可以用来优化程序性能,是因为它的特性:只会在类加载的时候执行一次。因此,很多时候会将一些只需要进
2021-05-27 14:47:04
127
原创 Java集合容器面试题
集合容器概述什么是集合集合框架:用于存储数据的容器。集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。接口:表示集合的抽象数据类型。接口允许我们操作集合时不必关注具体实现,从而达到“多态”。在面向对象编程语言中,接口通常用来形成规范。实现:集合接口的具体实现,是重用性很高的数据结构。算法:在一个实现了某个集合框架中的接口的对象身上完成某种有用的计算的方法,例如查找、排序等。这些算法通常是多态的,因为相
2021-05-27 06:56:39
125
原创 Redis--整理
什么是RedisRedis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库。Redis 可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。与传统数据库不同的是 Redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向,每秒可以处理超过10万次读写操作,是已知性能最快的Key-Value DB。..
2021-05-26 22:14:42
151
原创 Zookeeper-整理
1. ZooKeeper 是什么?ZooKeeper 是一个开源的分布式协调服务。它是一个为分布式应用提供一致性服务的软件,分布式应用程序可以基于 Zookeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。ZooKeeper 的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。Zookeeper 保证了如下分布式一致性特性:(1)顺序一致性(2)原子性(3)单一视
2021-05-26 19:40:57
152
原创 JAVA虚拟机-整理
Java内存区域说一下 JVM 的主要组成部分及其作用?JVM包含两个子系统和两个组件:两个子系统为Class loader(类装载)、Execution engine(执行引擎);两个组件为Runtime data area(运行时数据区)、Native Interface(本地接口)。Class loader(类装载):根据给定的全限定名类名(如:java.lang.Object)来装载class文件到Runtime data area中的method area。Executio
2021-05-26 18:38:39
95
原创 Java并发编程-并发知识
一、并发理论1.Java内存模型Java中垃圾回收有什么目的?什么时候进行垃圾回收?垃圾回收是在内存中存在没有引用的对象或超过作用域的对象时进行的。垃圾回收的目的是识别并且丢弃应用不再使用的对象来释放和重用资源。如果对象的引用被置为null,垃圾收集器是否会立即释放对象占用的内存?不会,在下一个垃圾回调周期中,这个对象将是被可回收的。也就是说并不会立即被垃圾收集器立刻回收,而是在下一次垃圾回收时才会释放其占用的内存。finalize()方法什么时候被调用?析构函数(final
2021-05-26 07:36:49
562
原创 Java并发编程-基础知识
一、基础知识并发编程有什么缺点并发编程的目的就是为了能提高程序的执行效率,提高程序运行速度,但是并发编程并不总是能提高程序运行速度的,而且并发编程可能会遇到很多问题,比如**:内存泄漏、上下文切换、线程安全、死锁**等问题。并发编程三要素是什么?在 Java 程序中怎么保证多线程的运行安全?并发编程三要素(线程的安全性问题体现在):原子性:原子,即一个不可再被分割的颗粒。原子性指的是一个或多个操作要么全部执行成功要么全部执行失败。可见性:一个线程对共享变量的修改,另一个线程能够立刻看
2021-05-26 06:45:41
166
原创 Spark面试
1. Spark消费 Kafka,分布式的情况下,如何保证消息的顺序?Kafka 分布式的单位是 Partition。如何保证消息有序,需要分几个情况讨论。 同一个 Partition 用一个 write ahead log 组织,所以可以保证 FIFO 的顺序。 不同 Partition 之间不能保证顺序。但是绝大多数用户都可以通过 message key 来定义,因为同一个 key 的 message 可以保证只发送到同一个 Partition。比如说 key 是 user id,t
2021-05-25 21:58:07
213
操作系统设计与实现第三版上
2015-01-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人