hbase operations & best practices

49
HBase Operations & Best Practices Venu Anuganti July 2013 http://scalein.com/ Blog: http://venublog.com / Twitter: @vanuganti

Upload: malina

Post on 23-Feb-2016

62 views

Category:

Documents


5 download

DESCRIPTION

HBase Operations & Best Practices. Venu Anuganti July 2013 http://scalein.com/ Blog: http://venublog.com / Twitter: @vanuganti. Who am I . Data Architect, Technology Advisor Founder of ScaleIN , Data Consulting Company, 5+ years 100+ companies, 20+ from Fortune 200 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: HBase Operations  &  Best Practices

HBaseOperations

& Best Practices

Venu AnugantiJuly 2013

http://scalein.com/Blog: http://venublog.com/

Twitter: @vanuganti

Page 2: HBase Operations  &  Best Practices

Who am I

o Data Architect, Technology Advisor

o Founder of ScaleIN, Data Consulting Company, 5+ yearso 100+ companies, 20+ from Fortune 200o http://scalein.com/

o Architect, Implement & Support SQL, NoSQL and BigData Solutions

Industry: Databases, Games, Social, Video, SaaS, Analytics, Warehouse, Web, Financial, Mobile, Advertising & SEM Marketing

Page 3: HBase Operations  &  Best Practices

Agenda BigData - Hadoop & HBase Overview

BigData Architecture

HBase Cluster Setup Walkthrough

High Availability

Backup and Restore

Operational Best Practices

Page 4: HBase Operations  &  Best Practices

BigData Overview

Page 5: HBase Operations  &  Best Practices

BigData Trends

• BigData is the latest industry buzz, many companies adopting or migratingo Not a replacement for OLTP or RDBMS systems

• Gartner – 28B in 2012 & 34B in 2013 spendo 2013 top-10 technology trends – 6th place

• Solves large data problems that existed for yearso Social, User, Mobile growth demanded such a solutiono Google “BigTable” is the key, followed by Amazon “Dynamo”; new

papers like Dremel drives it furthero Hadoop & ecosystem is becoming synonym for BigData

• Combines vast structured/un-structured datao Overcomes from legacy warehouse modelo Brings data analytics & data scienceo Real-time, mining, insights, discovery & complex reporting

Page 6: HBase Operations  &  Best Practices

BigData

• Key factors - ProsCan handle any sizeCommodity hardwareScalable, Distributed, Highly

AvailableEcosystem & growing

community

• Key factors – ConsLatencyHardware evolution, even

though designed for commodity

Does not fit for all

Page 7: HBase Operations  &  Best Practices

BigData Architecture

Page 8: HBase Operations  &  Best Practices
Page 9: HBase Operations  &  Best Practices

Low Level Architecture

Page 10: HBase Operations  &  Best Practices

Why HBase

Page 11: HBase Operations  &  Best Practices

Why HBase • HBase is proven, widely adopted

Tightly coupled with hadoop ecosystem Almost all major data driven companies using it

• Scales linearly

Read performance is its core; random, sequential reads Can store tera/peta bytes of data Large scale scans, millions of records Highly distributed

• CAP Theorem – HBase is CP driven

• Competition: Cassandra (AP)

Page 12: HBase Operations  &  Best Practices

Hadoop/HBaseCluster Setup

Page 13: HBase Operations  &  Best Practices

Cluster Components3 Major Components

Master(s) HMaster

Coordination Zookeeper

Slave(s) Region server

Name Node HMaster

Zookeeper

MASTER

Data NodeRegion Server

SLAVE 1

Data NodeRegion Server

SLAVE 3Data Node

Region ServerSLAVE 2

Page 14: HBase Operations  &  Best Practices

How It Works

HMASTER DDLCLIENT

HDFS

REGION SERVERS

RS RS RS

ZOOKEEPER CLUSTER

ZK ZK ZK

Page 15: HBase Operations  &  Best Practices

Zookeeper

Zookeepero Coordination for entire cluster

oMaster selection

o Root region server lookup

o Node registration

o Client always communicates with Zookeper for lookups (cached for sub-sequent calls)

hbase(main):001:0> zk "ls /hbase"[safe-mode, root-region-server, rs, master, shutdown, replication]

Page 16: HBase Operations  &  Best Practices

Zookeeper Setup

Zookeeper

• Dedicated nodes in the cluster

• Always in odd number

• Disk, memory, cpu usage is low

• Availability is a key

Page 17: HBase Operations  &  Best Practices

Master Node

HMastero Typically runs with Name Node

oMonitors all region servers, handles RS failover

o Handles all meta data changes

o Assigns regions

o Interface for all meta data changes

o Load balancing on idle times

Page 18: HBase Operations  &  Best Practices

Master Setup

• Dedicated Master Node

o Light on use, but should be on reliable hardwareo Good amount of memory and CPU can helpo Disk space is pretty nominal

