ubuntu RabbitMQ Golang 中间件    2016-07-28 15:22:50    994    0    0

RabbitMQ 是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成,因此也是继承了这些优点。

  AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。它从生产者接收消息并递送给消费者,在这个过程中,根据规则进行路由,缓存与持久化。

AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。

RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:[Python](http://lib.csdn.net/base/11)、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。


ubuntu12.04 Elasticsearch    2016-06-24 20:59:35    234    0    0

Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。能够快速搜索数十亿的文件以及PB级的数据,结构化或者非结构化的数据都可以。对于大多数数据库而言,横向扩展意味着你的程序将做非常大的改动来利用这些新添加的设备。对比来说,Elasticsearch天生是分布式的:它知道如何管理节点来提供高扩展和高可用。这意味着你的程序不需要关心这些。

Elasticsearch使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。 

java linux kafka292    2016-05-16 12:37:36    185    0    0

  kafka是LinkedIn开发并开源的一个分布式MQ系统,现在是Apache的一个孵化项目。在它的主页描述kafka为一个高吞吐量的分布式(能将消息分散到不同的节点上)MQ。Kafka仅仅由7000行Scala编写,据了解,Kafka每秒可以生产约25万消息(50 MB),每秒处理55万消息(110 MB)。

  kafka目前支持多种客户端语言:java,python,c++,php等等。

  kafka集群的简要图解如下,producer写入消息,consumer读取消息

CDH5 ubuntu1404 hadoop230    2016-05-10 14:52:08    259    0    0

  Hadoop是一个开源项目,所以很多公司在这个基础进行商业化,Cloudera对hadoop做了相应的改变。 

  Cloudera公司的发行版,我们将该版本称为CDH(Cloudera Distribution Hadoop)。截至目前为止,CDH共有5个版本,其中,前两个已经不再更新,最近的两个,分别是CDH4在Apache Hadoop 2.0.0版本基础上演化而来的),CDH5,它们每隔一段时间便会更新一次。 

  Cloudera以Patch Level划分小版本,比如Patch Level为923.142表示在原生态Apache Hadoop 0.20.2基础上添加了1065个Patch(这些Patch是各个公司或者个人贡献的,在Hadoop jira上均有记录),其中923个是最后一个Beta版本添加的Patch,而142个是稳定版发行后新添加的Patch。由此可见,Patch Level越高,功能越完备且解决的Bug越多。 

  Cloudera版本层次更加清晰,且它提供了适用于各种操作系统的Hadoop安装包,可直接使用apt-get或者yum命令进行安装,更加省事。

Supervisor3.2.1 系统进程 Mac10.10.3    2016-04-11 19:43:43    152    0    0

  Supervisor是由python语言编写的一款服务器管理工具,用以监控服务器的运行,发现问题能立即自动预警及自动重启等功能。可以运行在大多数类UNIX系统上,比如Linux、MAC OS X、Solaris、FreeBSD。

  除了对单个进程的控制,还可以同时启动、关闭多个进程,比如很不幸的服务器出问题导致所有应用程序都被杀死,此时可以用 Supervisor 同时启动所有应用程序而不是一个一个地敲命令启动。

  Supervisor目前支持Python2.4以及之后的版本,但不支持Python3。

logstash kibana elasticsearch nginx mac10.10.3 日志收集 大数据    2016-04-09 17:22:30    962    0    0

Logstash 

  简单来说,Logstash一个完全开源的工具,可以进行数据收集、分析,并将其存储供以后使用。 

  虽然网上有人拿Flumn和Kafka做比较,但个人觉得Logstash反而和Flumn比较像,都是收集、处理数据的。如果最终你的数据流向是Elasticsearch,那么使用Logstash是最合适不过的,因为他们版本的升级非常接近。

Kibana 

  Kibana是一个基于浏览器页面的Elasticsearch前端展示工具。Kibana全部使用HTML语言和Javascript编写的。

Elasticsearch 

  Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎。它能帮助你搜索、分析和浏览数据。无论你是需要全文搜索、结构化数据的实时统计以及分析,Elasticsearch都可以完成。 

  Elasticsearch并不只是面向大型企业的,它还帮助了很多类似 DataDog 以及 Klout 的创业公司进行了功能的扩展。Elasticsearch 可以运行在你的笔记本上,也可以部署到成千上万的服务器上,处理PB级别的数据。

flume kafka storm java 大数据 实时计算    2016-03-04 12:25:04    262    0    0
  如何你仔细阅读过关于Flume、Kafka、Storm的介绍,就会知道,在他们各自之间对外交互发送消息的原理。
  在后面的例子中,我们主要对Flume的sink进行重构,调用kafka的消费生产者(producer)发送消息;在Sotrm的spout中继承IRichSpout接口,调用kafka的消息消费者(Consumer)来接收消息,然后经过几个自定义的Bolt,将自定义的内容进行输出。
golang php python java th thrift facebook    2016-03-03 10:34:24    163    0    0
  Thrift是一种可伸缩的跨语言服务的发展软件框架。它结合了功能强大的软件堆栈的代码生成引擎,以建设服务。
  Thrift是facebook开发的,07年4月开放源代码,08年5月进入apache孵化器。创造Thrift是为了解决facebook系统中各系统间大数据量的传 输通信以及系统之间语言环境不同需要跨平台的特性。所以thrift可以支持多种程序语言,例如:  C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml. (目前0.9.1版本已经开始支持golang语言)在多种不同的语言之间通信thrift可以作为二进制的高性能的通讯中间件,支持数据(对象)序列化和多种类型的RPC服务。
  Thrift允许你定义一个简单的定义文件中的数据类型和服务接口。以作为输入文件,编译器生成代码用来方便地生成RPC客户端和服务器通信的无缝跨编程语言。简而言之,开发者只需准备一份thrift脚本,通过thrift code generator(像gcc那样输入一个命令)就能生成所要求的开发语言代码。
hive hbase nginx linux hadoop    2016-03-01 11:46:18    107    0    0

目录

Nginx的相关配置,以及测试数据

Hadoop中创建使用目录

Hive的日志表创建,并同步到Hbase中

0.1 创建自增长ID的类,并添加到Hive环境中

0.2 在Hive中创建日志表

0.3 将Nginx的日志数据导入到Hive日志表中

a) 方法一:将本地目录中的文件导入到Hive中

b) 方法二:从HDFS导入数据,我们先将表删除,重新创建一次,然后尝试从HDFS导入数据

c) 方法三:通过如Flume、Kafka一类的工具监控日志数据,自动导入

0.4在Hive中创建Hbase可以识别的表

0.5 将Hive的日志表,使用自增长Id做为rowkey导入到Hbase可识别的表中

0.6 到Hbase中验证效果使用get、scan、filter获取指定数据

FAQ

扩展阅读

大数据 hadoop hbase Flume 日志收集    2016-02-29 18:46:33    372    0    0

  flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用。Flume 初始的发行版本目前被统称为 Flume OG(original generation),属于 cloudera。但随着 FLume 功能的扩展,Flume OG 代码工程臃肿、核心组件设计不合理、核心配置不标准等缺点暴露出来,尤其是在 Flume OG 的最后一个发行版本 0.94.0 中,日志传输不稳定的现象尤为严重,为了解决这些问题,2011 年 10 月 22 号,cloudera 完成了 Flume-728,对 Flume 进行了里程碑式的改动:重构核心组件、核心配置以及代码架构,重构后的版本统称为 Flume NG(next generation);改动的另一原因是将 Flume 纳入 apache 旗下,cloudera Flume 改名为 Apache Flume

2/3