热爱分布式技术
日志分析 单机日志分析,适用于小数据量的。(最大10G),awk/grep/sort/join等都是日志分析的利器。 例子: 1、shell得到Nginx日志中访问量最高的前十个IP cat access.
代码 LogRecord 类: case class LogRecord ( clientIpAddress: String, rfc1413ClientIdentity: String, remoteUser: S...
分析日志的包 自己编译下: sbt compile sbt test sbt package ApacheLogParser.jar 对于访问日志简单分析grep等利器比较好,但是更复杂的查询就需要Spark了。
1.DDL(Data Definition Language)数据库定义语言statements are used to define the database structure or schema. DDL是SQL语言的四大功能之一。
/** Spark SQL源码分析系列文章*/ 前面讲到了Spark SQL In-Memory Columnar Storage的存储结构是基于列存储的。
/** Spark SQL源码分析系列文章*/ Spark SQL 可以将数据缓存到内存中,我们可以见到的通过调用cache table tableName即可将一张表缓存到内存中,来极大的提高查询效率。
/** Spark SQL源码分析系列文章*/ 在SQL的世界里,除了官方提供的常用的处理函数之外,一般都会提供可扩展的对外自定义函数接口,这已经成为一种事实的标准。
/** Spark SQL源码分析系列文章*/ 接上一篇文章Spark SQL Catalyst源码分析之Physical Plan,本文将介绍Physical Plan的toRDD的具体实现细节: 我们都知道一段sql,真正的执行是当你调用它的collect()方法才会执行Spark Job,最后计算得到RDD。
/** Spark SQL源码分析系列文章*/ 前面几篇文章主要介绍的是Spark sql包里的的spark sql执行流程,以及Catalyst包内的SqlParser,Analyzer和Optimizer,最后要介绍一下Catalyst里最后的一个Plan了,即Physical Plan。
/** Spark SQL源码分析系列文章*/ 前几篇文章介绍了Spark SQL的Catalyst的核心运行流程、SqlParser,和Analyzer 以及核心类库TreeNode,本文将详细讲解Spark SQL的Optimizer的优化思想以及Optimizer在Catalyst里的表现方式,并加上自己的实践,对Optimizer有一个直观的认识。
/** Spark SQL源码分析系列文章*/ 前几篇文章介绍了Spark SQL的Catalyst的核心运行流程、SqlParser,和Analyzer,本来打算直接写Optimizer的,但是发现忘记介绍TreeNode这个Catalyst的核心概念,介绍这个可以更好的理解Optimizer是如何对Analyzed Logical Plan进行优化的生成Optimized Logical Plan,本文就将TreeNode基本架构进行解释。
/** Spark SQL源码分析系列文章*/ 前面几篇文章讲解了Spark SQL的核心执行流程和Spark SQL的Catalyst框架的Sql Parser是怎样接受用户输入sql,经过解析生成Unresolved Logical Plan的。
/** Spark SQL源码分析系列文章*/ Spark SQL的核心执行流程我们已经分析完毕,可以参见Spark SQL核心执行流程,下面我们来分析执行流程中各个核心组件的工作职责。
/** Spark SQL源码分析系列文章*/ 自从去年Spark Submit 2013 Michael Armbrust分享了他的Catalyst,到至今1年多了,Spark SQL的贡献者从几人到了几十人,而且发展速度异常迅猛,究其原因,个人认为有以下2点: 1、整合:将SQL类型的查询语言整合到 Spark 的核心RDD概念里。
任务 广告点击的在线黑名单过滤 使用 nc -lk 9999 在数据发送端口输入若干数据,比如: 1375864674543 Tom 1375864674553 Spy 1375864674571 Andy 1375864688436 Cheater ...
功能: cacheing和checkpointing这2种操作是都是用来防止rdd(弹性分布式数据集)每次被引用时被重复计算带来的时间和空间上不必要的损失。 区别: Caching cache 机制保证了需要访问重复数据的应用(如迭代型算法和交互式应用)可以运行的更快。
机器学习在商业系统应该是用的最多了,和传统人工区分开,因为数据集量级太大和复杂度太高,机器可以发现人难以发现的模型,基于模型的方式处理可以避免人的情感偏见。人工也是不可以完全抛开的,比如监督式的学习,靠人工;来标记数据,训练模型。
任务 一个在线商品购买记录数据集,约40M,格式如下: Jack,iphone cover,9,99 Jack,iphone cover,9,99 Jack,iphone cover,9,99 Jack,iphone cover,9,99 完成统计: 1.
English The RDD API By Example aggregate The aggregate function allows the user to apply two different reduce functions to the RDD.
SparkSql 允许spark执行sql语句,hivesql,scala的描述的基于关系的查询。其实是封装了新的RDD-SchemaRDD,由行对象组成,有一个模式描述每列的数据类型。
elk+redis 搭建nginx日志分析平台 logstash,elasticsearch,kibana 怎么进行nginx的日志分析呢?首先,架构方面,nginx是有日志文件的,它的每个请求的状态等都有日志文件进行记录。
elk是指logstash,elasticsearch,kibana三件套,这三件套可以组成日志分析和监控工具 注意:关于安装文档,网络上有很多,可以参考,不可以全信,而且三件套各自的版本很多,差别也不一样,需要版本匹配上才能使用。
环境 win 7 jdk 1.7.0_79 (Oracle Corporation) scala version 2.10.5 spark 1.
官网介绍 Apache Zeppelin提供了web版的类似ipython的notebook,用于做数据分析和可视化。背后可以接入不同的数据处理引擎,包括Spark, hive, tajo等,原生支持scala, Java, shell, markdown等。
问题 spark的计算模型是如何做到并行的呢?如果你有一箱香蕉,让三个人拿回家吃完,如果不拆箱子就会很麻烦对吧,哈哈,一个箱子嘛,当然只有一个人才能抱走了。这时候智商正常的人都知道要把箱子打开,倒出来香蕉,分别拿三个小箱子重新装起来,然后,各自抱回家去啃吧。
假如你想创建一个机器学习模型,但却发现你的输入数据集与你的计算机内存不相符?对于多机器的计算集群环境中通常可以使用如Hadoop和Apache Spark分布式计算工具。
概念 关联 初始化streamingcontext 离散流 输入dstream dstream的转化 dstream的输出操作 缓存或者持久化 checkpointing 部署应用程序 监控应用程序 性能调优 减少批...
一般情况下,当一个 传递给 Spark 操作 ( 例如 map 和 reduce) 的函数在 远 程 节 点上面 运 行 时 ,Spark 操作 实际 上操作的是 这 个函数所用 变 量的一个独立副本。
Spark 最重要的一个功能是它可以通 过 各种操作( operations )持久化(或者 缓 存)一个集合到内存中。当你持久化一个 RDD 的 时 候,每一个 节 点都将参与 计 算的所有分区数据存 储 到内存中,并且 这 些 数据可以被 这 个集合(以及 这 个集合衍生的其他集合)的 动 作( action )重复利用。
接着上篇博客的rdd的transformation有这么多常用的API: 另一个action也有很多API:
快速上手 Spark 的交互式 shell( 用 Python 或Scala) 介 绍 它的 API 。当演示如何在 Java, Scala 和 Python 写独立的程序 时 ,看 编 程指南里完整的参考。
通常情况下,函数的参数是传值参数;即参数的值在它被传递给函数之前被确定。但是,如果我们需要编写一个接收参数不希望马上计算,直到调用函数内的表达式才进行真正的计算的函数。
1. 在windows下搭建 Spark源码阅读环境的准备 Spark源码是有Scala语言写成的,目前,IDEA对Scala的支持要比eclipse要好,大多数人会选在在IDEA上完成Spark平台应用的开发。
开发环境 Intellij idea 14 jdk: 1.7.71 spark: 1.1.0 hadoop: 2.4.0 scala: 2.11.1 maven: 3.
Case: 输入:文本文件 输出: (158,) (28,the) (19,to) (18,Spark) (17,and) (11,Hadoop) (10,##) (8,you) (8,with) (8,for) 算法: 首先实现wordcount,topk实现是以wordcount为基础,在分词统计完成后交换key/value,然后调用sortByKey进行排序。
1. 概述 本文是对spark1.6.0分布式集群的安装的一个详细说明,旨在帮助相关人员按照本说明能够快速搭建并使用spark集群。 2.
Boofcv研究:感兴趣区域检测技术 public class InterestPoint { public static void detect( BufferedImage image , Class imageType ) { T input = ConvertBufferedImage.
Boofcv研究:直线目标检测 public class LineDetection { private static final float edgeThreshold = 25; private static final int m...
Boofcv研究:动态目标追踪 public class RemovalMoving { public static void main(String[] args) { String fileName = UtilIO.
准备 wget http://mirror.bit.edu.cn/apahce/hive/hive-0.11.0/hive-0.11.0-bin.tar.gz tar -zxvf hive-0.
技术 Spark+中文分词 算法 对爬取的网站文章的关键词进行统计,是进行主题分类,判断相似性的一个基础步骤。例如,一篇文章大量出现“风景”和“酒店”之类的词语,那么这篇文章归类为“旅游”类的概率就比较大。
编程技巧 java C++ C++ 比如在判断两个浮点数 a 和 b 是否相等时,不要用 a==b,应该判断二者之差的绝对值 fabs(a-b) 是否小于某个阈值,例如 1e-9。
源码: https://github.com/jinhang/my-RPC-Framwork.git 赛题要求: 一个简单的RPC框架 RPC(Remote Procedure Call )——远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
KeeCMS https://github.com/jinhang 重构OSChia上的是说项目成maven版keeCMS(学习目的) [框架CMS] Java语言开发的CMS Spring MVC为表现层,Spring为业务层,MyBatis为数据层 前台: http://localhost:8080/index.
Frontend HTML rendering (Freemarker) JSON rendering / parsing (Jackson) XML rendering / parsing (Jackson) Stateful res...
use Ninja frame create your first application. Ninja 是依赖于maven的项目,开始要先安装配置maven,下载mavend的bin,在apache官方网站可以下载. 下载下来之后,解压,找个路径放进去, 把bin的位置设在环境变量里,新建环境变量MAVEN_HOME:在PATH里加入maven的bin的路径 由于Maven依赖Java运行环境,因此使用Maven之前需要配置Java的运行环境。
_______ .___ _______ ____. _____ \ \ | |\ \ | | / _ \ / | \| |/ | \ | ...
STL模版库非常强调软件的复用,traits技术是采用的重要手段。traits提取不同类的共性,以便能统一处理。traits技术依靠显示模版特殊化来把代码中因类型不同而发生变化的片段拖出来,用统一的接口来包装。
deque函数: deque容器为一个给定类型的元素进行线性处理,像向量一样,它能够快速地随机访问任一个元素,并且能够高效地插入和删除容器的尾部元素。但它又与vector不同,deque支持高效插入和删除容器的头部元素,因此也叫做双端队列。
list容器介绍 相对于vector容器的连续线性空间,list是一个双向链表,它有一个重要性质:插入操作和删除操作都不会造成原有的list迭代器失效,每次插入或删除一个元素就配置或释放一个元素空间。