• Must Have Redundancy

o Avoid single point of failure (SPOF)o RAID preferred for redundancy or even JBODo DRBD or NFS is also preferred

Page 19: HBase Operations  &  Best Practices

Region Server

Region Servero Handles all I/O requests

o Flush MemStore to HDFS

o Splitting

o Compaction

o Basic element of table storageo Table => Regions => Store per Column Family => CF => MemStore /

CF/Region && StoreFile /Store/Region => Block

oMaintains WAL (Write Ahead Log) for all changes

Page 20: HBase Operations  &  Best Practices

Region Server - Setup

• Should be stand-alone and dedicatedo JBOD diskso In-expensiveo Data node and region server should be co-located

• Networko Dual 1G, 10G or InfiniBand, DNS lookup free

• Replication - at least 3, locality

• Region size for splits; too many or too small regions are not good.

Page 21: HBase Operations  &  Best Practices

Cluster Setup – 10 Node

HDFS

NN, HM, JT BN, HM, JT

ZK ZK ZK

DN, RN, TT DN, RN, TT DN, RN, TTDN, RN, TT DN, RN, TT

Page 22: HBase Operations  &  Best Practices

High Availability

Page 23: HBase Operations  &  Best Practices

High Availability

• HBase Cluster - Failure Candidates

Data Center Cluster Rack Network Switch Power Strip Region or Data Node Zookeeper Node HBase Master Name Node

Page 24: HBase Operations  &  Best Practices

HA - Data Center

• Cross data center, geo distributed

• Replication is the only solution Up2date data Active-active Active-passive Costly (can be sized) Need dedicated network

• On-demand offline cluster Only for disaster recovery No up2date copy Can be sized appropriately Need to reprocess for latest data

Page 25: HBase Operations  &  Best Practices

HA – Redundant Cluster

• Redundant cluster within a data center using replication

• Mainly to have backup cluster for disasters Up2date data Restore a state back using TTL based Restore deleted data by keeping deleted cells Run backups Read/write distributed with load balancer Support development or provide on-demand data Support low important activities

• Best practice: Avoid redundant cluster, rather have one big cluster with high redundancy

Page 26: HBase Operations  &  Best Practices

HA – Rack, Network, Power

• Cluster nodes should be rack and switch aware

• Loosing a rack or a network switch should not bring cluster down

• Hadoop has built-in rack awareness

Assign nodes based on rack diagram Redundant nodes are within rack, across switch and rack Manual or automatic setup to detect location

• Redundant power and network within each node (master)

Page 27: HBase Operations  &  Best Practices

HA – Region Servers

• Loosing a region server or data node is very common, in many cases it could be very frequent

• They are distributed and replicated

• Can be added/removed dynamically, taken out for regular maintenance

• Replication factor of 3– Can loose ⅔rd of the cluster nodes

• Replication factor of 4– Can loose ¾th of the cluster nodes

Page 28: HBase Operations  &  Best Practices

HA – Zookeeper

• Zookeeper nodes are distributed

• Can be added/removed dynamically

• Should be implemented in odd number, due to quorum (majority voting wins the active state)

• If 4, can loose 1 node (3 major voting)• If 5, can loose 2 nodes (3 major voting)• If 6, can loose 2 nodes (4 major voting)• If 7, can loose 3 nodes (4 major voting)

• Best Practice: 5 or 7 with dedicated hardware.

Page 29: HBase Operations  &  Best Practices

HA – HMaster

• HMaster - single point of failure

• HA - Multiple HMaster nodes within a cluster

Zookeeper co-ordinates master failure

Only one active at any given point of time

Best practice: 2-3 HMasters, 1 per rack

Page 30: HBase Operations  &  Best Practices

Scalability

Page 31: HBase Operations  &  Best Practices

How to scale

• By design, cluster is highly distributed and scalable

• Keep adding more region servers to scale

Region splits

Replication factor

Row key design is a key factor for scaling writes No single “hot” region Bulk loading, pre-split Native java access X other protocols like thrift

Compaction at regular intervals

Page 32: HBase Operations  &  Best Practices

Performance Benchmarking is a key

• Nothing fits for all

• Simulate use cases and run the testsoBulk loadingoRandom access, read/writeoBulk processingo Scan, filter

• Negative performanceoReplication factoro Zookeeper nodesoNetwork latencyo Slower disks, CPUsoHot regions, Bad row key or Bulk loading without pre-splits

Page 33: HBase Operations  &  Best Practices

Tuning Tune the cluster to best fit the environment

• Block Size, LRU cache, 64K default, per CF• JBOD• Memstore • Compaction, manual• WAL flush• Avoid long GC pauses, JVM• Region size, small is better, split based on “hot”• Batch size• In-memory column families• Compression, LZO• Timeouts• Region handler count, threads/region• Speculative execution• Balancer, manual

