• 软件工程培训第三天总结,hadoop和mapreduce基础(附:hbase,mongodb,redis的区别)


    培训总结(三)

    (一)学习过程 

      开始老师先讲诉了大数据的起源和具体应用以及应用的意义。然后老师为我们讲诉了hadoop的安装(虽然这个早就安装了好几遍),在hadoop安装成功后老师带我们做了一个简单的wordcount的例子,让我再一次重温了mapreduce的基础知识,在课程的最后老师给我留了一个综合性较强的习题。

    (二)总结

      今天由于有的同学没有提前配置好环境所以讲的东西比较少,自由时间比较多。在自己学习的过程中再一次更加细致的认识到了hadoop和mapreduce的基本框架和知识,自己实际操作的写了几道例题还扩展了一些老师没有讲到的知识。在多出来的自由时间中我安装好了Nosql的三个数据库,和Hive并进行了一些简单的操作,为明天的学习起到了预习的作用。

    (三)问题汇总

      对于一些mapreduce的例子中的某些代码不是很理解,但老实说会用就可以,可是看着还是有点不舒服,下来后我会继续加强自己对于mapreduce的理解,已达到更好的使用mapreduce+HDFS的效果。

    (四)思维导图

      

     

    附:hbase,mongodb,redis的区别

    (1)mongodb:

    优势
    1. 强大的自动化 shading 功能
    2. 全索引支持,查询非常高效
    3. 面向文档(BSON)存储,数据模式简单而强大
    4. 支持动态查询,查询指令也使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组
    5. 支持 javascript 表达式查询,可在服务器端执行任意的 javascript函数

    缺点
    1. 单个文档大小限制为16M,32位系统上,不支持大于2.5G的数据
    2. 对内存要求比较大,至少要保证热数据(索引,数据及系统其它开销)都能装进内存
    3. 非事务机制,无法保证事件的原子性

    适用场景
    1. 适用于实时的插入、更新与查询的需求,并具备应用程序实时数据存储所需的复制及高度伸缩性;
    2. 非常适合文档化格式的存储及查询;
    3. 高伸缩性的场景:MongoDB 非常适合由数十或者数百台服务器组成的数据库。
    4. 对性能的关注超过对功能的要求。

    (2)redis:

    优势

    1. 非常丰富的数据结构;
    2. Redis提供了事务的功能,可以保证一串 命令的原子性,中间不会被任何操作打断;
    3. 数据存在内存中,读写非常的高速,可以达到10w/s的频率。

    缺点

    1. Redis3.0后才出来官方的集群方案,但仍存在一些架构上的问题(出处);
    2. 持久化功能体验不佳——通过快照方法实现的话,需要每隔一段时间将整个数据库的数据写到磁盘上,代价非常高;而aof方法只追踪变化的数据,类似于mysql的binlog方法,但追加log可能过大,同时所有操作均要重新执行一遍,恢复速度慢;
    3. 由于是内存数据库,所以,单台机器,存储的数据量,跟机器本身的内存大小。虽然redis本身有key过期策略,但是还是需要提前预估和节约内存。如果内存增长过快,需要定期删除数据。

    适用场景

    适用于数据变化快且数据库大小可遇见(适合内存容量)的应用程序。

    (3)Hbase

    优势

    1. 存储容量大,一个表可以容纳上亿行,上百万列;
    2. 可通过版本进行检索,能搜到所需的历史版本数据;
    3. 负载高时,可通过简单的添加机器来实现水平切分扩展,跟Hadoop的无缝集成保障了其数据可靠性(HDFS)和海量数据分析的高性能(MapReduce);
    4. 在第3点的基础上可有效避免单点故障的发生。(使用zookeeper实现该功能)

    缺点

    1. 基于Java语言实现及Hadoop架构意味着其API更适用于Java项目;
    2. node开发环境下所需依赖项较多、配置麻烦(或不知如何配置,如持久化配置),缺乏文档;
    3. 占用内存很大,且鉴于建立在为批量分析而优化的HDFS上,导致读取性能不高;
    4. API相比其它 NoSql 的相对笨拙。

    适用场景

    1. bigtable类型的数据存储;
    2. 对数据有版本查询需求;
    3. 应对超大数据量要求扩展简单的需求。

    转自:https://blog.csdn.net/u011127348/article/details/79172507

  • 相关阅读:
    springboot项目创建父级依赖
    springboot整合测试
    springboot中使用RedisTemplate实现redis数据缓存
    springboot整合redis
    springboot整合shiro
    配置 maven 环境变量
    虚拟机和主机之间一系列工具包,开启双向复制粘贴后导致的内存占用问题
    mysql服务无法启动的问题
    Linux学习遇到的问题(权限问题:例如无法创建目录"**": 权限不够"等等)
    Windows 10 配置Git 环境变量(还有:安装git后,鼠标右键没有“git bush here”)
  • 原文地址:https://www.cnblogs.com/837634902why/p/11449189.html
Copyright © 2020-2023  润新知