大数据技术介绍


大数据技术的介绍:
  1、存储,我们需要了解在大数据的架构下,数据大致是怎么进行存储的,传统的文件系统是单机的,不能横跨不同的机器。HDFS(Hadoop Distributed FileSystem)的设计本质上是为了大量的数据能横跨成百上千台机器,但是用户在实际的应用中,看到的是一个文件系统而不是多个文件系统。比如要获取/hdfs/tmp/file1的数据,看起来和单机无异,引用的是一个文件路径,但是实际的数据存放在很多不同的机器上。作为用户,不需要知道数据具体是怎么存储在分布式系统中的,就好比在单机上我们不关心文件分散在什么磁道什么扇区一样。HDFS会自动为你管理这些数据;
  2、数据处理,解决了存储的问题之后,我们就要开始考虑如何处理数据了,虽然HDFS可以整体管理不同机器上的数据,但是这些数据太大了。一台机器承载着也是巨量的数据,使用一台机器跑也许需要好几天甚至好几周。那么,一个非常自然的想法,既然数据可以在多台机器上存储,难道不能使用多台机器来处理吗?这就好比我们常使用的多核计算,类比来看,在大数据中,一台机器对应的就是一个核,因此同样,和多核计算一样,我们面临着如何分配不同机器工作的问题,如果一台机器挂了如何重新启动相应的任务,机器之间如何互相通信交换数据以完成复杂的计算等等,这就是MapReduce架构、spark的功能。
  3、Mapreduce mapreduce不仅仅提供了技术上的架构,更重要的是其思想,对于巨大型任务的处理思路,其实很简单,先map,然后reduce,它的思想和多核计算是非常相似的:
  我们来概览一下mapreduce的结构,然后把mapreduce框架下整个任务处理的流程过一遍就能体会mapreduce的思想了:首先会有一个master节点,作为用户在大数据框架中的“计算机代理”负责整个任务的调度(这样我们就不用人为地去给不同的worker(机器)分配工作了,这是mapreduce框架非常方便的地方),然后数据的input,既然我们要把计算拆分到多台机器上,(这里我们以简单经典的词频统计为例,假设我们要统计两篇长篇小说的词频),map要先把这两篇长篇小说进行拆分,假设我们是按照章节拆分的,并且每个章节的大小恰好相同(为了便于理解这里的假设都是非常理想的),将两篇小说分别划分为3个章节和2个章节,一共5个章节,然后呢,master就会分配一些worker去领任务,比如派了5个worker分别对5个章节进行词频统计,统计完之后得到5个结果保存缓存在硬盘上,这就是一个完整的map(映射,其实本质就是功能性函数的运行,把原始数据通过一些计算转化为另一些数据)过程,简单来说就是把一个任务分配给不同的机器执行,接着,我们发现,我们的最终目标是统计两个长篇小说,此时只是得到了每个章节的词频统计结果,那么,这个时候我们就需要reduce(归约,简单来说就是对所有worker的工作进行汇总)来分配机器,让workers去把刚才5个workers的计算结果进行汇总,比如上图,分配了两个workers,一个worker汇总3个map-workers的工作结果,一个worker汇总剩下两个workers的工作结果,最终将汇总计算的结果保存到本地的两个文件上;
  上述的过程听起来简单,但是实现上是非常繁琐的,很多时候,例如对于词频的计算,我们要自己去手动编写一个词频计算的map function,这对于数据处理与分析来说,实在太麻烦了,这就好比你想要去计算某一个特征的取值情况,通过pandas的value_counts()功能就可以轻松实现,但是现在你要自己写个func去做统计,我们希望有个更高层更抽象的语言层来描述算法和数据处理流程,于是,就诞生了Hive和pig。Pig是接近脚本方式去描述MapReduce(没用过),Hive则用的是SQL(hive sql,对于经常写sql同学来说非常简单容易上手)。它们把脚本和SQL语言翻译成MapReduce程序,丟给计算引擎去计算,这样我们就从繁琐的MapReduce程序中解脱出来。
  Hive逐渐成长成了大数据仓库的核心组件(因为sql本身没什么技术门槛,一般的非技术人员也可以)。甚至很多公司的流水线作业集完全是用SQL描述,因为易写易改,一看就懂,容易维护
  但是hive也有一个个问题,Hive底层执行使用的是MapReduce引擎,仍然是一个批处理过程,难以满足查询的交互性,比如我们写一个数据分析报告,我们想要去统计譬如每个用户分别浏览了多少商品或者每个商品被多少用户浏览过,当数据量非常大的时候,hive的查询效率是偏低的,子是又诞生了impala等分布式交互查询数据库,其底层做厂非常多的性能优化大大提升了交互式查询,数据分析的效率;
  再后来,spark的横空出世支撑了hive on spark和sparksql (也就是我们熱悉的spark dataframe的父集),尤其是spark dataframe,不仅对于sql使用者来说友好,对于pandas的使用者也是较为友好的:
  这个时候,一个完整的大数据处理分析的框架就己经跃然纸上丁:
  1、底层的mapreduce架构(hadoop)或spark;
  2、中层的hive或pig或者在hdfs上跑impala等;
  3、上层的hive on spark或是直接使用sparksal
  最后,作为小白用户,我们直接可以通过例如sparksql来进行海量数据的快速分析与数据分析报告甚至是基本的特征工程等,这个时候,我们实际上已经较好的解决了没有实施需求的离线问题,后续的模型训练我们可以通过分布式的xgb、lgb、tf等框架或者是spark ml等进行模型的训练
  那么,如果是有实时需求的业务场景呢?比如我们想要尽量让申请信货的用户能够实时得到审批的结果,该怎么办?
  于是,流(streaning)计算就问世了,storm是最流行的流计算平台,流计算的思路是,如果要达到更实时的更新,我们可以直接在数据流进来的时候就进行相应处理,这和online learning的思想是比较类似的,比如还是词频统计的例子,我的数据流是一个一个的词,我就让他们一边流过我就一边开始统计了
  除此之外,针对于不同的场景,有不同的成熟开源的分布式系统,例如基于hadoop的mahout和基于spark的spark ml, Mahout是hadoop的一个机器学习库,主要的编程模型是MapReduce; Spark ML则是基于Spark的机器学习,Spark自身拥有MLib作为机器学习库,不过现在Mahout已经停止接受新的MapReduce算法了,向Spark迁移。
  MLlib基于RDD,天生就可以与Spark SQL、 Graphx、spark Streaming无缝集成,非常的方便;
  最后是关于这么多大数据组件的集中管理,这里贴出网上的一个很有思的例子:有了这么多乱七八糟的工具,都在同一个集群上运转,大家需要互相尊重有序工作。所以另外一个重要组件是,调度系统。现在最流行的是Yarn。你可以把他看作中央管理,好比你妈在厨房监工,哎,你妹妹切菜切完了,你可以把刀拿去杀鸡了。只要大家都服从你妈分配,那大家都能愉快滴烧菜。你可以认为,大数据生态圈就是个厨房工具生态圈。为了做不同的菜,中国菜,日本菜,法国菜,你需要不同的工具。而且客人的需求正在复杂化,你的厨具不断被发明,也没有一个万用的厨具可以处理所有情况,因止他会变得越来越复杂。

