自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Spring , Hadoop, Spark , BI , ML

Later equals never.

  • 博客(46)
  • 资源 (2)
  • 收藏
  • 关注

原创 Hive之数据查询

Hive为大规模的数据分析提供了一种类SQL的查询语言,在数据仓库中是一种很常见的工具。1. 排序和聚合排序使用常规的ORDER BY来完成,Hive在处理ORDER BY请求时,并行排序,最终产生一个全局排序结果。如果全局有序不是必须的,那么可以使用Hive的非标准扩展SORT BY,它返回的是一个局部有序的结果,每个Reducer内部有序,每个Reducer产生一个有序的文件。有时候我们想控制数

2016-07-31 02:11:29 5375 2

原创 理解Hive表(Hive Table)

Hive表逻辑上有表的数据和相关的元数据组成。元数据描述表的结构,索引等信息。数据通常存放在HDFS中,虽然任意的Hadoop文件系统都能支持,例如Amazon的S3或者而本地文件系统。元数据则存在关系型数据库中,嵌入式的默认使用Derby,MySQL是一种很常用的方案。许多关系型数据库都提供了命名空间的概念,用于划分不同的数据库或者Schema。例如MySQL支持的Database概念,Postg

2016-07-31 00:22:19 21815 4

原创 Hive与传统的数据库

1. Hive vs. 传统的数据库Hive与传统的关系型数据库有很多类似的地方,例如对SQL的支持。但是其基于HDFS与MapReduce的事实使得它与传统的数据库在很多方面有很大的不同,在一些特性的支持下也受到底层架构的限制,但是这些限制随着版本迭代正在不断被消除,使得Hive看起来越来越像传统的数据库。1.1 Schema on Read vs. Schema on Write在传统的数据库中

2016-07-30 21:13:07 2369

原创 Hive数据类型

1. Hive数据类型Hive支持原始数据类型和复杂类型,原始类型包括数值型,Boolean,字符串,时间戳。复杂类型包括数组,map,struct。下面是Hive数据类型的一个总结: 分类 类型 描述 字面量示例 原始类型 BOOLEAN true/false TRUE TINYINT 1字节的有符号整数 -128~127 1Y SMALL

2016-07-30 21:06:57 53146 3

原创 Hive自定义函数-UDF

