• hadoop 数据处理 总结


    最近工作中用了了Hadoop,比如用Hadoop来处理广告的一些pv量数据、点击数据等,最后统计后给运营展示每个广告的数据报表

    首先自己了解了一些关于Hadoop的概念知识

    hadoop平台提供了分布式存储(hdfs),分布式计算(mapredduce),任务调度(YARN)、对象存储(Ozone)、和组件支撑服务
     
    Hadoop主要用来存储以及处理大量并且复杂的数据. 他是由java编写的, 最核心的三个组件分别是HDFS, MapReduce, Yarn。
    主要使用场景有三个:
    • 存储大量的数据
    • 处理不同格式的数据, 包括结构性的数据, 比如关系型数据库里面的数据 以及日常生活中大量存在的非结构化以及半结构化的数据
    • 快速处理大量数据,主要用于实时分析

    HDFS负责存储
    MapReduce则负责处理数据啦, 它分为Map和Reduce两个阶段. Map负责将我们需要的数据从不同的电脑上拿出来, Reduce则负责对数据进行统计分析啦, 比如计数以及筛选。
    Yarn 负责资源的分配以及调度.
     
    hadoop就是用来做大文件存储以及数据处理的框架。
     
    为了存储大量数据和查询数据
     
    Hadoop是一个开源的框架,可编写和运行分布式应用处理大规模数据,是专为离线和大规模数据分析而设计的
     
    hdfs:就是一个文件系统,可以存储海量的数据
     
    mapredduce:从海量的数据中,通过一定的算法,计算出有用信息
     
    hive:就是sql语句解释器,接收用户输入的sql语句,然后将sql语句翻译成复杂的mapreduce程序,并发布到mr集群中进行运算,也是计算出有用的信息。
     
    hbase:mysql是基于linux/window 的文件系统的数据库,而hbase就是基于hdfs文件系统的数据库
     
    flume:就是一个水泵,将水从一个源水坑,抽到到另一个目的水坑中,当然flumen抽的是数据,将数据从一个文件抽取到另一个文件中
     
    sqoop:将hdfs文件系统的文件,导出到Linux文件系统的文件中,就像豌豆荚的应用程序,实现android系统和window系统之间文件的导入导出
     
    ooize/azkaban:一个完整的业务(word)是由多个任务(task)相互配合完成
     
     
    我在应用中,配置了crontab,写了shell脚本,这个脚本是主流程,每天定时开始处理数据
    1、引入了jdk包,以及hadoop的目录,设置的日期是前一天
    2、将数据源,也就是记录日志的机器把日志推送到使用的服务器,比如点击的数据、pv的log
    3、使用hadoop开始创建一个新目录,将推送过来的数据put到该目录
    4、点击数据同上一步
    5、引入java的jar 了,这一步就是实现mapreduce,比如我新建的方法pvMapper extends MapReduceBase implemns Mapper,然后就是解析刚才保存的日志,根据广告位的唯一id,获取想要的广告位,再取这个广告位下的所有广告,然后按照一定的算法设置将想要的数据进行处理,处理后放到一个文件中。
    6、get这个文件,按照一定的参数排列获取写入一个小时的问题,比如需要按照小时记录
    7、最后将日志文件推送到处理数据的服务器
    8、在那台服务器使用脚本解析文件,入库即可。
    9、最后清空文件目录
     
    我大概就是按照这个流程做的一个日志的数据处理。总结一下。
     
    网上很多mapreduce的文件,拿到改成自己的文件路径和处理数据格式直接用就可以啦。
  • 相关阅读:
    【卷积】卷积的理解
    【cs231n】神经网络学习笔记3
    【cs231n】神经网络笔记笔记2
    【cs231n】神经网络学习笔记1
    【cs231n】卷积神经网络
    【cs231n】反向传播笔记
    【cs231n】最优化笔记
    【cs231n】图像分类笔记
    【cs231n】线性分类笔记
    关于struts中Ognl和iterator配合再次理解
  • 原文地址:https://www.cnblogs.com/weiluoyan/p/12994163.html
Copyright © 2020-2023  润新知