大数据入门

大数据

大数据:big data,指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,

是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

 

 

 问题:

  1、业务系统中打印日志,会影响我们的执行效率,在高并发情况下,对性能影响极大。

    所以使用js埋点技术进行解决。将日志收集和业务服务进行分离。

 

主流处理海量数据

  两条线:

    1) 离线分析,业务系统打log4j日志通过flume获取log4j日志,保存数据到HDFS分布式文件处理,通过MRMap拆分Reduce汇聚)进行离线分析,MR晦涩难懂,需要去了解Hadoop提供API于是Hive产品,基于MR形成HQL语句,类SQL语句。分析人员就非常方便来学习和使用。而且HiveHDFS创建数据仓库(数据挖掘)结果如果少保存mysql如果海量Hbase/HDFS。

    2)实时分析spark/stormstorm实时处理中最快0.2s~05s,基于事件模型event单条处理。不能直接flume收集数据放入storm,如果数据量非常大,storm抛弃,如果抛弃过多数据分析的结果偏差比较大。引入kafka起到削峰平谷作用。Storm处理时就更加平滑。

 

 

log4j

  日志系统

    Log4j是Apache的一个开源项目,通过使用Log4j,
    我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;
    我们也可以控制每一条日志的输出格式;
    通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。
    最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

 flume

  flume:水道,引水槽

  收集清洗

    Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,
    Flume支持在日志系统中定制各类数据发送方,用于收集数据;
    同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
 
      当前Flume有两个版本Flume 0.9X版本的统称Flume-og,Flume1.X版本的统称Flume-ng。由于Flume-ng经过重大重构,与Flume-og有很大不同,使用时请注意区分。
 

 Hadoop

  HDFS : Hadoop Distributed File System:分布式文件系统

      hadoop:分布式计算

      distributed:分布式的,分散性的

      MapReduce:  分布式计算系统

    Hadoop是一个由Apache基金会所开发的分布式系统基础架构
    用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
    Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。

    HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

 

Hive

  hive:群居;入蜂房;生活在蜂房中

    hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。
     其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
 

kafka

    Kafka是由Apache软件基金会开发的一个开源流处理平台,由ScalaJava编写。
    Kafka是一种高吞吐量分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。
      这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。
      这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。
    Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。
 

 storm 

    流式数据
 
 

想高薪就业,有长足发展!

    分布式(集群)、
    高并发(百万级并发-nginx负载均衡-提高系统并发能力;
    数据库mysql读写分离,mysql proxy,amoeba+mycat;
    redis分布式内存系统,亿级并发-dubbo RPC框架,dubbo3.0 streaming流;
    MQ松耦合,架构优化最后一层,只能加硬件。
    支持洪峰。削峰平谷;从vm虚拟机时代过渡docker容器化时代1s)、
    高可用(redis哨兵、集群;docker)、海量数据!
 
 
 

面对海量数据?

    1) 解决海量数据的存储solr全文检索、Hadoop HDFSPB=1024TBEB=1024PB)

    2) 海量数据的处理(不着急-离线分析Hadoop MapReduceMRHive数据仓库Hive QL(HQLsql的方式);立竿见影-实时分析 Spark RDD分布式的数据集/Spark SQL/Spark Streaming 流式数据处理 storm实时处理流式,0.2s~0.5s,条,spark1s~5s吞吐量,批量/Spark MLib 机器学习

    3) 处理海量数据落地

      1. 处理完还是海量数据保存HDFSHBase
      2. 处理完不是海量数据,比较少保存txtexcelmysql
 
 

四类问题:

  1)分布式

  2高并发

  3)高可用

  4海量数据

 

两个生态链

  1) Hadoop生态HadoopHDFS分布式的文件管理系统,Yarn集群MRMapReduce)离线计算,数据挖掘(利用原始数据中提炼有价值信息)DWDataWarehouse数据仓库Hive提前创建中间结果(数据建模HBase nosql 列式存储(海量) Sqoop数据迁移(Oracle导入Mysqllimit 10rownum >10 存储过程、触发器(废除!)HDFS导入mysqlmysql导入HDFS

  2) Spark生态链

    Spark RDD分布式的数据集Spark Streaming流式处理Spark SQL SQL查询、Spark Mlib 机器学习

    Storm 流式数据处理,性能storm最快 0.2s~0.5s批量 spark streaming 2s~5s

3) zookeeper集群管理

 

 

问题:收集哪些参数?

 

  网站流量日志分析系统:8

    1) PV page view 点击率,越高越好

    2) UV unique view 独立访客数,类似登录,标识你是唯一用户

    3) VV visitor view 某个访客访问次数某个客户访问的次数累计

    4) br bounce rate 跳出率,访问页面推荐,持续访问指标反应对用户黏着度

    5) NewIP 统计一天内出现新的IP地址,日

    6) NewCust 新用户

    7) AvgTime 平均访问时长如果某个页面停留时间越长,说明这个信息用户感兴趣。

    8) AvgDeep 平均访问深度,一个页面就是一,数字越大网站吸引人

 

 

 

  AvgTime统计这个值,a页面2分钟b页面5分钟c页面5分钟d页面(被忽略

    常见情况:

    1) d页面停留很久,30分钟session

    2) d页面点进去后把ie关闭

    这些统计中很多的数据统计不够“严谨”,这些都是近似值!!!!!

 

 

 

 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
posted @ 2018-03-29 11:08  项羽齐  阅读(219)  评论(0编辑  收藏  举报