zoukankan      html  css  js  c++  java
  • 云计算学习笔记Hadoop简介,hadoop实现原理,NoSQL介绍...与传统关系型数据库对应关系,云计算面临的挑战

    1、Hadoop简介

    1、hadoop的诞生

    l  Nutch和Lucene之父Doug Cutting在2006年完成Hadoop项目。

    l  Hadoop并不是一个单词,它来源于Doug Cutting小儿子对所玩的小象玩具牙牙学语的称呼。就像是google也是由小孩子命名一样。

    l  后又经过5年的开发,hadoop在所有云计算系统是稳居第一。

    l  Hadoop目前使用最广泛的版本为hadoop-0.20版本。目前最新版本为hadoop-1.03

    l  Hadoop运行在Linux系统中。在windows上安装可使用cgywin模拟linux环境。

    2、hadoop的组成

    l  hadoop Common – 是hadoop的核心,包括文件系统、远程调用RPC的序列化函数。

    l  HDSF : 提供高吞吐量的可靠分布式文件系统是 GFS的开源实现。

    •   Hadoop的文件系统。必须通过hadoop  fs 命令来读取。支持分布式。

    l  MapReduce : 大型分布式数据处理模型,是Google MapReduce的开源实现。

    •   合并/计算模型。

    l  其他相关组成:

    •    Hbase:结构化分部式数据库。BigTable的开源实现。

    •    Hive:提供摘要和查询功能的数据仓库。

    •    Cassandra:由Facebook开发分布式数据仓库。目前已经捐献给apache。且apache已经将Cassandra应用到了各种云计算系统中。

    谁在用hadoop:

    l  facebook

    l  淘宝

    l  360

    l  京东

    l  yahoo

    l  google

    Master:主节点,相当于项目经理

    Slave:从节点相当于PG

    Hadoop只能运行在linux系统上:

    在linux系统上装JVM虚拟机,然后,上面运行了三个进程

    SecondaryNameNode,Jobtracter,NameNode这三个进程,这三个都是java进程

    其中,NameNode是最重要的一个java进程,他决定了主节点,在从节点上没有这个进程

    SecondaryNameNode相当于NameNode的秘书,协助NameNode完成工作, Jobtracter任务跟踪进程,用来跟踪任务

    并且把任务交给从节点.

    可以看到通常应用都会有一个主节点和一个从节点,并且从节点中也有两个java进程,因为在装有从节点的服务器上,也装的是linux系统,在linux系统上装有jvm,然后跑了两个java进程,一个是: Jobtracter,另一个是:DataNode数据节点,这个进程用来处理和数据有关的任务.注意在hadoop系统中,只有一个主节点,其他的都属于从节点.

    各节点介绍:       

    l  NameNode:这是hadoop的守护进程(注意是进程JVM)。负责记录文件是如何分割成数据块,以及这些数据块分别存储到哪些数据节点上。对内存进行集中管理。NameNode在整个hadoop中只有一个。一旦NameNode服务器宕机,整个系统将无法运行。

    l  DataNode:集群中的每个从服务器都运行一个DataNode后台程序。这个后台程序负责将HDFS数据块写到本地的文件系统。

    l  Secondary NomeNode:用来监控HDFS状态的辅助后台程序。如保存NameNode的快照。

    l  JobTracker:用户连接应用程序和hadoop。每一个hadoop集群中只一个 JobTracker,一般它运行在Master节点上。

    l  TaskTracker:负责与DataNode进行结合。

    l  云计算目前的困境

    对于“云计算”,业界已经为之争论了不止一年,IBM、微软、Google等产业大哥们也各自运功,以“云计算”作为获得未来产业主动权的阵地。

    作为消费者,我一直觉得“云计算”是未来的IT行业的发展趋势,但是:“云计算”何时才能从云端到地面?

    关于“云计算”技术标准和发展方向的争论依然此起彼伏,我们却已经悄然步入“云计算”的年代。

    当我们用Google的在线Office编辑文档的时候,当我们随时在网上更新自己博客、甚至用手机上传照片的时候,当企业用在线租赁的软件在处理公司财务的时候……

    NoSQL综述

    l                大数据时代

    l   关系数据库的瓶颈

    l   NoSQL的优势

    l   CAP理论

    l   NoSQL数据模型及分类

    l   NoSQL应用现状

    l   重点介绍几个NoSQL

    l  一、大数据时代

    l    随着网民参与互联网产品和应用的程度越来越深,互联网将更加智能,互联网的数据量也将呈爆炸式增长

    一、大数据时代

    •       大交易数据:来自电商的数据,包括B2B、B2C、C2C、团购等

    •       大交互数据:来自社交网络的数据,SNS、微博等

    •      两类数据的有效融合将是大势所趋,这种融合更能增强企业的商业洞察力

    •       大数据的特征

    3V——Volume(海量)、Variety(多样)、Velocity(实时)

    •       海量——数据量巨大,对TB、PB数据级的处理, 已经成为基本配置。

    •       多样——处理多样性的数据类型,结构化数据和非结构化数据,能处理Web数据,能处理语音数据甚至是图像、视频数据。

    •      实时——在客户每次浏览页面,每次下订单的过程中都存在,都会需要对用户进行实时的推荐,决策已经变得实时

    •       大数据时代下的系统需求

    •       High performance –高并发读写的需求

         高并发、实时动态获取和更新数据

    •       Huge Storage –海量数据的高效率存储和访问的需求

         类似SNS网站,海量用户信息的高效率实时存储和查询

    SNS,全称Social Networking Services,即社会性网络服务,专指旨在帮助人们建立社会性网络的互联网应用服务。也指社会现有已成熟普及的信息载体,如短信SMS服务。SNS的另一种常用解释:全称Social Network Site,即“社交网站”或“社交网”。

     

    •       High Scalability && High Availability –高可扩展性和高可用性的需求

         需要拥有快速横向扩展能力、提供7*24小时不间断服务

    二、关系数据库的瓶颈

    •       关系数据库如何应对大数据

    •       High performance –高并发读写的需求

         问题:

    数据库读写压力巨大,

    硬盘IO无法承受

         解决方案:

    Master-Slave,主从分离

    分库、分表,缓解写压力,增强读库的可扩展性

    •       关系数据库如何应对大数据

    •       Huge Storage –海量数据的高效率存储和访问的需求

         问题:

    存储记录数量有限,

    SQL查询效率极低

         解决方案:

    分库、分表,缓解数据增长压力

    •       关系数据库如何应对大数据

    •       High Scalability && High Availability –高可扩展性和高可用性的需求

         问题:

    横向扩展艰难,无法通过快速增加服务器节点实现,

    系统升级和维护造成服务不可用

         解决方案:

    Master-Slave,增强读库的可扩展性

    MMM——Master-Master Replication Manager for MySQL

    •       解决方案的问题

    1.分库分表缺点:

    (1)受业务规则影响,需求变动导致分库分表的维护复杂

    (2)系统数据访问层代码需要修改

    2.Master-Slave缺点

    (1)Slave实时性的保障,对于实时性很高的场合可能需要做一些处理

    (2)高可用性问题,Master就是那个致命点,容易产生单点故障

    3. MMM缺点

        本身扩展性差,一次只能一个Master可以写入,只能解决有限数据量下的可用性

     

    三、NoSQL的优势

    •       易扩展

           NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。甚至有多种NoSQL之间的整合。

    •       灵活的数据模型

            NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。

    •       高可用

            NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。比如Cassandra,HBase模型,通过复制模型也能实现高可用。

    •       大数据量,高性能

            NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。

    一般MySQL使用Query Cache,每次表的更新Cache就失效,是一种大粒度的Cache,在针对web2.0的交互频繁的应用,Cache性能不高。而NoSQL的Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说就要性能高很多了。

  • 相关阅读:
    作业 20180918-2 每周例行报告
    将Python文件打包为exe文件,并在控制台运行之简易教程
    作业20181011-1 每周例行报告
    用WebView加载本地图片的方法
    ios webview自适应实际内容高度4种方法
    UIWebView加载本地网页与图片的方法
    nonatomic与atomic的区别与作用
    @dynamic与@synthesize的区别与用法
    xib与storyboard的区别
    iOS与H5的交互
  • 原文地址:https://www.cnblogs.com/smileallen/p/3391541.html
Copyright © 2011-2022 走看看