• Hadoop 1 ecosystem


    ref:http://www.bogotobogo.com/Hadoop/BigData_hadoop_Ecosystem.php

     

    Hadoop consist of two main pieces, HDFS and MapReduce

    • The HDFS is the data part of Hadoop and the HDFS server on a typical machine is called a DataNode
    • The MapReduce is the processing part of Hadoop and the MapReduce server on a typical machine is called TaskTracker

    MapReduce needs a coordinator which is called a JobTracker.

    JobTracker

      1. responsible for accepting user's job, dividing it into tasks and assigning it to individual TaskTracker. TaskTracker will run the task and 

        reports the status as it runs and completes.

      2. responsible for noticing if the TaskTracker disappears because of software failure or hardware failure. It needs to reassign the task to 

          another TaskTracker

    The NameNode takes the similar role to HDFS as the JobTracker does to the MapReduce

     

    Since the hadoop project was first started, lots of other software has been built around it. Lots of them designed to make Hadoop easier to use, people who are not programmers or are businessman can use Hadoop

    1. several open source project have been created to make it easier for people to query their data without having to write macros and reducers.

    Hive: in Hive we just write a statement which looks like standard SQL query:

    select * from ...

    The Hive interpreter truns the SQL into map reduce code, which then runs on the cluster. Facebook use it intensely.

    Pig: allows us to write code to analyse our data in a fairlry simple scripting lanaguage, rather than map reduce. 

    It is a high-level language for routing data. The code is just turned into mao reduce and run on cluster. It wirds like a compiler which translates our program into an assembly. So, the Pig does the same thing for MapReduce jobs.

    ** Though Hive and Pig are great, they are still running map reduce jobs, and can take a resonable time to run, especially over large amounts of data.

     That is why another open source project called Impala created. It was developed

    as a way to query data with SQL directly from HDFS, it does not run map reduce program. Impala is optimized for low latency queries.

    Therefore, impala queries run very faster than Hive, while Hive is optimized for running long batch processing jobs.

     Sqoop takes data from traditional relational databases such as Mirosoft SQL server and puts it in HDFS

     Flume is for streaming data into Hadoop. It injects data as it's generated by external systems

    and put it into the cluster. So if we have severs generating data continuously, we can use Flume. Like reading facebook, twitter data into HDFS

     Hbase is a real time databse, built on top of HDFS, It's colum-family stored on the Google's BigTable design.

     we need to read/write data in real time and HBase is a top-level Apache project meets that need. It provides a simple interface to our distributed data that allows incremental processing. HBase can be accessed by Hive and Pig by MapReduce and stores that information in its HDFS and it's guranteed to be reliable and durable. HBase is used for application such as Facebook messages.

     KijiSchema provides a simple Java API and comman line interface for importing, managing, and retrieving data from HBase by setting up HBase layouts using user-friendly tools including a DDL

    Hive: Hive is a data warehouse system layer built on Hadoop. It allows us to define a structure for our unstructureed 

    Big Data. With a HiveQL which is an SQL-like scripting  language, we can simplify analysis and queries.

    Hive is not a databse but uses a databse to store metadata. The data that Hive processes isstored in HDFS, Hive runs on Hadoop and 

    is NOT designed for on-line transaction processing because the latency for Hive queries is generally high. Therefore, Hive is NOT suited for real-tme queries. Hive is best suited for batch jobs over large sets of immutable data such as web logs

    Hue: is a graphical front end to quester

    Oozie: is a workflow scheduler tool it provides workflow/coordination service to manage Hadoop jobs. So, we define when we want our MapReduce jobs to run and Oozie will fire them up automatically. It also will trigger when data becomes avaliablel

    Mahout: is a library for scalable machine learing and data mining

    Avro: is a Serialization and RPC framework

    ** In fact, there are so many ecosystem projects that making them all talk to one another, and work well can be tricky

    To make installing and maintaining a cluster like this easier, a company called Cloudera, has put together a distribution of HADOOP called CDH(Cloudera distribution including a patchy HADOOP) takes all the key echosystem projects, along with Hadoop itself, and packages them together so that installation is a really easy process. It is free and open source, just like Hadoop itself, While we coild install everything from scratch, it is far easier to use CDH

    Zookeeper: allows distributed process to coordinate with each other through a shared hierarchical name sapce of data registers

    Kafka: kafka is a distributed, partitioned, replicated commit log service. It provides the functionality of a message system, but with a unique design.

    Data center orchestration - Mesos

    Mesos is built using the same principle as the linux kernal, only at different level of abstraction. The Mesos kernel runs on every machine and provides application(e.g. Hadoop, Spark, Kafka, Elastic Search) with API's for resource management and scheduling across entire datacenter and cloud environments.

  • 相关阅读:
    中国VR公司的详尽名单
    maven打包源代码sources.jar和javadoc.jar帮助文档
    中国计算机学会推荐国际学术刊物
    myhuiban会议,期刊,科研人员,计算机类会议大全
    如何写mysql的定时任务
    mysql系列命令解释
    Bootstrap 导航元素
    base64对文件进行加密
    我最在行 诗词 连续错误的
    <% %> in html
  • 原文地址:https://www.cnblogs.com/morningdew/p/5633038.html
Copyright © 2020-2023  润新知