Page 34: HBase Operations  &  Best Practices

Backup&

(Point-in-time ) Restore

Page 35: HBase Operations  &  Best Practices

Backup - Built-in

• In general no external backup needed

• HBase is highly distributed and has built-in versioning, data retention policy

No need to backup just for redundancy

Point-in-time restore:• Use TTL/Table/CF/C and keep the history for X hours/days

Accidental deletes:• Use ‘KeepDeletedCells’ to keep all deleted data

Page 36: HBase Operations  &  Best Practices

Backup - Tools

• Use Export/Import tool

Based on timestamp; and use it for point-in-time backup/restore

• Use region snapshots

Take HFile snapshots and copy them over to new storage location

Copy Hlog files for point-in-time roll-forward from snapshot time (replay using WALPlayer post import).

Table snapshots (0.94.6+)

Page 37: HBase Operations  &  Best Practices

Backup - Replication

• Use replicated cluster as one of the backup / disaster recovery

• Statement based, write ahead log (WAL, HLog) from each region server

Asynchronous Active Active using 1-1 replication Active Passive using 1-N replication Can be of same or different node size 0.92 onwards Active Active possible

Page 38: HBase Operations  &  Best Practices

Operational Best Practices

Page 39: HBase Operations  &  Best Practices

Hardware• Commodity Hardware

• 1U or 2U preferred, avoid 4U or NAS or expensive systems

• JBOD on slaves, RAID 1+0 on masters

• No SSDs, No virtualized storage

• Good number of cores (4-16), HT enabled

• Good amount of RAM (24-72G)

• Dual 1G network, 10G or InfiniBand

Page 40: HBase Operations  &  Best Practices

Disks

• SATA, 7/10/15K, cheaper the better

• Use RAID firmware drives, faster error detection & enable disks to fail on h/w errors

• Limit to 6/8 drives on 8 core, allow 1 drive/core= 100 IOPS/Drive= 4 * 1T = 4T, 400 IOPS, 400MB= 8 * 500G = 4T, 800 IOPS= not beyond 800/900MB/sec due to n/w saturation

• Ext3/ext4/XFS

• Mount => noatime, nodiratime

Page 41: HBase Operations  &  Best Practices

OS, Kernel

• RHEL or CentOS or Ubuntu

• Swappiness=0, and no swap files

• File limits to hadoop user (/etc/security/limits.conf) => 64/128K

• JVM GC, HBase heap

• NTP

• Block size

Page 42: HBase Operations  &  Best Practices

Automation

• Automation is a key in distributed cluster setup

To easily launch a new node To restore to base state Keep same packages, configurations across the cluster

• Use puppet/Chef/Existing process Keep as much as possible puppetized No accidental upgrades as it can restart the service

• Cloudera Manager (CM) for any node management tasks You can also puppetize & automate the process CM will install all necessary packages

Page 43: HBase Operations  &  Best Practices

Load Balancer

• Internal

Periodically run balancer to ensure data distribution among region servers• hadoop-daemon.sh start balancer -threshold 10

• External

Has built-in load balancing capability If using thrift bindings; then thrift servers needs to be

load balanced Future versions will address thrift balancing as well

Page 44: HBase Operations  &  Best Practices

Upgrades

• In general upgrades should be well planned

• To update changes to cluster nodes (OS, configs, hardware, etc.); you can also do rolling restart without taking cluster down

• Hadoop/HBase supports simple upgrade paths with rollback strategy to go back to old version

• Make sure HBase/Hadoop versions are compatible

• Use rolling restart for minor version upgrades

Page 45: HBase Operations  &  Best Practices

Monitoring

• Quick Checks

Use built-in web tools Cloudera manager Command line tools or wrapper scripts

• RRD, Monitoring

Cloudera manager Ganglia, Cacti, Nagios, NewRelic OpenTSDB Need proper alerting system for all events Threshold monitoring for any surprises

Page 46: HBase Operations  &  Best Practices

Alerting System

Need proper alerting system JMX exposes all metrics Ops Dashboard (Ganglia, Cacti, OpenTSDB, NewRelic) Small dashboard for critical events Define proper levels for escalation Critical

Loosing a Master or ZooKeeper Node +/- 10% drop in performance or latency Key thresholds (load, swap, IO) Loosing 2 or more slave nodes Disk failures Loosing a single slave node (critical in prime time) Un-balanced nodes FATAL errors in logs

Page 47: HBase Operations  &  Best Practices

Case Study

Page 48: HBase Operations  &  Best Practices

Case Study - 1

• 110 node cluster

Dual Quad Core, Intel Xeon, 2.2GHz 48G, no swap 6 2T SATA, 7K Ubuntu 11.04 Puppet Fabric for running commands on all nodes /home/hadoop is everything, symlinks Nagios OpenTSDB for Trending points, dashboard M/R limited to 50% of available RAM