春雨里洗过的太阳

世间所有的相遇,都是久别重逢

一 原理 1 spark部署情况 在 Spark 部分的底层执行逻辑开始之前, 还是要先认识一下 Spark 的部署情况, 根据部署情况, 从而理解如何调度. 针对于上图, 首先可以看到整体上在集群中运行的角色有如下几个: * Master Daemon 负责管理 Master 节点, 协调资源的获取, 以及连接 Worker 节点来运行 Executor, 是 Spark 集群中的协调节点 * Worker Daemon Workers 也称之为叫 Slaves, 是 Spark 集群中的计算节点, 用于和 Master 交互并管理 E
阅读全文 »

一 深入RDDS 先来个小demo 1 需求 在访问日志中,统计独立IP数量,TOP10 2 明确数据结构 IP,时间戳,http method,URL…… 1 2 1/Nov/2017:00:00:15 +0000] "GET /axis2/services/WebFilteringService/getCategoryByUrl?app=chrome_antiporn&ver=0.19.7.1&url=https%3A//securepubads.g.doubleclick.net/static/3p_cookie.html&cat=business-and-economy HT
阅读全文 »

#一 Spark 概述 ##1 什么是Spark Apache Spark 是一个快速的, 多用途的集群计算系统, 相对于 Hadoop MapReduce 将中间结果保存在磁盘中, Spark 使用了内存保存中间结果, 能在数据尚未写入硬盘时在内存中进行运算. Spark 只是一个计算框架, 不像 Hadoop 一样包含了分布式文件系统和完备的调度系统, 如果要使用 Spark, 需要搭载其它的文件系统和更成熟的调度系统 Spark 产生之前, 已经有非常成熟的计算系统存在了, 例如 MapReduce, 这些计算系统提供了高层次的API, 把计算运行在集群中并提供容错能力, 从而实
阅读全文 »

#一 Lucene 全文检索: 索引&检索 倒排索引 : 1我是中国人 2 中国是全球人口最多的国家 ,中国人也最多 例如这两句 用 倒排索引 1,我 (1:1){0} 第一个1 为第一行 第二个1 为个数 0 为行偏移量 2,中国 (1:1) {2},(2:2){0,15} #二 es 概述 全称 Elastic Search 基于Lucene ES只是封装了Lucene es 制定了一套规则 ,发送给我的数据只要满足一定的格式即可,而不管你的数据来源,只要满足这个规则es就可以对其进行操作. Elastic有一条完整的产品线及解决方案:Elasticsearch
阅读全文 »

Scala高级 一 高阶函数 scala 混合了面向对象和函数式的特性,在函数式编程语言中,函数是“头等公民”,它和Int、String、Class等其他类型处于同等的地位,可以像其他类型的变量一样被传递和操作。 高阶函数包含 * 作为值的函数 * 匿名函数 * 闭包 * 柯里化等等 1作为值得函数 在scala中,函数就像和数字、字符串一样,可以将函数传递给一个方法。我们可以对算法进行封装,然后将具体的动作传递给方法,这种特性很有用。 我们之前学习过List的map方法,它就可以接收一个函数,完成List的转换。 例子 示例说明 将一个整数列表中的每个元素转换为对应个数
阅读全文 »

#一 样例类 样例类是一种特殊类,它可以用来快速定义一个用于保存数据的类(类似于Java POJO类),而且它会自动生成apply方法,允许我们快速地创建样例类实例对象。后面,在并发编程和spark、flink这些框架也都会经常使用它。 1. 样例类可以使用**类名(参数1, 参数2…)**快速创建实例对象 2. 定义样例类成员变量时,可以指定var类型,表示可变。默认是不可变的 val 可省略 3. 样例类自动生成了toString、equals、hashCode、copy方法 4. 样例对象没有主构造器,可以使用样例对象来创建枚举、或者标识一类没有任何数据的消息 语法: 1
阅读全文 »

Scala 进阶 一 类与对象 scala是支持面向对象的,也有类和对象的概念。 创建类和对象 * 使用class关键字来定义类 * 使用var/val来定义成员变量 * 使用def来定义成员方法 * 使用new来创建一个实例对象 1. var name:String = _,_表示使用默认值进行初始化 例如:String类型默认值是null,Int类型默认值是0,Boolean类型默认值是false… 2. val变量不能使用_来进行初始化,因为val是不可变的,所以必须手动指定一个默认值 3. main方法必须要
阅读全文 »

Scala入门 一 什么是Scala ​ scala是运行在 JVM 上的多范式编程语言,同时支持面向对象和面向函数编程 (如java是面向对象的也是面向接口的,懂得自然懂) 早期,scala刚出现的时候,并没有怎么引起重视,随着Spark和Kafka这样基于scala的大数据框架 的兴起,scala逐步进入大数据开发者的眼帘。scala的主要优势是它的表达性。 1 使用场景: 开发大数据应用程序(Spark程序、Flink程序) 表达能力强,一行代码抵得上Java多行,开发速度快 兼容Java,可以访问庞大的Java类库,例如:操作mysql、redis、freemarker、activ
阅读全文 »

Hbase增强 一 Hbase与MapReduce的集成 HBase当中的数据最终都是存储在HDFS上面的,HBase天生的支持MR的操作,我们可以通过MR直接处理HBase当中的数据,并且MR可以将处理后的结果直接存储到HBase当中去 需求一 读取myuser这张表当中的数据写入到HBase的另外一张表当中去 1 创建myuser2 表 其中列簇名与myuser中列簇名一致 依赖: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
阅读全文 »

Hbase 一概述 hbase是bigtable的开源java版本。是建立在hdfs之上,提供高可靠性、高性能、列存储、可伸缩、实时读写nosql的数据库系统。 它介于nosql和RDBMS之间,仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务(可通过hive支持来实现多表join等复杂操作)。 主要用来存储结构化和半结构化的松散数据。 Hbase查询数据功能很简单,不支持join等复杂操作,不支持复杂的事务(行级的事务) Hbase中只支持的数据类型为:byte[] 与hadoop一样,Hbase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计
阅读全文 »