Trang 3
What is Big Data? ● Big data usually includes data sets with sizes beyond the ability of commonly used software tools to capture, curate, manage, and process data within a tolerable elapsed time. ● Big data "size" is a constantly moving target, as of 2012 ranging from a few dozen terabytes to many petabytes of data. ● Big data is a set of techniques and technologies that require new forms of integration to uncover large hidden values from large datasets that are diverse, complex, and of a massive scale. (From Wikipedia) 3
Trang 4
What is Big Data? ● Volume. ● Value. ● Variety. ● Velocity - the speed of generation of data. ● Variability - the inconsistency which can be shown by the data at times. ● Veracity - the quality of the data being captured can vary greatly. ● Complexity - data management can become a very complex process, especially when large volumes of data come from multiple sources. (From Wikipedia) 4
Trang 7
Map/Reduce ● MapReduce is a framework for processing parallelizable problems across huge datasets using a large number of computers (nodes), collectively referred to as a cluster. ● Map step: Each worker node applies the "map()" function to the local data, and writes the output to a temporary storage. A master node orchestrates that for redundant copies of input data, only one is processed. ● Shuffle step: Worker nodes redistribute data based on the output keys (produced by the "map()" function), such that all data belonging to one key is located on the same worker node. ● Reduce step: Worker nodes now process each group of output data, per key, in parallel. (From Wikipedia) 7
Trang 10
Map/Reduce – Parallel Computing ● No dependency among data ● Data can be split into equal-size chunks ● Each process can work on a chunk ● Master/worker approach – Master: ● Initializes array and splits it according to # of workers ● Sends each worker the sub-array ● Receives the results from each worker – Worker: ● Receives a sub-array from master ● Perfoms processing 10 ● Sends results to master
Trang 13
Map/Reduce History ● Invented by Google: ● Inspired by functional programming languages map and reduce functions ● Seminal paper: Dean, Jeffrey & Ghemawat, Sanjay (OSDI 2004), "MapReduce: Simplified Data Processing on Large Clusters" ● Used at Google to completely regenerate Google's index of the World Wide Web. ● It replaced the old ad-hoc programs that updated the index and ran the various analysis ● Uses: ● distributed pattern-based searching, distributed sorting, web link-graph reversal, term-vector per host, web access log stats, inverted index construction, document clustering, machine learning, statistical machine translation ● Apache Hadoop: Open source implementation matches Google’s specifications ● Amazon Elastic MapReduce running on Amazon EC2 13
Trang 14
Amazon Elastic MapReduce Source: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-what-is-emr.html 14
Trang 17
Apache Spark ● Apache Spark™ is a fast and general open-source engine for large-scale data processing. ● Includes the following libraries: SPARK SQL, SPARK Streaming, MLlib (Machine Learning) and GraphX (graph processing). ● Spark capable to run programs up to 100x faster than Hadoop MapReduce in memory, or 10x faster on disk. ● Spark can run on Apache Mesos or Hadoop 2's YARN cluster manager, and can read any existing Hadoop data. ● Written in Scala language (a ‘Java’ like, executed in Java VM) ● Apache Spark is built by a wide set of developers from over 50 companies. Since the project started in 2009, more than 400 developers have contributed to Spark. 17
Trang 19
Spark Cluster ● Spark applications run as independent sets of processes on a cluster, coordinated by the SparkContext (SC) object in your main . ● SC can connect to several types of resource cluster managers (either Spark’s own standalone cluster manager or Mesos/YARN), which allocate resources across applications. ● Once connected, Spark acquires executors on nodes in the cluster, which are worker processes that run computations and store data for your application. Next, it sends your application code (JAR or Python files) to the executors. Finally, SC sends tasks for the executors to run. 19
Hiển thị 19 trang đầu. Tải tài liệu để xem đầy đủ.
Bình luận (0)
Chưa có bình luận nào. Hãy là người đầu tiên!