
Explore Apache HBase, an open source, horizontally scalable, low latency data store for random access with strong per-row ACID guarantees, built on ZooKeeper and HDFS for real-time serving and analytics.
Jonathan Shea leads Apache HBase engineering at Cloudera, sharing a decade of feature development, field education, and open source big data expertise across Hadoop World and Apache Flume.
Trace the history of HBase from Google's Bigtable origins to its Apache project rise, highlighting major deployments and features like coprocessors and replication.
Explore when to use HBase over relational databases, focusing on scaling challenges, vertical vs horizontal growth, replication, sharding, denormalization, and the tradeoffs of reads and writes.
Evaluate whether to use HBase or Hadoop for big data by examining data types (entity, event, time-series), latency needs (milliseconds to seconds), and whether workloads are analytic or operational.
Install and configure the Java runtime environment to run base Java servers. Download the JRE from Java.com, untar it on Ubuntu, set JAVA_HOME and PATH, then verify the JVM runs.
Introduce Apache HBase and guide you to decide when to use it, and how to design and deploy a scalable big data application, covering basics, hands-on deployment, architecture, and archetypes.
Discover Apache HBase logical model: tables with lexicographically sorted row keys, rows of columns with byte-array values, and sparse rows enabling scalable reads and writes, governed by invariants.
Explore how HBase handles updates and deletes with per-row acid guarantees, timestamped versions, and delete markers, enabling consistent reads and durable writes.
Describe how a logical model maps to a physical on-disk layout, indexing cells by row key and timestamp to optimize reads, enabling single seeks and efficient scans.
Learn how HBase column families group related columns to optimize read performance by matching workloads and read patterns, trading off cross-row reads for faster single-user access.
Install a local HBase instance from tarballs on your laptop, ensure Java runtime, set up a symlink, run HBase in standalone mode, and verify with the web UI.
Learn how to use the HBase shell to create tables, define column families, and perform CRUD operations—put, get, scan, delete—while scripting and validating changes in the web UI.
Describe the three-layer architecture of an HBase application and use the HBase client API to perform CRUD operations while setting up a Maven project and testing the flows.
Set up your development environment for Apache HBase applications by installing the proper JDK and Maven, choosing an IDE, downloading the project from GitHub, and building with Maven.
Learn how to access and store data in HBase using the Java API, including a committer model with name, hair, beard, and Jira map, plus Put, Get, and Scan operations.
Explore unit testing for hbase data access using a mini cluster and the hbase testing utility; configure maven with junit, write tests for read/write and scan.
Build and run a web app that interacts with an HBase cluster, using a local database and a jetty handler to display and verify committers data in the browser.
Partition tables into regions and assign each region to a single region server to enable scalable read and write throughput and balancing across the cluster.
Learn how HBase ensures durability by writing to a write-ahead log (wal) and to the memstore before acknowledging clients, safeguarding against data loss during failures.
Explore strong consistency in HBase: a single row guarantees the latest value after writes, with recovery from the log and blocking reads until recovery.
Examine how the HBase write path scales by managing memory and disk through flushes, moving data from the mega-store to wall and hfile blocks for durability and fast recovery.
Understand how the HBase read path leverages an in-memory block cache to serve data from memstore and hfiles, reducing disk IO and speeding up reads.
Learn how the HBase base read path uses compaction to reduce disk seeks by consolidating multiple HFiles into a single file, lowering latency and boosting read throughput.
Explore how HBase automatically handles load imbalance through region splitting after compaction, dividing oversize regions into two, enabling the balancer to reassign regions for even reads and writes.
Learn how HBase IO ensures durability and strong consistency using a right ahead log, region servers, and region-level storage with caching, compaction, and region splits to scale.
Deploy a cloud-based hbase cluster using cloudera director on amazon web services, with secure virtual private cloud setup and automated provisioning of nodes.
Learn to deploy HBase in the cloud with Cloudera Director bootstrap, provisioning virtual machines, installing Cloudera Manager, and orchestrating Hadoop and HBase on slave nodes.
Deploy and validate a cloud-based HBase cluster with Cloudera Director and Cloudera Manager, monitor HDFS, YARN, and ZooKeeper health, and access the interface via an SSH tunnel.
Set up an ssh tunnel and a socks proxy inside the vpc to access HBase cluster nodes, then configure a pac file for browser access to Cloudera manager.
Understand how a distributed hbase deployment uses a meta table to map regions to region servers, enabling efficient client lookups; the base master manages table operations and load balancing.
Discover HBase application archetypes and the Rocchi design patterns. Learn how to craft an efficient schema with row keys and column families, and balance workloads across clusters and tradeoffs.
Explore the simple entities archetype, a one row per entity key-value store for real-time reads/writes, scalable across billions of entities with optional key hashing for distribution.
Explore the linked entities archetype, an extension of simple entities that uses sparseness and two column families for links and properties in large graphs.
Explains the compound archetype for coupled and time-series entities, using an entity-time compound key to store histories and enable efficient forward scans in hbase.
This wrap up summarizes building applications with Apache HBase, focusing on scalability, strong consistency, and low latency, the simple, linked, and compound patterns, WAL durability, and AWS deployment.
In this Building Apache HBase Applications training course, expert author Jonathan Hsieh will teach you how to design and build an application using HBase's Java API. This course is designed for users that are already familiar with Hadoop. You will start by learning how to interact with HBase. From there, Jonathan will teach you how to build your first application. This video tutorial also covers the HBase data life cycle and deploying distributed HBase. Finally, you will learn about HBase application architectures, including HBase application archetypes and basic HBase tuning.
Once you have completed this computer based training course, you will have gained a solid understanding of how to build HBase applications. Working files are included, allowing you to follow along with the author throughout the lessons.