大数据认识篇 html
什么是大数据,为何大数据,咱不说。nginx
处理大数据。web
从一个简单的需求提及:shell
一、 假设公司有100个域名,各个域名下有更多的子域名,下文子域名也叫作域名。
数据库
每一个域名对应的nginx log 假设1G.服务器
如今的需求是log数据得存储一年,天天早上给出每一个域名对应的各类指标,多少ip,4xx,5xx and so on。网络
作法是:每一个机器上定时任务呗,处理脚本,发送结果到邮箱,每一个域名发一封,呵呵。优化:把结果写到数据库,而后写个脚本处理数据库,发送到邮箱,就是一封邮件了。分布式
再优化:把日志晚上切割后,压缩发送到一个专门的机器上,写一个脚本,能够随意修改,数据统一,处理方式统一,结果统一。oop
二、 业务扩大,域名多了,日志数据从1G到1000G。大数据
就拿单机来讲,shell脚本很难作处理了,即便作到了,效果很差。这么大的数据都集中到一个存储机器,存一年,还占用网络速度,确定不行。再说1000G---切割到100G一个,而后shell处理100G这么多,也耗时耗力。
好吧,大数据来了。
咱如今须要的次日早上发送报告,也就是处理冷数据。
数据集中:
hadoop的hdfs
每一个机器上的log文件是文本格式的,能够存到每一个机器的数据库,这样一来,每一个机器上的log就能够联动,可是效率不高,hadoop的hdfs来了,这样理解:这hdfs控制端查今天公司网站全部的总带宽,一个命令就好了。看起来不是按个读取文本文件去查,加起来。把分布在各个服务器的数据看做了一个整体。
数据分析:
hadoop的MapReduce,不细说。
三、 实时大规模nginx日志 elk
Elasticsearch + Logstash + Kibana(ELK)是一套开源的日志管理方案,分析网站的访问状况时咱们通常会借助Google/百度/CNZZ等方式嵌入JS作数据统计,可是当网站访问异常或者被攻击时咱们须要在后台分析如Nginx的具体日志,而Nginx日志分割/GoAccess/Awstats都是相对简单的单节点解决方案,针对分布式集群或者数据量级较大时会显得爱莫能助,而ELK的出现可使咱们从容面对新的挑战。
Logstash:负责日志的收集,处理和储存
Elasticsearch:负责日志检索和分析
Kibana:负责日志的可视化
http://baidu.blog.51cto.com/71938/1676798
四、 如今公司有个计费系统,十分庞大。实时计算出需求用户的各类指标。
存储有了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
认识浅显,欢迎指正