1.1为什么需要Hadoop 

(1)数据分析者面临的问题

  – 数据日趋庞大,读写都出现性能瓶颈;

  – 用户的应用和分析结果,对实时性和响应时间 要求越来越高;

  – 使用的模型越来越复杂,计算量指数级上升。

(2)期待的解决方案

  – 解决性能瓶颈,在可见的未来不会出现新瓶颈 之前的技术可以平稳过渡,如SQL;

  – 转移成本,如软硬件成本,开发成本,技能培 养成本,维护成本

(3)关系型数据库和Hadoop的比较

课堂笔记

关系型数据库属于集中型的数据方案。

数据大小:

1PB=210GB

访问:

交互式处理—处理在线数据,实时处理,通俗一点就是一问一答的意思。

批处理—处理离线数据,举个例子,学生问老师10个问题,老师将这10个问题解决后,一次性将解答打包给学生。

更新:

一次写入多次读写—eg:百度搜索。(倒排索引)

ps:增删改查,Hadoop中没有改,当写错时,就只有直接覆盖。

另外,关系型数据库的数据结构是表,,在建好的表上增加或删除属性,成本是很大的。

结构:

怎么说呢?在传统关系型数据库Mysql中,比如学生管理系统,其中关于学生的一个表,有很多属性,Sno Sname Sage Ssex Sdept,其中,某些属性对应的属性值是null,存储时是会占空间的,而Hadoop的话,null值是不会占空间的。数据一大,那优势就体现出来了。

完整性:

范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求,满足不同程度要求的为不同范式。

换句话说,就是规则(约束),进而有了完整性一说。

因而在关系型数据库中,因为有外键的存在,在删除某个表时,要删除从表信息,才能删除主表的信息。

Hadoop就不同,它是一张大表,就没有关系型数据库的那些麻烦。

那么,问题来了,既然如此,那么我们的生活中就不需要关系型数据库了吗?

举个例子,教务系统,当中有学生的信息,老师的管理,课程的安排等等,不可能只用一张表能装下如此错综复杂的信息。因而我们生活中还是要用关系型数据库!

横向扩展:

嗯...没有图,将就了吧。想象一下,这里有个二维函数,横坐标是服务器的台数,纵坐标是性能,Hadoop和RDBMS(关系型数据库)在第一区间的函数分别是怎样的呢?前者是一个一次函数,一直上升;后者的函数先极速上升,后趋向平缓,进而无论后面增加多少台服务器,性能都趋于定值。

Hadoop思想-小鱼与鲨鱼,高富帅与屌丝

(4)集群

  • 集群的定义

  – 集群是一组相互独立的、通过高速网络互联的 计算机,它们构成了一个组,并以单一系统的 模式加以管理。

  – 一个客户与集群相互作用时,集群像是一个独 立的服务器。

  • 集群的作用

  – 在付出较低成本的情况下获得在性能、可靠性、 灵活性方面的相对较高的收益

  • 使用集群的目的

  – 提高性能(横向扩展)

  – 降低成本(买一台百万级的服务器,用分布式10万块就可以办到)

  – 提高可扩展性(加一台机器,性能呈   上升)

  – 增强可靠性(比如说一台机子宕机了)

  • 使用集群的场景

  – 科学集群

  – 负载均衡集群

  – 高可用性集群

  • 集群的构建

  – 从硬件角度来看可以分为节点机系统、通讯系 统、存储系统等

  – 软件角度则主要有操作系统、集群操作系统 (COS)、并行环境、编译环境和用户应用软件等

  • 集群的关键技术

   – 任务调度——进程迁移

(5)Hadoop体系下的分析手段

  – 主流:Java 程序

  – 海量离线数据处理技术:MapReduce

  – 分布式文件系统:HDFS

  – NoSQL(Not Only不止一个数据库的意思)数据库:Hbase

  – SQL技巧平稳:Hive

1.2Hadoop2.0生态系统 

(1)Hadoop自身包括以下内容:

  Hadoop Common: hadoop的基础

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

  Hadoop YARN: 集群任务资源管理及任务 调度的框架

  Hadoop MapReduce: 基于YARN的分布式计算

(2)与hadoop相关的产品大致上分为两大部分:

  • 数据服务(Data Services)

  – HBase: 将文件建于HDFS上的分布式KeyValue数据库 要先搭建Hadoop平台!

  – Hive: 有比较友好接口(相对来讲)的数据仓 库,它实际上是基于MapReduce的一个应用。搭建Hive之前不必要搭建Hbase,但要搭建Hadoop。

  – Pig:它使用一个叫做“Pig Latin”的东西来作为 用户交互语言,底层依然是MapReduce。它与 Hive有类似之处,都是用来做大数据处理,但 它似乎比Hive要简单一些,没有“存储”的概念 (metadata,“表”等), 接口也少。

  – HCatalog:这是一个hadoop数据管理层,你 可以用Hive, Pig , MapReduce等来存取 hadoop的数据,而不用关心这些数据是如何存 储的。

  • 运行维护(Operational Services)

  – ZooKeeper:分布式应用协调器。只能搭建奇数个集群。

  • 其他相关产品/项目:

  – Mahout: 机器学习和数据挖掘

  – Spark:内存计算

  – Storm:实时计算

ps:现在其余两个已经被Spark取代。

(3)Hadoop2.0中各种产品的相互关系

灰色的Hadoop自带,绿色的是与Hadoop相关的产品。

Amban:运维工具

Avro:某种协议

Cassandra:最最专业的NoSQL工具

Oozie:向Hadoop提交数据

