zoukankan      html  css  js  c++  java
  • 大数据笔记

    1.Hadoop是什么?为什么要使用Hadoop?平常如何使用Hadoop完成工作?

    Hadoop是一个大数据开源框架。The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models. It is designed to scale up from single servers to thousands of machines, each offering local computation and storage.

    The project includes these modules:

    Hadoop Common: The common utilities that support the other Hadoop modules.
    Hadoop Distributed File System (HDFS™): A distributed file system that provides high-throughput access to application data.
    Hadoop YARN: A framework for job scheduling and cluster resource management.
    Hadoop MapReduce: A YARN-based system for parallel processing of large data sets.
    Hadoop Ozone: An object store for Hadoop.
    Hadoop Submarine: A machine learning engine for Hadoop.

    Latest version:2.9.2

    1. Open Source

    Apache Hadoop is an open source project. It means its code can be modified according to business requirements.

    2. Distributed Processing

    As data is stored in a distributed manner in HDFS across the cluster, data is processed in parallel on a cluster of nodes.

    3. Fault Tolerance

    This is one of the very important features of Hadoop. By default 3 replicas of each block is stored across the cluster in Hadoop and it can be changed also as per the requirement. So if any node goes down, data on that node can be recovered from other nodes easily with the help of this characteristic. Failures of nodes or tasks are recovered automatically by the framework. This is how Hadoop is fault tolerant.

    4. Reliability

    Due to replication of data in the cluster, data is reliably stored on the cluster of machine despite machine failures. If your machine goes down, then also your data will be stored reliably due to this characteristic of Hadoop.

    5. High Availability

    Data is highly available and accessible despite hardware failure due to multiple copies of data. If a machine or some hardware crashes, then data will be accessed from another path.

    6. Scalability

    Hadoop is highly scalable in the way new hardware can be easily added to the nodes. This feature of Hadoop also provides horizontal scalability which means new nodes can be added on the fly without any downtime.

    用Python写MapReduce程序。

    HDFS,在由普通PC组成的集群上提供高可靠的文件存储,通过将块保存多个副本的办法解决服务器或硬盘坏掉的问题。

    MapReduce,通过简单的Mapper和Reducer的抽象提供一个编程模型,可以在一个由几十台上百台的PC组成的不可靠集群上并发地,分布式地处理大量的数据集,而把并发、分布式(如机器间通信)和故障恢复等计算细节隐藏起来。而Mapper和Reducer的抽象,又是各种各样的复杂数据处理都可以分解为的基本元素。这样,复杂的数据处理可以分解为由多个Job(包含一个Mapper和一个Reducer)组成的有向无环图(DAG),然后每个Mapper和Reducer放到Hadoop集群上执行,就可以得出结果。

    Hadoop缺点:

    2.Storm是什么?为什么要使用Storm?Storm如何使用?

    Apache Storm是一个分布式实时大数据处理系统。Storm设计用于在容错和水平可扩展方法中处理大量数据。它是一个流数据框架,具有最高的摄取率。虽然Storm是无状态的,它通过Apache ZooKeeper管理分布式环境和集群状态。它很简单,您可以并行地对实时数据执行各种操作。

    storm的网络直传、内存计算,其时延必然比hadoop的通过hdfs传输低得多;当计算模型比较适合流式时,storm的流式处理,省去了批处理的收集数据的时间;因为storm是服务型的作业,也省去了作业调度的时延。所以从时延上来看,storm要快于hadoop。

    如何学习Storm?(适用于其他工具)

    1、入门
    安装storm集群,运行示例工程,明白什么是流处理,明白spout,bolt。
    手动实现Storm客户端API,自己编写场景实现。
    2、上手
    了解Storm的Bolt,spout运行过程,storm等进程启动过程
    可以参照JStorm加深对Storm的理解。
    了解Storm周边,比如Kafka等组件
    3、深入
    学习coljure
    阅读storm代码
    深入学习其他CEP产品
    4、如何参与社区活动
    订阅社区邮件,user列表和dev列表,查看用户讨论内容,回答用户疑问。
    查看社区JIRA,提交或者解决问题,或者对问题发表自己的看法。

    为什么使用Storm?

    • 数据流处理:正如上述的例子,Storm不像其他流处理系统,因为Storm不需要中间队列。
    • 持续计算:持续地向客户端发送数据,它们可以实时的更新以及展现数据,比如网站指标。
    • 分布式远程过程调用:轻松地并行化CPU密集型操作。

    写java脚本执行一些功能

    3.Spark是什么?为什么要使用Spark?Hadoop和Spark的对比?平常如何使用Spark完成工作?

    类Hadoop MapReduce的通用并行框架

    Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。

    Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。

    spak提出了分布式的内存抽象,RDD(弹性分布式数据集)支持工作集的应用,也具有数据流模型的特点,例如,自动容错,位置感知,可伸缩性和可扩展性,并且RDD支持多个查询时,显示的将工作集缓存到内存中,后续查询时能够重用工作集的结果。这样与hadoop相比,就极大的提高了速度。
    RDD提供了共享内存模型,RDD本身只记录分区的集合,只能通过其他的RDD通过转换例如,map,join等操作来创建新的RDD,而RDD并不需要检查点操作,为什么?因为前后之间的RDD是有”血统”关系的,其核心原因是,每个RDD包含了从其他RDD计算出分区的所有内容,并且这个计算不是从头开始计算,而是仅仅指的是从上一步开始计算得到即可,这也就实现了工作集的复用。
    Spark周围的SQL,机器学习,图计算都是基于此构建出来的,使得Spark成为一体化的大数据平台,不仅降低了各个开发,运维的成本,也提高了性能。

    Spark为迭代式数据处理提供更好的支持。每次迭代的数据可以保存在内存中,而不是写入文件。

    Spark的优势不仅体现在性能提升上的,Spark框架为批处理(Spark Core),交互式(Spark SQL),流式(Spark Streaming),机器学习(MLlib),图计算(GraphX)提供一个统一的数据处理平台,这相对于使用Hadoop有很大优势。

    如果说,MapReduce是公认的分布式数据处理的低层次抽象,类似逻辑门电路中的与门,或门和非门,那么Spark的RDD就是分布式大数据处理的高层次抽象,类似逻辑电路中的编码器或译码器等。

    4.Flume是什么?为什么要使用Flume?平常如何使用Flume完成工作?

     

    Apache Flume 是一个分布式,可靠且可用的系统,用于有效地从许多不同的源收集、聚合和移动大量日志数据到一个集中式的数据存储区。

    Flume 的使用不只限于日志数据。因为数据源可以定制,flume 可以被用来传输大量事件数据,这些数据不仅仅包括网络通讯数据、社交媒体产生的数据、电子邮件信息等等。

    Apache Flume 是 Apache 基金会的顶级项目,在加入 Apache 之前由 cloudera 公

    5.Kafka是什么?为什么要使用Kafa?平常如何使用Kafka完成工作?

     

    6.Hbase是什么?为什么要使用Habse?平常如何使用Hbase完成工作?

     

    7.Kudu是什么?为什么要使用Kudu?平常如何使用Kudu完成工作?

     

    8.Cloudera Manager是什么?为什么要使用Cloudera?Cloudera Manager如何使用?

  • 相关阅读:
    接口内容小结
    接口的静态方法与私有方法
    接口的默认方法
    发红包O
    抽象
    《大道至简》读后感
    重写
    继承中的二义性问题
    数学应用
    继承
  • 原文地址:https://www.cnblogs.com/earsonlau/p/11355401.html
Copyright © 2011-2022 走看看