Ink's Blog

Less is more

使用 AWS Kinesis 收集流数据

AWS Kinesis Producer

Kinesis 是 AWS 的一项用于收集实时流数据的云服务,类似于 Kafka。Kinesis 收集到的数据可以用于多个方面,例如存到 S3,发到 EMR 作进一步数据分析等等。 Kinesis 的整体架构如下: Kinesis 的基本术语Kinesis Data StreamKinesis Data Stream 实时吸收大量数据、持久存储数据并使这些数据可供使用。其由多个分片组成,每......

Spark client mode 和 cluster mode 的区别

Distinguish Client mode & Cluster mode of Spark

在使用spark-submit提交Spark任务一般有以下参数: ./bin/spark-submit \ --class <main-class> \ --master <master-url> \ --deploy-mode <deploy-mode> \ --conf <key>=<value> \ ... # ot......

Scala 的 Case Classes 和 Pattern Matching

Case Classes and Pattern Matching

本文将讲解 Scala 中无处不在的 case class 和 pattern matching,为什么要放在一起讲呢,因为 case class 一般就是和模式匹配一起使用,习惯了用这套组合拳以后就再也不想写 Java 代码了,use less code to show more! Case Classcase class 是指在 class 前面加上 case 关键字,下面是一个例子......

Scala Implicit 详解

The Details of Scala Implicit

Implicit 是 Scala 中一个很重要的特性,开始学习 Scala 之前一直以为它和 Java 差不多,然而真的看一些 Scala 的源码时却发现并没有想象中那么简单,所以准备写几篇文章来详解 Scala 中异于 Java 的特性,就从 Implicit 开始吧。 在我看来,Implicit 做的事情也是 Scala 主要做的事情,那就是代码压缩,减少模块代码,talk is c......

Scala Composition and Inheritance

Notes of Programming in Scala

parameterless methods && empty parenthesesparameterless methods def width: Int empty parentheses def width(): Int However, it’s still recommended to write the empty parentheses when the inv......

SparkStreaming + Flume + Kafka 进行实时日志分析

Process with SparkStreaming, Flume and Kafka

每个公司想要进行数据分析或数据挖掘,收集日志、ETL都是第一步的,今天就讲一下如何实时地(准实时,每分钟分析一次)收集日志,处理日志,把处理后的记录存入Hive中,并附上完整实战代码 整体架构思考一下,正常情况下我们会如何收集并分析日志呢? 首先,业务日志会通过Nginx(或者其他方式,我们是使用Nginx写入日志)每分钟写入到磁盘中,现在我们想要使用Spark分析日志,就需要先将磁盘中......

数据仓库的架构与设计

Data Warehouse Architecture and Design

公司之前的数据都是直接传到Hdfs上进行操作,没有一个数据仓库,趁着最近空出几台服务器,搭了个简陋的数据仓库,这里记录一下数据仓库的一些知识。 什么是数据仓库数据仓库的概念官方定义 数据仓库是一个面向主题的、集成的、随时间变化的、但信息本身相对稳定的数据集合,用于对管理决策过程的支持。 这个定义的确官方,但是却指出了数据仓库的四个特点。 特点 面向主题:数据仓库都是基于某个明确主题,仅......

关于 web.xml 中 Spring 配置文件的启动顺序

但凡搞 JavaWeb 开发的对 web.xml 应该是非常熟悉了,但是你真的了解其中的配置吗,这里我们讲一下 Spring 相关配置启动的先后顺序。 在web.xml中定义的Spring的配置文件一般有两个: 1、Spring上下文环境的配置文件:applicationContext.xml <context-param> <param-name>context......

Spring 事务管理

超级干货讲解 + 实战演练

写这篇博客之前我首先读了《Spring in action》,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下: Spring事务机制详解Spring事务配置的五种方式Spring中的事务管理实例详解 初步理解理解事务之前,先讲一个你日常生活中最常干的事:取钱。 比如你去ATM机取1000块钱,大体有两个步骤:首......

Spring AOP(三)

通过 @AspectJ 注解切面

在Spring AOP(二)中给出了在XML中配置切面的方法,本节学习通过@AspectJ来注解切面。 使用的例子仍然是Spring AOP(二)中的例子,前面讲的已经很详细了,具体原理不再说明,直接上代码 注解切面XML配置 <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springfra......