Ink's Blog

Less Is More

使用 AWS Kinesis 收集流数据

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

Spark client mode 和 cluster mode 的区别

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

Scala 的 Case Classes 和 Pattern Matching

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

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 1def width: Int empty parentheses 1def width(): Int However, it’s still recommended to write the empty parentheses when the i......

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

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

数据仓库的架构与设计

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

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

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

一个普通程序员的中国梦

I have a dream

哈哈,题目有点大,如果我说并不是为了博眼球应该也没人相信。但是成为程序员也快要一年了,心中有很多感慨,也推翻了自己以前的很多看法,所以这里想结合自身谈谈对程序员这个职业的一些看法。 本人15年毕业于北京某211,专业是信息与计算科学。这个专业是调剂过去的,当时看了以为是学计算机的,想一想计算机也不错,以后可以当个黑客盗个qq号什么也不错。结果去了以后才发现学的都是数学,我各个学科中数学是最差......

Java 多线程基础

接触Java有大半年了,一直听说掌握多线程才是真正的Java程序员,由于项目中没有太多并发的东西,所以一直都没有机会接触。最近趁着项目不太忙决定学习一下,我脑袋很笨所以一上来就学习很难的东西会有点吃不消,本文总结了多线程中非常基础的知识,都是一些很简单的栗子,对于高手来说现在就可以右上角了,后续会继续学习,争取早日能结合项目理解多线程吧。 进程和线程的概念简单地说,进程就是一次程序执行,......