Performance is one of the most interesting characteristics of an HBase cluster's behavior. It is a challenging operation for administrators, because performance tuning requires deep understanding of not only HBase but also of Hadoop, Java Virtual Machine Garbage Collection (JVM GC), and important tuning parameters of an operating system.
The structure of a typical HBase cluster is shown in the following diagram:
There are several components in the cluster—the ZooKeeper cluster, the HBase master node , region servers, the Hadoop Distributed File System(HDFS) and the HBase client.
The ZooKeeper cluster acts as a coordination service for the entire HBase cluster, handling master selection, root region server lookup, node registration, and so on. The master node does not do heavy tasks. Its job includes region allocation and failover, log splitting, and load balancing. Region servers hold the actual regions; they handle I/O requests to the hosting regions, flush the in-memory data store (MemStore) to HDFS, and split and compact regions. HDFS is the place where HBase stores its data files (StoreFile) and write ahead logs (WAL). We usually have an HBase region server running on the same machine as the HDFS DataNode, but it is not mandatory.
The HBase client provides APIs to access the HBase cluster. To communicate with the cluster, clients need to find the region server holding a specific row key range; this is called region lookups. HBase has two system tables to support region lookups—the -ROOT- table and the .META. table.
The -ROOT-table is used to refer to regions in the .META.table, while the .META.table holds references to all user regions. First, the clients query ZooKeeper to find the -ROOT-table location (the region server where it is deployed); they then query the -ROOT-table, and subsequently the .META.table, to find the region server holding a specific region. Clients also cache region locations to avoid querying ZooKeeper, -ROOT-, and .META.tables every time. With this background knowledge, we will describe how to tune HBase to gain better performance, in this article.
Besides HBase itself, other tuning points include Hadoop configurations, the JVM garbage collection settings, and the OS kernel parameters. These are as important as tuning HBase itself. We will also include recipes to tune these configurations, in this article.
In this article, by Yifeng Jiang, author of HBase Administration Cookbook, we will cover:
- Setting up Hadoop to spread disk I/O
- Using a network topology script to make the Hadoop rack-aware
- Mounting disks with noatimeand nodiratime
- Setting vm.swappinessto 0 to avoid swap
- Java GC and HBase heap settings
- Using compression
- Managing compactions
- Managing a region split
In this article wirtten by Marc Delisle, author of Mastering phpMyAdmin 3.4 for Effective MySQL Management, we will discus how a system administrator can use the phpMyAdmin server-management features for day-to-day user account maintenance, server verification, and server protection. The subject of how non-administrators can obtain server information from phpMyAdmin is also covered.
Server administration is mostly done via the Server view, which is accessed via the menu tabs available on phpMyAdmin's home page.Read Administrating the MySQL Server in full
There are numerous menus in the front end of every application. They are often displayed as standalone boxes. The menu items are generally arranged one below the other. Menus can also be integrated into the design horizontally so that at first sight they aren't even recognizable as cohesive menus. CSS menus, which can even be transparent, are very cool.
These menus and the menu links are dynamically administered in Joomla! from database content in the Menus work area. Joomla! has six different menus in the sample data. (main menu, top menu, other menu, user menu, example pages, and key concepts) In this article by Hagen Graf, we will discuss administering, creating and managing menus in Joomla!Read Customizing the Menus Menu in Joomla! in full
Michael “Monty” Widenius - Monty was the Main Developer of the MySQL database and the Founder of MySQL AB. Currently he is the CEO of Monty Program, a company founded by him. Monty Program is a center of engineering excellence for a database server called MariaDB, the Aria storage engine, MySQL®, and other associated technologies.
Monty is also a partner in the venture capital company Open Ocean. Monty’s experience and knowledge is highly regarded, which has resulted in many board memberships. He is currently active in the board of IT Mill Ltd, Finsor, Web of Trust by Against Intuition Inc. and several others.
Read Questions & Answers with MariaDB's Michael "Monty" Widenius- Founder of MySQL AB in full
In this article, by Daniel Schneller & Udo Schwedt, author of MySQL Admin Cookbook, we will discuss:
- Setting up automatically updated slaves of a server based on a SQL dump
- Setting up automatically updated slaves of a selection of tables based on a SQL dump
- Setting up automatically updated slaves using data file copy
- Sharing read load across multiple machines
One needs to tell MySQL what kind of privileges to assign to it. MySQL supports a wide range of privileges. A user can only grant any privilege that they have themselves.
In this article, by Albert Lukaszewski, PhD, author of MySQL for Python, we will cover:
- Granting access in Python
- Removing privileges in MySQL
- Using REVOKE in Python
- Project: Web-based user administration
There are, several ways to get MySQL for Python in a place such that your local Python installation can use it. Which one you use will depend as much on your familiarity with your operating system and with Python itself, as it will on which operating system and version of Python you are running.
In this article, by Albert Lukaszewski, PhD, author of MySQL for Python, we will cover the following:
- Where you can get MySQL for Python
- Installing MySQL for Python
- Importing the module into your programs
- Accessing online help about the MySQL for Python API and its accompanying modules
- How to connect to a database
- How to create a MySQL cursor proxy within your Python program
- How to close the database connection from Python
- How to access multiple databases within one program
Python is a dynamic programming language, which is completely enterprise ready, owing largely to the variety of support modules that are available to extend its capabilities. In order to build productive and feature-rich Python applications, we need to use MySQL for Python, a module that provides database support to our applications.
In this article, we will have a look at the tips and tricks presented thru-ought on MySQL for Python.Read Tips & Tricks on MySQL for Python in full
This article, Marc Delisle, author of Mastering phpMyAdmin 3.3.x for Effective MySQL Management, discusses how a system administrator can use the phpMyAdmin server management features for day-to-day user account maintenance, server verification, and server protection. The subject of how non-administrators can obtain server information from phpMyAdmin is also covered. Server administration is mostly done via the Server view, which is accessed via the menu tabs available on phpMyAdmin's home page.
Server administration is mostly done via the Server view, which is accessed via the menu tabs available on phpMyAdmin's home page.
This article specifically covers:
- Managing users and their privileges
- Database information
- Server information
In this article, by Marc Delisle, author of Mastering phpMyAdmin 3.3.x for Effective MySQL Management, we will cover:
- Installing phpMyAdmin
- Configuring phpMyAdmin
- Upgrading phpMyAdmin