关于hadoop和hive的介绍


hive

常用SQL语法

hive另外一些说明

金融风控实战——Hive详解(数据读取、预处理、特征工程)相关推荐

  1. 数据竞赛入门-金融风控(贷款违约预测)三、特征工程

    前言 本次活动为datawhale与天池联合举办,为金融风控之贷款违约预测挑战赛(入门) 比赛地址:https://tianchi.aliyun.com/competition/entrance/53 ...

  2. 金融风控-贷款违约预测学习笔记(Part3:特征工程)

    金融风控-贷款违约预测学习笔记(Part3:特征工程) 1.特征预处理 1.1 处理类别型特征和数值型特征 1.2 缺失值填充 1.3 时间格式处理 1.4 将对象类型特征转换到数值 1.5 类别特征 ...

  3. android json mysql_Android通过json向MySQL中读写数据的方法详解【读取篇】

    本文实例讲述了Android通过json向MySQL中读取数据的方法.分享给大家供大家参考,具体如下: 首先 要定义几个解析json的方法parseJsonMulti,代码如下: private vo ...

  4. 大数据技术Hbase 和 Hive 详解

    目录 两者的特点 各自的限制 应用场景 大数据技术Hbase 和 Hive 详解, 今天给大家介绍一下关于零基础学习大数据视频教程之HBASE 和 HIVE 是多么重要的技术,那么两者有什么区别呢 ? ...

  5. 最全面的HIVE详解

    Hive简介 hive详解 hive入门必看 上图是OLAP引擎整体架构图,分为三个层面:数据存储层,计算资源层以及OLAP服务层.(我们从olap引入hive,如果重点关注hive,这部分作为扩展即 ...

  6. 快速学习MyBatis|实战项目详解

    作者主页:橙子! 主页 系列专栏:JavaWeb基础教程系列 精彩回顾:HTTP协议详解 文章目的:快速学习MyBatis及实战项目详解 文章目录 1.什么是MyBatis? 2. JDBC存在的缺点 ...

  7. ARP缓存表的构成ARP协议全面实战协议详解、攻击与防御

    ARP缓存表的构成ARP协议全面实战协议详解.攻击与防御 1.4.3  ARP缓存表的构成 在局域网的任何一台主机中,都有一个ARP缓存表.该缓存表中保存中多个ARP条目.每个ARP条目都是由一个IP ...

  8. 金融风控实战——特征工程上

    特征工程 业务建模流程 将业务抽象为分类or回归问题 定义标签,得到y 选取合适的样本,并匹配出全部的信息作为特征来源 特征工程+模型训练+模型评价与调优(相互之间可能会有交互) 输出模型报告 上线与 ...

  9. 微信支付 php详解,PHP实现微信支付实战案例详解

    这次给大家带来PHP实现微信支付实战案例详解,PHP实现微信支付的注意事项有哪些,下面就是实战案例,一起来看一下. 前期准备: 1.微信认证服务号,并且开通了微信支付 2.微信支付SDK,下载地址:h ...

最新文章

  1. LA4238 Area of Polycubes(立方体的表面积)
  2. 负样本修正:既然数据是模型的上限,就不要破坏这个上限
  3. JAVA的数据类型有哪些?
  4. 哪些行业形势好?大数据帮你预测今年就业“风口”
  5. 数据交互智能终端设想
  6. leetcode - 746. 使用最小花费爬楼梯
  7. windows CMD 下 长ping 加时间戳,亲测有效
  8. php ajax 同时验证 用户名 密码
  9. vue2 动态添加响应式数据
  10. Access根据出生日期计算年龄_Access处理数据
  11. python PIL生成gif帧率问题
  12. 计算机怎样安装硬盘,固态硬盘怎么安装?小编教你怎么安装固态硬盘详图
  13. 【Nand2tetris】Project02
  14. win7 安装MySQL 5.7.
  15. 第二章 数据查询语言DQL
  16. HTML5 小练习1—仿MPG游戏商城
  17. CMSIS-RTOS2 入门教程 [2]——RTX_Config.h配置
  18. 业精于勤,荒于嬉。行成于思,毁于随。
  19. EMQX 入门教程 环境篇④——修改HTTP:Dashboard监听的端口
  20. 顶象陈树华:安全也能共享?你没看错!

热门文章

  1. 反向传播算法_9.3 反向传播算法的直观理解 Backpropagation Intuition
  2. Android中的常见布局
  3. 通用makefile
  4. linux系统虚拟化测试,网络性能与磁盘测试 - Linux虚拟化性能PK:Ubuntu系统6大版本_Linux新闻_Linux公社-Linux系统门户网站...
  5. linux删去分区的文件夹,如何恢复 Linux 分区下误删的文件?
  6. svn: Can't convert string from 'UTF-8' to native encoding
  7. Rxjava 优雅的实现短信验证码发送
  8. ubuntu系统无法ssh登录--安装openssh
  9. C malloc 用法
  10. keras 时间序列分析