內容簡介
在使用Apache Hadoop設計端到端數據管理解決方案時獲得專傢級指導。當其他很多渠道還停留在解釋Hadoop生態係統中該如何使用各種紛繁復雜的組件時,這本專注實踐的書已帶領你從架構的整體角度思考,它對於你的特彆應用場景而言是必不可少的,將所有組件緊密結閤在一起,形成完整有針對性的應用程序。
為瞭增強學習效果,《Hadoop應用架構(影印版 英文版)》第二部分提供瞭各種詳細的架構案例.涵蓋部分常見的Hadoop應用場景。
無論你是在設計一個新的Hadoop應用還是正計劃將Hadoop整閤到現有的數據基礎架構中,《Hadoop應用架構(影印版 英文版)》都將在這整個過程中提供技巧性的指導。
使用Hadoop存放數據和建模數據時需要考慮的要素 在係統中導入數據和從係統中導齣數據的實踐指導 數據處理的框架,包括MapReduce、Spark和Hive 常用Hadoop處理模式,例如移除重復記錄和使用窗口分析 Giraph,GraphX以及其他Hadoop上的大圖片處理工具 使用工作流協作和調度工具,例如Apache Oozie 使用Apache Storm、Apache Spark Streaming和Apache Flume處理準實時數據流 點擊流分析、欺詐防止和數據倉庫的架構實例
目錄
Foreword
Preface
Part Ⅰ. Architectural Considerations for Hadoop Applications
1. Data Modeling in Hadoop
Data Storage Options
Standard File Formats
Hadoop File Types
Serialization Formats
Columnar Formats
Compression
HDFS Schema Design
Location of HDFS Files
Advanced HDFS Schema Design
HDFS Schema Design Summary
HBase Schema Design
Row Key
Timestamp
Hops
Tables and Regions
Using Columns
Using Column Families
Time-to-Live
Managing Metadata
What Is Metadata?
Why Care About Metadata?
Where to Store Metadata?
Examples of Managing Metadata
Limitations of the Hive Metastore and HCatalog
Other Ways of Storing Metadata
Conclusion
2. Data Movement
Data Ingestion Considerations
Timeliness of Data Ingestion
Incremental Updates
Access Patterns
Original Source System and Data Structure
Transformations
Network Bottlenecks
Network Security
Push or Pull
Failure Handling
Level of Complexity
Data Ingestion Options
File Transfers
Considerations for File Transfers versus Other Ingest Methods
Sqoop: Batch Transfer Between Hadoop and Relational Databases
Flume: Event-Based Data Collection and Processing
Kafka
Data Extraction
Conclusion
3. Processing Data in Hadoop
MapReduce
MapReduce Overview
Example for MapReduce
When to Use MapReduce
Spark
Spark Overview
Overview of Spark Components
Basic Spark Concepts
Benefits of Using Spark
Spark Example
When to Use Spark
Abstractions
Pig
Pig Example
When to Use Pig
Crunch
Crunch Example
When to Use Crunch
Cascading
Cascading Example
When to Use Cascading
Hive
Hive Overview
Example of Hive Code
When to Use Hive
Impala
Impala Overview
Speed-Oriented Design
Impala Example
When to Use Impala
Conclusion
4. Common Hadoop Processing Patterns
Pattern: Removing Duplicate Records by Primary Key
Data Generation for Deduplication Example
Code Example: Spark Deduplication in Scala
Code Example: Deduplication in SQL
Pattern: Windowing Analysis
Data Generation for Windowing Analysis Example
Code Example: Peaks and Valleys in Spark
Code Example: Peaks and Valleys in SQL
Pattern: Time Series Modifications
Use HBase and Versioning
Use HBase with a RowKey of RecordKey and StartTime
Use HDFS and Rewrite the Whole Table
Use Partitions on HDFS for Current and Historical Records
Data Generation for Time Series Example
Code Example: Time Series in Spark
Code Example: Time Series in SQL
Conclusion
5. Graph Processing on Hadoop
What Is a Graph?
What Is Graph Processing?
How Do You Process a Graph in a Distributed System?
The Bulk Synchronous Parallel Model
BSP by Example
Giraph
Read and Partition the Data
Batch Process the Graph with BSP
Write the Graph Back to Disk
Putting It All Together
When Should You Use Giraph?
GraphX
Just Another RDD
GraphX Pregel Interface
vprog0
sendMessage0
mergeMessage0
Which Tool to Use?
Conclusion
6. Orchestration
Why We Need Workflow Orchestration
The Limits of Scripting
The Enterprise Job Scheduler and Hadoop
Orchestration Frameworks in the Hadoop Ecosystem
Oozie Terminology
Oozie Overview
Oozie Workflow
Workflow Patterns
Point-to-Point Workflow
Fan- Out Workflow
Capture-and-Decide Workflow
Parameterizing Workflows
Classpath Definition
Scheduling Patterns
Frequency Scheduling
Time and Data Triggers
Executing Workflows
Conclusion
7. Near-Real-Time Processing with Hadoop
Stream Processing
Apache Storm
Storm High-Level Architecture
Storm Topologies
Tuples and Streams
Spouts and Bolts
Stream Groupings
Reliability of Storm Applications
Exactly-Once Processing
Fault Tolerance
Integrating Storm with HDFS
Integrating Storm with HBase
Storm Example: Simple Moving Average
Evaluating Storm
Trident
Trident Example: Simple Moving Average
Evaluating Trident
Spark Streaming
Overview of Spark Streaming
Spark Streaming Example: Simple Count
Spark Streaming Example: Multiple Inputs
Spark Streaming Example: Maintaining State
Spark Streaming Example: Windowing
Spark Streaming Example: Streaming versus ETL Code
Evaluating Spark Streaming
Flume Interceptors
Which Tool to Use?
Low-Latency Enrichment, Validation, Alerting, and Ingestion
NRT Counting, Rolling Averages, and Iterative Processing
Complex Data Pipelines
Conclusion
Part Ⅱ. Case Studies
8. Clickstream Analysis
Defining the Use Case
Using Hadoop for Clickstream Analysis
Design Overview
Storage
Ingestion
The Client Tier
The Collector Tier
Processing
Data Deduplication
Sessionization
Analyzing
Orchestration
Conclusion
9. Fraud Detection
Continuous Improvement
Taking Action
Architectural Requirements of Fraud Detection Systems
Introducing Our Use Case
High-Level Design
Client Architecture
Profile Storage and Retrieval
Caching
HBase Data Definition
Delivering Transaction Status: Approved or Denied?
Ingest
Path Between the Client and Flume
Near-Real-Time and Exploratory Analytics
Near-Real-Time Processing
Exploratory Analytics
What About Other Architectures?
Flume Interceptors
Kafka to Storm or Spark Streaming
External Business Rules Engine
Conclusion
10. Data Warehouse
Using Hadoop for Data Warehousing
Defining the Use Case
OLTP Schema
Data Warehouse: Introduction and Terminology
Data Warehousing with Hadoop
High-Level Design
Data Modeling and Storage
Ingestion
Data Processing and Access
Aggregations
Data Export
Orchestration
Conclusion
A. Joins in Impala
Index
精彩書摘
《Hadoop應用架構(影印版 英文版)》:
Includes everything required for Hadoop applications to run,except data,Thisincludes JAR files,Oozie workflow definitions,Hive HQL files,and more.Theapplication code directory/app is used for application artifacts such as JARs forOozie actions or Hive user—defined functions(UDFs).It is not always necessaryto store such application artifacts in HDFS.but some Hadoop applications suchas Oozie and Hive require storing shared code and configuration on HDFS so itcan be used by code executing on any node of the cluster.This directory shouldhave a subdirectory for each group and application,similar to the structure usedin/etl.For a given application(say,Oozie),you would need a directory for eachversion of the artifacts you decide to store in HDFS,possibly tagging,via a symlink in HDFS,the latest artifact as latest and the currently used one as current.The directories containing the binary artifacts would be present under these versioned directories.This will look similar to:/appkgroup>kapplication>/< ver_sion >/< artrfact directory >/< artifact >.To continue our previous example,the JARfor the latest build of our aggregate preferences process would be in a directorystructure like/app/BI/clickstream/latest/aggregate—preferences/uber—aggregate—preferences.jar.
……
Hadoop應用架構(影印版 英文版) [Hadoop Application Architectures] 下載 mobi epub pdf txt 電子書 格式
Hadoop應用架構(影印版 英文版) [Hadoop Application Architectures] 下載 mobi pdf epub txt 電子書 格式 2024
Hadoop應用架構(影印版 英文版) [Hadoop Application Architectures] mobi epub pdf txt 電子書 格式下載 2024