三大主流的数据库:Cassandra;芒果;Hbase。

hadoop第二课的更多相关文章

  1. 马士兵hadoop第二课:hdfs集群集中管理和hadoop文件操作

    马士兵hadoop第一课:虚拟机搭建和安装hadoop及启动 马士兵hadoop第二课:hdfs集群集中管理和hadoop文件操作 马士兵hadoop第三课:java开发hdfs 马士兵hadoop第 ...

  2. 马士兵hadoop第二课:hdfs集群集中管理和hadoop文件操作(转)

    马士兵hadoop第一课:虚拟机搭建和安装hadoop及启动 马士兵hadoop第二课:hdfs集群集中管理和hadoop文件操作 马士兵hadoop第三课:java开发hdfs 马士兵hadoop第 ...

  3. Hadoop第二课:Hadoop集群环境配置

    一.Yum配置 1.检查Yum是否安装 rpm -qa|grep yum 2.修改yum源,我使用的是163的镜像源(http://mirrors.163.com/),根据自己的系统选择源, #进入目 ...

  4. 马士兵hadoop第一课:虚拟机搭建和安装hadoop及启动(转)

    马士兵hadoop第一课:虚拟机搭建和安装hadoop及启动 马士兵hadoop第二课:hdfs集群集中管理和hadoop文件操作 马士兵hadoop第三课:java开发hdfs 马士兵hadoop第 ...

  5. CI(CodeIgniter)框架入门教程——第二课 初始MVC

    本文转载自:http://www.softeng.cn/?p=53 今天的主要内容是,使用CodeIgniter框架完整的MVC内容来做一个简单的计算器,通过这个计算器,让大家能够体会到我在第一节课中 ...

  6. OpenCV 第二课 认识图像的存储结构

    OpenCV 第二课 认识图像的存储结构 Mat Mat 类包含两部分,矩阵头和矩阵体.矩阵头包含矩阵的大小,存储方式和矩阵体存储空间的指针.因此,Mat中矩阵头的大小是固定的,矩阵体大小是不定的. ...

  7. Kali Linux Web 渗透测试视频教程— 第二课 google hack 实战

    Kali Linux Web 渗透测试— 第二课 代理简介 文/玄魂 课程地址: http://edu.51cto.com/course/course_id-1887.html 目录 shellKal ...

  8. 【第二课】深入理解Handler

    简要讲解Handler是做什么的 我们知道,在Android中,app启动会启动一个进程一个线程——UI线程,UI线程是主线程,并且不允许这个线程阻塞超过5秒,一旦超过5秒就会ANR. 所以较为耗时的 ...

  9. ruby代码重构第二课

    (文章都是从我的个人主页上粘贴过来的, 大家也可以访问我的主页 www.iwangzheng.com) 在第一课里提取出了相通的代码,第二课里就把常量提取出来吧 一般把常量的定义写的对应的app/mo ...

随机推荐

  1. ElasticSearch Kibana 和Logstash 安装x-pack记录

    前言 最近用到了ELK的集群,想想还是用使用官方的x-pack的monitor功能对其进行监控,这里先上图看看: 环境如下: 操作系统: window 2012 R2 ELK : elasticsea ...

  2. cisco模拟器GNS3和虚拟机VMware的整合

    微软和思科环境: 在思科认证的学习中,我们需要用到许多类的模拟器,但这些模拟器并不能够更真实的模拟我们的用户机在应用中所出现的现象.因此,我们借由微软的环境来更真实地体现我们所搭建的网络中的一些应用. ...

  3. sqlite不存在记录则插入数据

    问题:如下图在Sqlite数据库中存在一张Student表,现需要向表中插入数据,如果不存在同名记录则插入,否则不进行插入操作. 解答:利用not exists语句,如下: insert into [ ...

  4. 初识vue——起步

    一.目录结构: 我们经常使用的是以下几个目录: 1.assets:静态资产文件:在vue组件中,所有组件中,所有模板和CSS都会被vue-html-loader和css-loader解析,并查找资源u ...

  5. Flask從入門到入土(三)——Web表單

    Flask-WTF擴展可以把處理Web表單的過程變成一種愉悅的體驗.這個擴展對獨立的WTForms包進行了包裝,方便集成到Flask程序中. Flask-WTF及其依賴可使用pip安裝: pip in ...

  6. Codeforces785E - Anton and Permutation

    Portal Description 对一个长度为\(n(n\leq2\times10^5)\)的数列\(a\)进行\(m(m\leq5\times10^4)\)次操作,数列初始时为\(\{1,2,. ...

  7. Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十四)Redis缓存正确的使用姿势

    作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载. 简介 这是一篇关于Redis使用的总结类型文章,会先简单的谈一下缓存 ...

  8. linux web服务器及LAMP动态网站平台搭建

    (vim补:)vim另存为:x,x w 目标文件路径vim批量删除x:x,x d Web服务:基于B/S架构的web通信服务端:支持HTTP协议的网页提供程序客户端:按标记规范显示网页的浏览器程序客户 ...

  9. strcpy、strncpy与memcpy的区别与使用方法

    strcpy.strncpy.memcpy这三个C语言函数我们在主机代码编写中会很频繁的使用到,但是三个函数的区别.使用时该注意什么还是有必要说下的. 本文参考<C 标准库>编写. 一.函 ...

  10. 【Unity3D】Unity3D 让角色的头部望向鼠标

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/MouseAim.html 原理很简单,因为骨骼也是一个物体,也拥有transform那一套东西,所以可以简单地用L ...