当Hive内置的函数无法满足需要时,可以自定义函数。Hive允许我们在查询中轻易地使用自定义的函数。UDF必须使用Java语言,如果想要其他语言来实现,可以考虑SELECT TRANSFORM查询,它允许Hive与自定义的脚本通过Steam进行交互,类似MapReduce Streaming和Pig Stream。Hive中有3中类型的自定义函数:通常的UDF、UDAF(user-defined a

2016-07-30 20:55:40 4135

原创 Hive:环境搭建及例子

Hive是由Facebook最初开发的基于Hadoop的数据仓库工具,提供了类SQL的查询语言Hive SQL(HQL)。在内部,Hive将用户的SQL语句转化为一系列的MapReduce作业,并提交到集群中运行。在Hive中,数据通过表来组织,提供了一种将表结构附加(attaching)到HDFS中的数据的一种方式。诸如表的Schema等元数据存放在一个称为metastore的数据库中。默认情况下

2016-07-30 02:26:44 4064

原创 Sqoop: 环境搭建、实例及概念

简介Sqoop是一个用于在外部结构化数据与Hadoop之间导入导出数据的工具。 Apache Sqoop is a tool designed for efficiently transferring bulk data between Apache Hadoop and structured datastores such as relational databases.Sqoop:是一个

2016-07-30 00:12:11 4865

原创 使用Spark和Pig统计每秒钟微博数量

手头有一个新浪微博的数据集,大概在1亿条左右。用Pig和Spark写了几行代码,基于400w条微博,统计了每秒钟发了多少条微博。 Life is too short , show me the code.将数据从本地拷到HDFS上:hadoop fs -copyFromLocal /home/data/weibo/201605/weibo_freshdata.2016-05-01 /input

2016-07-28 00:02:36 2540

原创 Apache Pig:干货长文带你完全入门

本文内容来自Hadoop权威指南,个人阅读的时候顺带整理翻译而来,并加入了自己的理解以及实际运行的配置。涵盖了Pig的核心内容,非常值得细度。版本记录:2016-07 初稿1. 环境配置:wget http://mirror.bit.edu.cn/apache/pig/pig-0.15.0/pig-0.15.0.tar.gztar zxvf pig-0.15.0.tar.gzmv ./pig-

2016-07-27 21:33:40 8117 1

原创 Spark RDD

RDD最初是由伯克利大学的几个教授提出的,原始论文Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing可以在这里下载,非常值得认真研究。RDD(Resilient Distributed DataSet)是Spark最核心的抽象。它代表的是元素的集合,Spark的文档中

2016-07-26 19:49:22 2066

原创 Spark核心概念理解

本来主要内容来自己《Hadoop权威指南》英文版中的Spark章节,可以说是个人的翻译版本,涵盖了主要的Spark概念。安装Spark首先从spark官网下载稳定的二进制分发版本,注意与你安装的Hadoop版本相匹配:wget http://archive.apache.org/dist/spark/spark-1.6.0/spark-1.6.0-bin-hadoop2.6.tgz解压:tar xz

2016-07-26 00:30:37 7037 1

原创 Avro:使用Avro MapReduce进行排序

在MapReduce作业中,框架保证Reducer收到的key是有序的。利用这一点,我们可以对Avro文件进行排序。假设我们有如下的Schema:{"namespace": "me.lin.avro.mapreduce", "type": "record", "name": "User", "fields": [ {"name": "name", "type": "string"},

2016-07-24 15:04:49 2151

原创 Avro:MapReduce应用

Apache Avro框架提供:丰富的数据类型(原始类型和复杂类型)紧凑、快速的二进制文件格式(.avro)一种容器文件,用于存储avro数据RPC容易与动态语言集成,无需生成代码。代码生成作为一种优化,只有在静态语言中使用才有价值。下面是一个Avro MapReduce的实例,MapReduce作业统计Avro文件中的数据。Avro文件中的对象Schema如下:{"namespace"

2016-07-24 13:04:49 1947

原创 Avro:RPC例子

Apache Avro除了提供一种数据序列化机制以外,还提供了一套RPC机制。本文基于Avro协议,实现一个Java语言编写的RPC Server,以及一个Python语言编写的客户端。定义一个RPC协议Acro的RPC协议也是使用JSON来定义,通常以.avpr结尾。这个例子中我们实现一个简单的邮件发送服务,该服务定义如下:{ "namespace": "me.lin.avro.rpc",

2016-07-24 00:33:43 2110 1

原创 Avro:入门例子

Avro是由Hadoop创始人Doug Cutting创建的一种语言无关的数据序列化和RPC框架,用于解决Hadoop中Writable序列化机制的缺点:缺少跨语言特性,与Java绑的太紧,数据格式很难被JVM外的语言进行处理。本文使用Specific API和Generic API来展示Avro的序列化和反序列化。创建Maven项目pom文件如下:<project xmlns="http://ma

2016-07-23 22:35:54 6194

原创 [干货] Flume综述与实例

Flume是一个分布式的、可靠的数据收集、集合和移动的组件。基于流式数据模型,非常健壮、支持容错、故障转移等特性。本用实例辅助说明Flume的大部分核心概念。 安装FLumeFlume的安装非常简单,其核心就是agent。从官网下载稳定版本:wget http://apache.fayea.com/flume/1.6.0/apache-flume-1.6.0-b

2016-07-23 17:19:49 3641

原创 理解YARN Scheduler

在YARN中,资源调度器(Scheduler)是ResourceManager中的重要组件,主要负责对整个集群(CPU,内存)的资源进行分配和调度,分配以资源Container的形式分发到各个应用程序中(如MapReduce作业),应用程序与资源所在节点的NodeManager协作利用Container完成具体的任务(如Reduce Task)。Scheduler以可插拔的形式来配置,框架默认提

2016-07-23 02:02:46 3136 2

转载 8个SQL-on-Hadoop框架

数据的操作语言是SQL,因此很多工具的开发目标自然就是能够在Hadoop上使用SQL。这些工具有些只是在MapReduce之上做了简单的包装,有些则是在HDFS之上实现了完整的数据仓库,而有些则介于这两者之间。这样的工具有很多,来自于Shoutlet的软件开发工程师Matthew Rathbone最近发表了一篇文章,他列举了一些常

2016-07-22 13:30:48 1107

原创 Java实现GroupBy/分组TopN功能

介绍在Java 8 的Lambda(stream)之前,要在Java代码中实现类似SQL中的group by分组聚合功能,还是比较困难的。这之前Java对函数式编程支持不是很好,Scala则把函数式编程发挥到了机制,实现一个group by聚合对Scala来说就是几行代码的事情:val birds = List("Golden Eagle","Gyrfalcon", "American Robin"

2016-07-21 22:15:01 13871 2

原创 Hadoop HDFS高可用(HA)

版本记录:2016-07-19 凌晨 初稿在Hadoop 1.x 中,Namenode是集群的单点故障,一旦Namenode出现故障,整个集群将不可用,重启或者开启一个新的Namenode才能够从中恢复。值得一提的是,Secondary Namenode并没有提供故障转移的能力。集群的可用性受到影响表现在:当机器发生故障,如断电时,管理员必须重启Namenode才能恢复可用。在日常的维护升级

2016-07-19 09:18:05 6033 2

原创 MapReduce shuffle过程剖析及调优

MapReduce简介在Hadoop MapReduce中,框架会确保reduce收到的输入数据是根据key排序过的。数据从Mapper输出到Reducer接收,是一个很复杂的过程,框架处理了所有问题,并提供了很多配置项及扩展点。一个MapReduce的大致数据流如下图:更详细的MapReduce介绍参考Hadoop MapReduce原理与实例。Mapper的

2016-07-18 01:48:03 16201 1

原创 Hadoop MapReduce原理及实例

MapReduce是用于数据处理的一种编程模型,简单但足够强大,专门为并行处理大数据而设计。1. 通俗理解MapReduceMapReduce的处理过程分为两个步骤:map和reduce。每个阶段的输入输出都是key-value的形式,key和value的类型可以自行指定。map阶段对切分好的数据进行并行处理,处理结果传输给reduce,由reduce函数完成最后的汇总。例如从大量历史数据中找出往年

2016-07-16 22:14:53 40291 9

原创 深入理解HDFS:Hadoop分布式文件系统

文本详细介绍了HDFS中的许多概念,对于理解Hadoop分布式文件系统很有帮助。1. 介绍在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在集群上的文件系统称为分布式文件系统。而一旦在系统中,引入网络,就不可避免地引入了所有网络编程的复杂性,例如挑战之一是如果保证在节点不可用的时候数据不丢失。传统的网络文件系统(NFS)虽然也称为分布式文件系统,但是其存在一些限制。由于

2016-07-15 22:33:44 56449 8

原创 HDFS安全模式详解

什么是安全模式安全模式是HDFS所处的一种特殊状态,在这种状态下,文件系统只接受读数据请求,而不接受删除、修改等变更请求。在NameNode主节点启动时,HDFS首先进入安全模式,DataNode在启动的时候会向namenode汇报可用的block等状态,当整个系统达到安全标准时,HDFS自动离开安全模式。如果HDFS出于安全模式下,则文件block不能进行任何的副本复制操作,因此达到最小的副本数量

2016-07-13 21:07:41 17510 2

原创 Hadoop集群搭建详细步骤(2.6.0)

本文记录在3台物理机上搭建Hadoop 2.6.0的详细步骤及碰到的问题解决。默认使用root账号操作,实际中建议使用专用的hadoop用户账号。1. 环境机器: 物理机3台,ip分别为192.168.1.130、192.168.1.132、192.168.1.134 操作系统: CentOS 6.6 Java: 1.7 Hadoop: 2.6.0请确保JDK已安装,使用java -versi

2016-07-12 22:38:05 23244 1

原创 Elasticsearch集群搭建及Python交互

本文记录Elasticsearch物理集群的安装步骤,在3台机器上部署一个集群。行文顺序为整个安装过程从头到尾,期间发现不少问题。因此,本文不适合一步步跟着做,建议您看完整篇文章,然后再开始搭建集群。1 . 环境机器: 3台物理机器,分别为130,132,134操作系统:CentOS 6.6Elasticsearch: 2.3.3 版本确保安装相应版本JDK,使用java -v

2016-07-12 17:50:10 6637 1

原创 微服务设计-思维导图笔记

微服务思维导图读书笔记,共参考。

2016-07-12 17:48:08 2760

原创 理解Hadoop YARN架构

1. 介绍YARN(Yet Another Resource Negotiator)是一个通用的资源管理平台,可为各类计算框架提供资源的管理和调度。 其核心出发点是为了分离资源管理与作业调度/监控,实现分离的做法是拥有一个全局的资源管理器(ResourceManager,RM),以及每个应用程序对应一个的应用管理器(ApplicationMaster,AM),应用程序由一个作业(Job)或者Job

2016-07-11 18:53:55 16257 2

原创 Eclipse导入导出Preference配置文件

Eclipse工作空间中的一些常用配置,例如字体配置,编码方式配置,代码自动提示,代码模板等。在新建工作空间事,如果一一重新配置,耗时耗力。使用导入导出可以解决这个问题。导出在已配置好的工作空间中,选择File->Export->General->Preferece:选中Export all或者根据需要选择导出的内容,导出保存为.epf结尾的文件。导入上一步导出配置文件后,在新建的工作空间中,Fil

2016-07-11 12:30:14 6112

原创 Redis安装步骤

本文详细介绍Redis的安装步骤。安装环境操作系统: Centos 6.4 ( cat /etc/redhat-release) Redis: 3.0.7下载编译从Redis官网下载:wget http://download.redis.io/releases/redis-3.0.7.tar.gz解压:tar -zxvf redis-3.0.7.tar.gzcd redis-3.0.7编译:mak

2016-07-11 00:18:17 774

原创 Hadoop单机安装详细步骤

环境准备安装Java过程简单,这里省略具体安装步骤。安装后确认相应版本的Java已安装,这里选择1.7。java -version创建Hadoop账号为Hadoop创建一个专门的账号是很好的实践:sudo adduser hadoopsudo passwd hadoop授予 Hadoop root权限 为了测试,图方便,这里给Hadoop root权限,生产环境不建议这样做。 使用root权限

2016-07-11 00:03:12 8592 1

原创 NoSQL概述-思维导图

NoSQL简介,思维导图整理。

2016-07-09 11:33:04 1563

原创 JAX-RS基本概念理解

JAX-RS,全称为Java API for RESTful Web Services.的核心概念是resource,即面向资源。JAX-RS的JavaDoc可以在这里找到。 JAX-RS的标准可以在这里找到。1. Root Resource Classes满足下列2个条件的POJO类被称为Root Resource Class:使用@Path注解至少有一个方法使用@Path或者资源方法注解(

2016-07-08 22:50:51 6438 1

原创 Greenplum简介

Greenplum: http://greenplum.org/ 原来是个商业产品,后来开源。从Slogan看:是个数据库着眼于数据仓库主要在于大规模并行基于强大的PostgreSQL,PostgeSQL提供了诸如表空间、外部表等功能,支持丰富的数据类型(包含key-value,JSON,XML,GIS,甚至支持各种集合图形的表示)。其中的FDW外部表是一个非常强大的功能,可以直接将外部文

2016-07-07 18:55:59 4892

原创 Docker安装Tomcat

下载Tomcat镜像:docker pull tomcat启动tomcat容器: docker run -it --rm tomcat查看容器IP:docker inspect --format='{{.NetworkSettings.IPAddress}}' 1386c105c56d最后一个参数是容器id,可以通过docker ps 命令获取。拿到ip后,就可以通过8080端口访问了:curl 1

2016-07-07 00:34:27 840

原创 Docker-入门

简介https://www.docker.com/Docker: world’s leading software containerization platform*.VM vs. Docket:Docker基于LXC(Linux容器),在LXC的基础上进一步封装,使得操作更简单,就像操作一个轻量级的虚拟机一样。相比虚拟机的优势:启动更快,可以在秒级启动对系统的资源利用率更高(在内核级别进行虚

2016-07-06 23:55:38 1196

原创 Linux容器LXC-入门

LXC: Linux Container。 LXC允许你在宿主操作系统内的容器运行应用。容器在网络、行为等方面都与宿主OS都隔离。LXC与虚拟化类似,但是有一些关键的不同点:虚拟化模拟硬件和操作系统,但是LXC只模拟操作系统,因此更轻量级、速度更快。LXC的仿真(模拟)是通过Linux内核的cgroups和namespaces来实现的,因此LXC只能模拟基于Linux系的操作系统.cgr

2016-07-06 18:22:28 5210 1

原创 IDEA MyBatis插件安装及使用

IDEA中的MyBatis Plugin已经由开源转向收费了,想使用这个插件,只能使用破解版。如果版本是IDEA 15的,可以从这里下载。下载之后,从IDEA的plugins安装界面中,选择从磁盘安装: 安装后重启,在项目resources目录下创建一个配置文件: 配置完成后选中配置文件右键:Run as MyBatis Generator 注意的是,IDEA无法自动生成package,因此在

2016-07-06 12:22:39 5858

原创 免费的Gif制作工具-录屏、录像

网上经常看到一些很好的动画演示图,但是如果刚好不是GIF动态图,这时候可以自己动手制作GIF。 这里介绍的ScreenToGif功能非常强大,支持录屏,摄像头录像、涂鸦录像等方式。并且编辑功能非常强大,中文支持。你可以从CSDN或者英文官网免费下载。需要注意的一个问题是,这个工具在你使用多个显示器的时候无法正常工作,会出现什么都看不到的情况。因此需要在单显示器上使用。下面是一些截图:

2016-07-06 09:38:36 785

原创 ReactiveX-入门篇

ReactiveX简介: An API for asynchronous programming with observable streams。分解一下这个句子:API: 首先它是个编程接口,不同语言提供不同实现。例如JVM语言中的RxJava。For asynchronous programming: 使用场景,异步变成环境中。With observable streams: 基于可

2016-07-06 09:23:28 8815 1

买年费Gif制作工具,支持录屏、录像,强大的编辑功能

免费并且功能强大的gif制作,编辑工具。支持录屏,摄像头录像等方式。并且编辑功能非常强大,中文支持。

2016-07-06

Rc振荡器课件

RC振荡器课件RC振荡器课件RC振荡器课件RC振荡器课件RC振荡器课件

2012-11-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除