- 博客(45)
- 收藏
- 关注
原创 hive调优篇一
0.概述Hive的一般学习者谈性能调优的时候一般都会从语法和参数的角度来谈优化,而不会革命性的优化Hive的性能。Hive的核心性能问题往往是在超大规模数据集,例如100亿条级别的数据集,以及每天处理上千上万个Hive作业的情况下产生的。要从根本上解决实际企业中Hive真正的性能优化问题,必须考虑到底什么是Hive性能的限制,按照级别来说: 第一重要的是:战略性架构 解决海量数据大
2016-12-17 00:19:51
617
原创 Redis的介绍及安装配置
1.Redis简介Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis 与其他 key - value 缓存产品有以下三个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。Redis支持数据
2016-11-10 14:20:46
7523
原创 Spark源码编译
编译前Spark源码编译可以参考官方文档:http://spark.apache.org/docs/latest/building-spark.html 里面讲了用maven还有SBT编译的方法。 编译前要先下载源码,两种方式:直接到官网下载源码官网:http://spark.apache.org/downloads.html如图如示 使用git下载源码下载地址:https://gith
2016-11-04 00:58:13
510
原创 Spark程序监控
4040端口可以在浏览器中打开http://:4040网址,网址显示的信息: 任务和调度状态的列表 RDD大小和内存使用的统计信息 正在运行的executor的信息 环境信息 如果在同一台机器上有多个SparkContext正在运行,那么他们的端口从4040开始依次增加(4041,4042等)。在应用程序运行期间,你可以在这个Web页面获得Spark实时监控信息,如果希望在程序运行完以后查
2016-11-03 11:14:40
7023
原创 Spark SQL电影分析案例
用Spark SQL分析热门电影的TopN1.数据结构数据可以在此下载 https://pan.baidu.com/s/1eSNt6E2#list/path=%2FshareData 文件夹中包含三个数据文件,一个说明文件 数据结构如下users.dat 5220::M::25::7::91436 5221::F::56::1::96734 5222::M::25::12::9450
2016-11-02 13:38:08
3039
2
原创 Spark 中的Tungsten和Catalyst
spark内核的三大核心:基于RDD的调度系统、Tungsten和Catalyst解析优化引擎TungstenTungsten面对: Memory , CPU, Disk IO 和 NetWork IOspark 1.6是第一阶段面对Memory, spark 2.0的时候面对的是CPU磁盘IO和网络IO主要发生在Shuffle阶段,Shuffle有Hash, Sort, Tungsten。默认是S
2016-10-31 10:43:27
3834
原创 Spark SQL介绍
spark SQL会成为spark的未来,spark以后的框架、其他的框架都会架构在spark SQL的基础之上!1.大数据为什么要使用 SQL与我们已有的BI等数据分析系统集成在一块多数人都会SQL而且习惯了用SQL做数据分析开发速度快2.大数据为什么要使用 spark SQL与直接基于RDD编程,写 spark SQL代码更少,编写更快,更容易修改和理解相比于直接进行RDD编程而言
2016-10-30 20:18:42
507
原创 Spark广告点击项目技术骨架二
上节安装了flume, 下面要安装kafka, 安装kafka之前要安装zookeeper.zookeeper安装下载zookeeper-3.4.5后解压,我放到/usr/soft目录下修改/etc/environmentZOOKEEPER_HOME=/usr/soft/zookeeper-3.4.5PATH=”…:/usr/soft/zookeeper-3.4.5/bin:…”source
2016-09-26 00:06:46
529
原创 Spark广告点击项目技术骨架一
技术选用用到的技术有:flume, kafka, spark.这里面其实存在生产者,消费者的关系。如下图:用户在一个网站中产生的行为就是生产者, 被服务器采集到,服务器是一个消费者,服务器保存的数据再被flume消费,这时服务器既是生产者又是消息者,组件间就是这样的生产者消费者关系链。技术搭建flume的搭建 a. 官网下载 apache-flume-1.6.0-bin.tar.gz b
2016-09-24 16:09:47
689
原创 Spark流处理项目介绍
项目介绍像打开京东网站,网站会记录用户的行为,然后对行为进行分析,以便做出像推荐系统一样的功能。流程:用户广告点击行为(通过JS或者本地代码发送点击行为到服务器)-》Server接受到数据并把数据放在Flume的监控目录之下-》Flume感知到数据后会把数据放到Kafka中-》Spark Streaming感知到数据的到来并进行处理-》然后把流处理的结果交给例如HBase、Redis、MaySQL
2016-09-22 21:59:35
434
原创 Spark流处理项目介绍
项目介绍像打开京东网站,网站会记录用户的行为,然后对行为进行分析,以便做出像推荐系统一样的功能。流程:用户广告点击行为(通过JS或者本地代码发送点击行为到服务器)-》Server接受到数据并把数据放在Flume的监控目录之下-》Flume感知到数据后会把数据放到Kafka中-》Spark Streaming感知到数据的到来并进行处理-》然后把流处理的结果交给例如HBase、Redis、MaySQL
2016-09-22 21:58:00
501
原创 Spark2.0 Structured Streaming
Spark Streaming的流处理基于时间间隔的批处理 这个世界上所有事情是有时间主宰的 Structured Streaming预计在Spark 2.3的时候成熟认识Structured Streaming以前输入输出是Input Output,现在是Input Table 和 Output Table。 看名字就知道多出了一个表, 可以理解为输入的数据不直接用于计算而是先放到一个表
2016-09-21 22:27:42
1419
原创 Spark项目
大数据项目流程第一步:需求:数据的输入和数据的产出,大数据技术项目好比一台榨汁机,数据输入相当于例如苹果、柠檬等,然后通过榨汁机产出果汁;第二步:数据量、处理效率、可靠性、维护性、简洁性第三步:数据建模第四步:架构设计:数据怎么进来,输出怎么展示,最最重要的是处理流出的架构;第五步:我会再次思考大数据系统和企业IT系统的交互;第六步:最终确定的技术(例如Spark、Kafka、Flume、HBas
2016-09-20 21:30:25
679
原创 Spark 2.0内幕深度解密
Spark 2.0更新要点 1. 支持 sql 2003,支持子查询 2. DataFrame是DataSet中的一种特例,val dataFrame = DataSet[Row] SQL是没类型的,DataFrame是弱类型的,DataSet是强类型的, 所以如果使用DataSet的话在2.0是不可以用python来写代码的! 3. 第二代钨丝计划:添加了whole sta
2016-09-18 21:27:41
857
原创 投大数据简历的原则以及在哪些地方投简历最有效?
1.投递简历的原则是什么?两个字,不挑!不挑公司,只要是做大数据的公司都可以投,投上一百家如果有三十家公司面试你,肯定有一家要你!为什么?因为面试有经验了知道哪里会问,不知道的可以回去再学。公司去中小公司会比较好。2.从哪些地方投递简历最有效1. 拉勾网2. 猎聘网3. BOSS直聘4. 智联招聘5. 前程无忧6. 51JOB 3.意向职位 ##做Spark当然想投Spark的职
2016-09-16 14:16:28
2524
原创 工厂方法 Factory Method
1.工厂方法 定义一个用于创建对象的接口,让子类决定实例化哪一个类。 工厂方法使一个类的实例化延迟到其子类。 工厂方法把简单工厂的内部逻辑判断移到了客户端代码来进行。 你想要加功能,本来是改工厂类的,现在是修改客户端!2.结构图3.代码package com.hlf.designPatterns.FactoryMethod;/** * 学雷锋,做好事 * Crea
2016-08-24 19:36:43
305
原创 简单工厂 Simple Factory Pattern
1.简单工厂简单工厂模式(Simple Factory Pattern),又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式分离产品的创建者和消费者,有利于软件系统结构的优化;但是由于一切逻辑都集中在一个工厂类中,导致了没有很高的内聚性,同时也违背了“开放封闭原则”。另外,简单
2016-08-24 14:54:42
466
原创 代理模式 Proxy
1.代理模式代理模式就是多一个代理类出来,替原对象进行一些操作,比如我们在租房子的时候回去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮你做,此处的代理就是这个意思。再如我们有的时候打官司,我们需要请律师,因为律师在法律方面有专长,可以替我们进行操作,表达我们的想法。代理模式的应用场景:如果已有的方法在使用的时候需要对原有的方法进行改进,此时有两种办法:1、修改原
2016-08-23 23:10:40
338
原创 装饰模式 Decorator
1.装饰模式装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例.该模式中,要被扩展的类可以是包含抽象方法的抽象类,也可以是包含虚方法的实例类,也可以是普通实例类。装饰模式就是在原有基类上做扩展,至于基类是什么性质并不重要.装饰器模式的应用场景:1、需要扩展一个类的功能。2、动态的为一个对象增加功能,而且还能动态撤销。(
2016-08-23 12:05:55
325
原创 Scala进阶之隐式转换作用域等问题
隐式转换作用域关于隐式转换查找的顺序问题: 1. 简单查找class Implicits { implicit val content = "Java Hadoop"}object Implicits { implicit val content = "Scala Spark" }object ImplicitsAdvanced { def main(args: Array[
2016-08-20 13:24:21
1509
原创 Scala进阶之App特质
App特质的作用App特质的作用那就是延迟初始化,从代码上看它继承自DelayedInit,里面有个delayedInit方法trait App extends DelayedInit DelayedInit特质里定义了延迟初始化方法:def delayedInit(x: => Unit): Unit用户可以直接在初始化块里写逻辑,然后编译器会把这段初始化代码块里的逻辑封装成一个函数对象
2016-08-19 12:43:16
3343
原创 Scala进阶之核心力量和黄金定律
蘑菇云课堂内容Scala的核心力量是什么? 基于自上而下和自下而上的软件设计和编程实践的基础之上结合数据状态不可变性并且融合了类型系统和隐式转换技巧的函数式编程说明1 自下而上和自上而下的编程方法完美结合 自上而下(对象):面向对象编程,把软件系统作为一个个对象,具体的功能由对象本身以及对象之间的消息传递来完成 自下而上(动作):函数式编程,强调功能的具体实现两者结合,非常强有力的
2016-08-18 15:07:30
617
原创 Scala特质的混入顺序
代码测试package com.hlf.scala.basic/** * 测试多个特质中有同一个方法,混入顺序的不同最终调用的结果 * 结果显示: * 如果混入的特质是子父类型的话,调用的是子的方法 * 如果混入的特质最终父类是同一个的话,调用的是最右边的方法 * Created by hlf on 2016/8/18. */object TestTraitOrder {
2016-08-18 13:14:33
1292
原创 Scala入门之正则表达式
正则表达式Scala支持通过Regex类的scala.util.matching封装正则表达式。创建一个字符串,并调用r()方法如 val pattern = "Scala".r Scala中字符串隐式转换为一个RichString并调用该方法来获得正则表达式的一个实例。代码实战package com.dt.scala.moguyunimport scala.util.matching.Re
2016-08-15 19:04:06
517
原创 Scala入门之提取器
提取器这知识感觉多数跟case class配合使用,但是在与case class配合使用时就算不知道后面的工作机制也没什么关系,会用就行。其实有必要的话可以自己写提取器,而什么时候用提取器,怎么提高数据传输效率才是难点 :(直接上代码,加上个人理解package com.dt.scala.moguyun/** * 提取器 * unapply * 看两点: * 1 类有没有unap
2016-08-13 22:17:50
299
原创 Scala入门之外部命令
外部命令 在Java中我们可以使用Runtime.getRuntime().exec();来和系统交互。 在Scala中scala.sys.process提供了shell和系统交互的DSL,包括执行命令、逻辑操作、重定向、管道等操作。 使用!来执行外部命令,如 "ping www.baidu.com" !外部命令感觉用得不多,暂时做下了解。使用逻辑操作#&&,#|| cmd1
2016-08-13 22:09:51
660
原创 Scala入门之部分应用函数与偏函数
1.部分应用函数部分应用函数(Partial Applied Function)是指缺少部分参数的函数.package com.dt.scala.moguyun/** * 部分应用函数 * Created by Administrator on 2016/8/10. */object PartialAppliedFunctionLearn { def main(args: Arr
2016-08-10 13:43:41
2622
原创 Scala入门之包与继承
1.包 Scala中的包与java有着诸多的相似之处,但Scala语言中的包更加灵活,实际开发的时候还是尽量使用java包的定义方式并将代码集中进行管理,这样别人读代码的时候更方便,代码更简洁。包的使用有以下几点: 1.外层包无法直接访问内层包,如果一定要使用的话,可以引入包, 内层包可以访问外层包中定义的类或对象,无需引入 2.scala允许在任何地方进行包的引入,_
2016-08-09 22:04:51
308
原创 Scala入门之高级类型:结构类型
结构类型结构类型(Struture Type)通过利用反射机制为静态语言添加动态特性,从面使得参数类型不受限于某个已命名的的类型.直接看代码,更理解理解package com.dt.scala.moguyun/** * Created by hlf on 2016/8/9. * 结构体类型其实可以看作是一个类,在函数调用时, * 直接通过new操作来创建一个结构体类型对象,当然它是匿名
2016-08-09 17:38:36
1355
原创 Scala入门之高级类型:类型投影
类型投影类型投影的目的是将外部类Outter中定义的方法def print(i:Inner)=i,它可以接受做任意外部类对象中的Inner类。格式是 Outter#Inner直接看代码更容易理解package com.dt.scala.moguyun/** * Created by hlf on 2016/8/9 for learn TypeProjection. * 类型投影主要用在有
2016-08-09 16:30:46
1119
原创 Scala入门之高级类型:this.type
this.type在写Spark程序的代码中一开始就能看到这代码: val conf = new SparkConf conf.setAppName("OnlineBlackListFilter").setMaster("local")上面 setAppName、setMaster返回的就是SparkConf,所以才能继续使用SparkConf的方法点出方法来。而要做到这一点的
2016-08-09 15:24:10
3627
原创 Scala入门之Actor
蘑菇云代码由于Spark使用的是Netty做通信,所以这块做了解就行,故不深入。package com.dtspark.scala.basicsimport scala.actors.Actorobject HelloActor { def main(args: Array[String]): Unit = { val helloActor = new HelloActor h
2016-08-07 23:18:36
307
2
原创 Scala入门之隐式转换与隐式参数
1.隐式转换 隐式转换是一项强大的程序语言功能,它不仅能够简化程序设计,也能够使程序具有很强的灵活性。隐式函数的名称对结构没有影响.函数可以是任何名字,只看参数与返回,也就是看能不能传入的参数是不是能变成需要的类型就行了。 隐式转换可以定义在目标文件当中,即隐式转换函数与目标代码在同一个文件当中,也可以将隐式转换集中放置在某个包中,在使用进直接将该包引入即可,后者更常见。 隐式
2016-08-07 23:11:00
610
4
原创 Scala入门之类型参数
1.泛型泛型用于指定方法或类可以接受任意类型参数,参数在实际使用时才被确定,泛型可以有效地增强程序的适用性,使用泛型可以使得类或方法具有更强的通用性。在Scala中用方括号来定义类型参数,即用[]表示,如 class Pair[T, S](val first, val) 以上将定义一个带有两个类型参数T和S的类,带有类型参数的类是泛型的。如果把类型参数替换成实际的类型将得到普通的类。简单理解
2016-08-07 22:37:07
505
3
原创 Scala入门之Map、Tuple
蘑菇云代码package com.dtspark.scala.basics/** * 1,默认情况下Map构造的是不可变的集合,里面的内容不可修改,一旦修改就变成新的Map,原有的Map内容保持不变; * 2,Map的实例是调用工厂方法模式apply来构造Map实例,而需要主要的是Map是接口,在apply中使用了具体的实现; * 3,如果想直接new出Map实例,则需要使用HashMap等
2016-08-07 00:08:06
313
原创 Scala入门之Array
蘑菇云代码package com.dtspark.scala.basics/** * 大数据技术是数据的集合以及对数据集合的操作技术的统称,具体来说: * 1,数据集合:会涉及数据的搜集、存储等,搜集会有很多技术,存储现在比较经典的是使用Hadoop,也有很多情况使用Kafka; * 2,对数据集合的操作技术:目前全球最火爆的是Spark; * * Spark的框架实现语言是Scala
2016-08-07 00:06:09
415
原创 Scala入门之OOP
蘑菇云代码package com.dtspark.scala.basics/** * 1,在Scala中定义类是用class关键字; * 2,可以使用new ClassName的方式构建出类的对象; * 3, 如果名称相同,则object中的内容都是class的静态内容,也就是说object中的内容class都可以在没有实例的时候直接去调用; * 正是因为可以在没有类的实例的时候去
2016-08-06 23:59:34
389
原创 Scala入门之控制结构
蘑菇云课堂代码package com.dtspark.scala.basics/** * Scala中的基本控制结构有顺序、条件和循环三种方式,这个其它的JVM语言是一致的,但是Scala也有一些高级的流程控制结构类模式匹配; * 在这里我们主要if、for、while等三种控制结构及其企业级最佳实践,并且在最后用Spark源码说明 * */object ControlStructure
2016-08-06 23:50:43
369
原创 Scala入门HelloScala
蘑菇云课堂代码package com.dtspark.scala.basics/** * object作为Scala中的一个关键字,相当于Java中的public static class这样的一个修饰符,也就说object中的成员都是静态的! * 所以我们在这个例子中的main方法是静态的,不需要类的实例就可以直接被虚拟机调用,而这正是作为JVM平台上程序入口的必备 * 条件; * 疑问
2016-08-06 23:43:40
407
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人