大数据认识篇

原文链接: https://my.oschina.net/VASKS/blog/610199

大数据认识篇 

什么是大数据,为什么大数据,咱不说。

处理大数据。

从一个简单的需求说起:

1、    假设公司有100个域名,各个域名下有更多的子域名,下文子域名也叫做域名。

每个域名对应的nginx log 假设1G.

现在的需求是log数据得存储一年,每天早上给出每个域名对应的各种指标,多少ip,4xx,5xx and so on。

做法是:每个机器上定时任务呗,处理脚本,发送结果到邮箱,每个域名发一封,呵呵。优化:把结果写到数据库,然后写个脚本处理数据库,发送到邮箱,就是一封邮件了。

再优化:把日志晚上切割后,压缩发送到一个专门的机器上,写一个脚本,可以随意修改,数据统一,处理方式统一,结果统一。

2、    业务扩大,域名多了,日志数据从1G到1000G。

就拿单机来说,shell脚本很难做处理了,即使做到了,效果不好。这么大的数据都集中到一个存储机器,存一年,还占用网络速度,肯定不行。再说1000G---切割到100G一个,然后shell处理100G这么多,也耗时耗力。

好吧,大数据来了。

咱现在需要的第二天早上发送报告,也就是处理冷数据。

数据集中:

hadoop的hdfs

每个机器上的log文件是文本格式的,可以存到每个机器的数据库,这样一来,每个机器上的log就可以联动,但是效率不高,hadoop的hdfs来了,这样理解:这hdfs控制端查今天公司网站所有的总带宽,一个命令就行了。看起来不是按个读取文本文件去查,加起来。把分布在各个服务器的数据看作了一个总体。

数据分析:

hadoop的MapReduce,不细说。

3、    实时大规模nginx日志 elk

Elasticsearch + Logstash + Kibana(ELK)是一套开源的日志管理方案,分析网站的访问情况时我们一般会借助Google/百度/CNZZ等方式嵌入JS做数据统计,但是当网站访问异常或者被攻击时我们需要在后台分析如Nginx的具体日志,而Nginx日志分割/GoAccess/Awstats都是相对简单的单节点解决方案,针对分布式集群或者数据量级较大时会显得心有余而力不足,而ELK的出现可以使我们从容面对新的挑战。

Logstash:负责日志的收集,处理和储存

Elasticsearch:负责日志检索和分析

Kibana:负责日志的可视化

http://baidu.blog.51cto.com/71938/1676798

4、    现在公司有个计费系统,十分庞大。实时计算出需求用户的各种指标。

存储有了hadoop的hdfs,但是mapreduce压根不对实时数据起作用,ok,storm来了,还有这个:spark

这么多技术,说个大概吧,他们怎么组合的。

组合:

    flume-ng+Kafka+Storm+HDFS 实时系统组合

     hadoop:hdfs mapreduce组合

……………………

我该怎么选择:spark storm hadoop 什么关系,怎么选择

http://www.aboutyun.com/thread-7569-1-1.html

认识浅显,欢迎指正

转载于:https://my.oschina.net/VASKS/blog/610199

你可能感兴趣的:(大数据认识篇)