Airbnb的数据基础架构 | 36大数据



Airbnb的数据基础架构 | 36大数据

第1部分:数据基础设施的背后哲学 了解我们数据基础设施的一些非正式理念: 确保它能够扩展:我们发现数据与业务不是线性增长,但随着技术员工建立新的产品和在业务采取新方式后,将超线性增长。 留有一定的余量:我们超额认购资源如集群,促进探索的文化。对基础设施团队实现资源利用最大化还高兴的太早,但我们的假设是,在存储中发现了一个新的商业机会将抵消了这些额外的机器费用。 第2部分:基础设施概况 这里数据源包含用户的活动事件数据和快照源数据,发送到"金"集群存储,并开始运行我们的提取,转换和加载(ETL)。在此步骤中,我们针对业务逻辑,汇总表格,并执行数据质量检查。 在上面的图中,有"金"和"银"两个独立集群,我们将在后面详细描述。分离原因是保证计算和存储资源的隔离,如果一个挂了可以做灾难恢复。这种架构提供了一个理想环境,最重要的工作严格保障SLA(服务保证协议),避免资源密集型即席查询的影响。我们把'银'集群作为一个生产环境,但是放宽保证,可以承受资源密集型查询。 通过两个集群我们获得隔离力量,在管理大量的数据复制并维持动态系统之间有同步的成本。"金"是我们的真正来源,我们将复制"金"数据的每一位到"银"。"银"集群上生成的数据不会被复制回"金",所以你可以认为这是"银"作为一个超集集群,是单向复制方案。因为我们的很多分析和报告从"银"簇发,当"金"有新数据产生,我们尽快复制它到"银",去保证其他工作刻不容缓运行。更关键的是,如果我们更新预先存在的"金"集群上的数据,我们必须小心的更新并同步传播给"银"。这种复制优化问题并没有一个开源的很好解决方案,所以我们建立了一套新的工具,我们会以后更详细地介绍。 我们改进HDFS已经取得了很大效果,并更准确地用Hive管理表,作为我们中心源的数据。仓库的质量和完整性取决于数据不变的,继承数据可通过重新推导计算的 �C 使用分区Hive表对这个目标非常重要。此外,我们不鼓励数据系统的扩散,不希望维护单独的基础设施,比如我们的源数据和我们终端用户报告。根据我们的经验,这些中间系统混淆真理的来源,增加ETL的管理负担,难以跟踪从原始数据一路上来自的迭代指标。我们不跑Oracle,Teradata,Vertica,Redshift等,而是使用Presto对所有Hive管理的表做即席查询。我们都希望在不久的将来,联通Presto和Tableau。

Read full article from Airbnb的数据基础架构 | 36大数据


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts