blob: 3e4157d7421a68e9894f750291f30b9e51b6e0cc [file]
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/favicon.ico"/><link rel="preload" as="font" href="/fonts/inter-latin-wght-normal.woff2" type="font/woff2" crossorigin="anonymous"/><link rel="prefetch" as="font" href="/fonts/inter-latin-wght-italic.woff2" type="font/woff2" crossorigin="anonymous"/><link rel="modulepreload" href="/assets/manifest-baf72bfa.js"/><link rel="modulepreload" href="/assets/entry.client-Bi9_frb9.js"/><link rel="modulepreload" href="/assets/chunk-QUQL4437-Bywy9pC_.js"/><link rel="modulepreload" href="/assets/index-CEjmR4aq.js"/><link rel="modulepreload" href="/assets/root-COkOICkm.js"/><link rel="modulepreload" href="/assets/theme-provider-CTLTtVKS.js"/><link rel="modulepreload" href="/assets/button-CZBw5Jwh.js"/><link rel="modulepreload" href="/assets/index-jbG8BFt3.js"/><link rel="modulepreload" href="/assets/utils-Cu_tFavh.js"/><link rel="modulepreload" href="/assets/docs-layout-5T1N7EZh.js"/><link rel="modulepreload" href="/assets/docs-layout-S669zXZ_.js"/><link rel="modulepreload" href="/assets/index-DWtaWGM5.js"/><link rel="modulepreload" href="/assets/index-DmTM9tZB.js"/><link rel="modulepreload" href="/assets/Combination-DE73542n.js"/><link rel="modulepreload" href="/assets/docs-DMCF1KDd.js"/><link rel="modulepreload" href="/assets/mdx-oaHE65CA.js"/><link rel="modulepreload" href="/assets/collapsible-DaM-YS37.js"/><link rel="modulepreload" href="/assets/external-link-5ojQeAUO.js"/><link rel="modulepreload" href="/assets/createLucideIcon-DJDbJL17.js"/><link rel="modulepreload" href="/assets/link-CC6yoZ4C.js"/><title>Basic Prerequisites</title><meta name="description" content="This section lists required services and some required system configuration."/><link rel="stylesheet" href="/assets/root-BtA_CDVx.css"/><link rel="stylesheet" href="/assets/app-DeiyQBOk.css"/><script>
(function() {
const theme = localStorage.getItem('theme');
const root = document.documentElement;
root.classList.remove('light', 'dark');
if (theme && ['light', 'dark'].includes(theme)) {
root.classList.add(theme);
} else {
const systemTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
root.classList.add(systemTheme);
localStorage.setItem('theme', systemTheme);
}
})();
</script><noscript><style>.theme-toggle-wrapper { display: none !important; }</style></noscript></head><body class="font-base"><script>((e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=["light","dark"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y==="class",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n==="system"?c():n;p(y)}catch(n){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div id="nd-docs-layout" class="grid min-h-(--fd-docs-height) auto-cols-auto auto-rows-auto overflow-x-clip transition-[grid-template-columns] [--fd-docs-height:100dvh] [--fd-header-height:0px] [--fd-sidebar-width:0px] [--fd-toc-popover-height:0px] [--fd-toc-width:285px] max-xl:[--fd-toc-popover-height:--spacing(10)] max-md:[--fd-header-height:--spacing(14)] md:[--fd-sidebar-width:285px]" data-sidebar-collapsed="false" style="grid-template:&quot;sidebar header toc&quot;
&quot;sidebar toc-popover toc&quot;
&quot;sidebar main toc&quot; 1fr / minmax(var(--fd-sidebar-col), 1fr) minmax(0, calc(var(--fd-layout-width,97rem) - var(--fd-sidebar-width) - var(--fd-toc-width))) minmax(min-content, 1fr);--fd-docs-row-1:var(--fd-banner-height, 0px);--fd-docs-row-2:calc(var(--fd-docs-row-1) + var(--fd-header-height));--fd-docs-row-3:calc(var(--fd-docs-row-2) + var(--fd-toc-popover-height));--fd-sidebar-col:var(--fd-sidebar-width)"><header data-transparent="false" id="nd-subnav" class="data-[transparent=false]:bg-fd-background/80 sticky top-(--fd-docs-row-1) z-30 flex h-(--fd-header-height) items-center border-b ps-4 pe-2.5 backdrop-blur-sm transition-colors [grid-area:header] md:hidden"><a class="inline-flex items-center gap-2.5 font-semibold" href="/" data-discover="true"><div class="flex items-center gap-2"><img src="/favicon.ico" alt="HBase favicon" width="16" height="16"/><p>Apache HBase</p></div></a><div class="flex-1"></div><button type="button" class="inline-flex items-center cursor-pointer justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 shrink-0 [&amp;_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 hover:bg-accent hover:text-accent-foreground size-8 p-2" data-search="" aria-label="Open Search"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg></button><button aria-label="Open Sidebar" class="inline-flex items-center cursor-pointer justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 shrink-0 [&amp;_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 hover:bg-accent hover:text-accent-foreground size-8 p-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-left"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path></svg></button></header><div data-sidebar-placeholder="" class="pointer-events-none sticky top-(--fd-docs-row-1) z-20 h-[calc(var(--fd-docs-height)-var(--fd-docs-row-1))] [grid-area:sidebar] *:pointer-events-auto max-md:hidden"><aside id="nd-sidebar" data-collapsed="false" data-hovered="false" class="bg-fd-card absolute inset-y-0 start-0 flex flex-col items-end border-e text-sm duration-250 *:w-(--fd-sidebar-width)"><div class="flex flex-col gap-3 p-4 pb-2"><div class="flex"><a class="inline-flex text-[0.9375rem] items-center gap-2.5 font-medium me-auto" href="/" data-discover="true"><div class="flex items-center gap-2"><img src="/favicon.ico" alt="HBase favicon" width="16" height="16"/><p>Apache HBase</p></div></a><button type="button" aria-label="Collapse Sidebar" data-collapsed="false" class="inline-flex items-center cursor-pointer justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 shrink-0 [&amp;_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 hover:bg-accent hover:text-accent-foreground size-8 text-fd-muted-foreground mb-auto"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-left"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path></svg></button></div><button type="button" data-search-full="" class="bg-fd-secondary/50 text-fd-muted-foreground hover:bg-fd-accent hover:text-fd-accent-foreground inline-flex items-center gap-2 rounded-lg border p-1.5 ps-2 text-sm transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search size-4"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg>Search<div class="ms-auto inline-flex gap-0.5"><kbd class="bg-fd-background rounded-md border px-1.5">⌘</kbd><kbd class="bg-fd-background rounded-md border px-1.5">K</kbd></div></button><button type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-_R_r5aj5_" data-state="closed" class="bg-fd-secondary/50 text-fd-secondary-foreground hover:bg-fd-accent data-[state=open]:bg-fd-accent data-[state=open]:text-fd-accent-foreground flex items-center gap-2 rounded-lg border p-2 text-start transition-colors"><div class="size-9 shrink-0 empty:hidden md:size-5"></div><div><p class="text-sm font-medium">Multi-Page Documentation</p><p class="text-fd-muted-foreground text-sm empty:hidden md:hidden">Split across multiple pages</p></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevrons-up-down text-fd-muted-foreground ms-auto size-4 shrink-0"><path d="m7 15 5 5 5-5"></path><path d="m7 9 5-5 5 5"></path></svg></button></div><div dir="ltr" data-slot="scroll-area" class="relative min-h-0 flex-1" style="position:relative;--radix-scroll-area-corner-width:0px;--radix-scroll-area-corner-height:0px"><style>[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}</style><div data-radix-scroll-area-viewport="" data-slot="scroll-area-viewport" class="focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1" style="overflow-x:hidden;overflow-y:hidden"><div style="min-width:100%;display:table"><style>[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}</style><div data-radix-scroll-area-viewport="" class="overscroll-contain p-4" style="overflow-x:unset;overflow-y:unset;mask-image:linear-gradient(to bottom, transparent, white 12px, white calc(100% - 12px), transparent)"><div style="min-width:100%;display:table"><p class="mt-6 mb-1.5 inline-flex items-center gap-2 px-2 empty:mb-0 first:mt-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0" style="padding-inline-start:calc(2 * var(--spacing))">Getting Started</p><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs" data-discover="true">Preface</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/getting-started" data-discover="true">Getting Started</a><a href="/llms-full.txt" rel="noreferrer noopener" target="_blank" data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-external-link"><path d="M15 3h6v6"></path><path d="M10 14 21 3"></path><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path></svg>All docs for LLMs</a><p class="mt-6 mb-1.5 inline-flex items-center gap-2 px-2 empty:mb-0 first:mt-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0" style="padding-inline-start:calc(2 * var(--spacing))">Configuration &amp; Setup</p><div data-state="open" data-slot="collapsible" class="group"><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors w-full" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/configuration" data-discover="true">Configuration<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ms-auto transition-transform" data-icon="true"><path d="m6 9 6 6 6-6"></path></svg></a><div data-state="open" id="radix-_R_dad5aj5_" data-slot="collapsible-content" class="relative before:bg-fd-border before:absolute before:inset-y-1 before:start-2.5 before:w-px before:content-[&#x27;&#x27;]"><a data-active="true" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors data-[active=true]:before:content-[&#x27;&#x27;] data-[active=true]:before:bg-fd-primary data-[active=true]:before:absolute data-[active=true]:before:w-px data-[active=true]:before:inset-y-2.5 data-[active=true]:before:start-2.5" style="padding-inline-start:calc(5 * var(--spacing))" href="/docs/configuration/basic-prerequisites" data-discover="true">Basic Prerequisites</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors data-[active=true]:before:content-[&#x27;&#x27;] data-[active=true]:before:bg-fd-primary data-[active=true]:before:absolute data-[active=true]:before:w-px data-[active=true]:before:inset-y-2.5 data-[active=true]:before:start-2.5" style="padding-inline-start:calc(5 * var(--spacing))" href="/docs/configuration/hbase-run-models" data-discover="true">HBase run modes: Standalone and Distributed</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors data-[active=true]:before:content-[&#x27;&#x27;] data-[active=true]:before:bg-fd-primary data-[active=true]:before:absolute data-[active=true]:before:w-px data-[active=true]:before:inset-y-2.5 data-[active=true]:before:start-2.5" style="padding-inline-start:calc(5 * var(--spacing))" href="/docs/configuration/confirm" data-discover="true">Running and Confirming Your Installation</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors data-[active=true]:before:content-[&#x27;&#x27;] data-[active=true]:before:bg-fd-primary data-[active=true]:before:absolute data-[active=true]:before:w-px data-[active=true]:before:inset-y-2.5 data-[active=true]:before:start-2.5" style="padding-inline-start:calc(5 * var(--spacing))" href="/docs/configuration/default" data-discover="true">Default Configuration</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors data-[active=true]:before:content-[&#x27;&#x27;] data-[active=true]:before:bg-fd-primary data-[active=true]:before:absolute data-[active=true]:before:w-px data-[active=true]:before:inset-y-2.5 data-[active=true]:before:start-2.5" style="padding-inline-start:calc(5 * var(--spacing))" href="/docs/configuration/example" data-discover="true">Example Configurations</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors data-[active=true]:before:content-[&#x27;&#x27;] data-[active=true]:before:bg-fd-primary data-[active=true]:before:absolute data-[active=true]:before:w-px data-[active=true]:before:inset-y-2.5 data-[active=true]:before:start-2.5" style="padding-inline-start:calc(5 * var(--spacing))" href="/docs/configuration/important" data-discover="true">The Important Configurations</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors data-[active=true]:before:content-[&#x27;&#x27;] data-[active=true]:before:bg-fd-primary data-[active=true]:before:absolute data-[active=true]:before:w-px data-[active=true]:before:inset-y-2.5 data-[active=true]:before:start-2.5" style="padding-inline-start:calc(5 * var(--spacing))" href="/docs/configuration/dynamic" data-discover="true">Dynamic Configuration</a></div></div><div data-state="closed" data-slot="collapsible" class="group"><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors w-full" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/upgrading" data-discover="true">Upgrading<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ms-auto transition-transform -rotate-90" data-icon="true"><path d="m6 9 6 6 6-6"></path></svg></a><div data-state="closed" id="radix-_R_fad5aj5_" hidden="" data-slot="collapsible-content" class="relative before:bg-fd-border before:absolute before:inset-y-1 before:start-2.5 before:w-px before:content-[&#x27;&#x27;]"></div></div><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/shell" data-discover="true">The Apache HBase Shell</a><p class="mt-6 mb-1.5 inline-flex items-center gap-2 px-2 empty:mb-0 first:mt-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0" style="padding-inline-start:calc(2 * var(--spacing))">Core Concepts</p><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/datamodel" data-discover="true">Data Model</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/schema-design" data-discover="true">HBase and Schema Design</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/regionserver-sizing" data-discover="true">RegionServer Sizing Rules of Thumb</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/mapreduce" data-discover="true">HBase and MapReduce</a><div data-state="closed" data-slot="collapsible" class="group"><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors w-full" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/security" data-discover="true">Security<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ms-auto transition-transform -rotate-90" data-icon="true"><path d="m6 9 6 6 6-6"></path></svg></a><div data-state="closed" id="radix-_R_tad5aj5_" hidden="" data-slot="collapsible-content" class="relative before:bg-fd-border before:absolute before:inset-y-1 before:start-2.5 before:w-px before:content-[&#x27;&#x27;]"></div></div><div data-state="closed" data-slot="collapsible" class="group"><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors w-full" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/architecture" data-discover="true">Architecture<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ms-auto transition-transform -rotate-90" data-icon="true"><path d="m6 9 6 6 6-6"></path></svg></a><div data-state="closed" id="radix-_R_vad5aj5_" hidden="" data-slot="collapsible-content" class="relative before:bg-fd-border before:absolute before:inset-y-1 before:start-2.5 before:w-px before:content-[&#x27;&#x27;]"></div></div><p class="mt-6 mb-1.5 inline-flex items-center gap-2 px-2 empty:mb-0 first:mt-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0" style="padding-inline-start:calc(2 * var(--spacing))">Advanced Features</p><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/inmemory-compaction" data-discover="true">In-memory Compaction</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/offheap-read-write" data-discover="true">RegionServer Off-Heap Read/Write Path</a><div data-state="closed" data-slot="collapsible" class="group"><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors w-full" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/backup-restore" data-discover="true">Backup and Restore<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ms-auto transition-transform -rotate-90" data-icon="true"><path d="m6 9 6 6 6-6"></path></svg></a><div data-state="closed" id="radix-_R_17ad5aj5_" hidden="" data-slot="collapsible-content" class="relative before:bg-fd-border before:absolute before:inset-y-1 before:start-2.5 before:w-px before:content-[&#x27;&#x27;]"></div></div><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/sync-replication" data-discover="true">Synchronous Replication</a><p class="mt-6 mb-1.5 inline-flex items-center gap-2 px-2 empty:mb-0 first:mt-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0" style="padding-inline-start:calc(2 * var(--spacing))">APIs &amp; Integration</p><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/hbase-apis" data-discover="true">Apache HBase APIs</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/external-apis" data-discover="true">Apache HBase External APIs</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/thrift-filter-language" data-discover="true">Thrift API and Filter Language</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/spark" data-discover="true">HBase and Spark</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/cp" data-discover="true">Apache HBase Coprocessors</a><p class="mt-6 mb-1.5 inline-flex items-center gap-2 px-2 empty:mb-0 first:mt-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0" style="padding-inline-start:calc(2 * var(--spacing))">Performance &amp; Troubleshooting</p><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/performance" data-discover="true">Apache HBase Performance Tuning</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/profiler" data-discover="true">Profiler Servlet</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/troubleshooting" data-discover="true">Troubleshooting and Debugging Apache HBase</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/case-studies" data-discover="true">Apache HBase Case Studies</a><p class="mt-6 mb-1.5 inline-flex items-center gap-2 px-2 empty:mb-0 first:mt-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0" style="padding-inline-start:calc(2 * var(--spacing))">Operations &amp; Development</p><div data-state="closed" data-slot="collapsible" class="group"><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors w-full" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/operational-management" data-discover="true">Apache HBase Operational Management<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ms-auto transition-transform -rotate-90" data-icon="true"><path d="m6 9 6 6 6-6"></path></svg></a><div data-state="closed" id="radix-_R_23ad5aj5_" hidden="" data-slot="collapsible-content" class="relative before:bg-fd-border before:absolute before:inset-y-1 before:start-2.5 before:w-px before:content-[&#x27;&#x27;]"></div></div><div data-state="closed" data-slot="collapsible" class="group"><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors w-full" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/building-and-developing" data-discover="true">Building and Developing Apache HBase<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ms-auto transition-transform -rotate-90" data-icon="true"><path d="m6 9 6 6 6-6"></path></svg></a><div data-state="closed" id="radix-_R_25ad5aj5_" hidden="" data-slot="collapsible-content" class="relative before:bg-fd-border before:absolute before:inset-y-1 before:start-2.5 before:w-px before:content-[&#x27;&#x27;]"></div></div><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/unit-testing" data-discover="true">Unit Testing HBase Applications</a><p class="mt-6 mb-1.5 inline-flex items-center gap-2 px-2 empty:mb-0 first:mt-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0" style="padding-inline-start:calc(2 * var(--spacing))">Internals</p><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/protobuf" data-discover="true">Protobuf in HBase</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/pv2" data-discover="true">Procedure Framework (PV2)</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/amv2" data-discover="true">AMv2 Description for Devs</a><p class="mt-6 mb-1.5 inline-flex items-center gap-2 px-2 empty:mb-0 first:mt-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0" style="padding-inline-start:calc(2 * var(--spacing))">Infrastructure &amp; Tools</p><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/zookeeper" data-discover="true">ZooKeeper</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/community" data-discover="true">Community</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/hbtop" data-discover="true">hbtop</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/tracing" data-discover="true">Tracing</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/store-file-tracking" data-discover="true">Store File Tracking</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/bulk-data-generator-tool" data-discover="true">Bulk Data Generator Tool</a><p class="mt-6 mb-1.5 inline-flex items-center gap-2 px-2 empty:mb-0 first:mt-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0" style="padding-inline-start:calc(2 * var(--spacing))">Appendices</p><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/contributing-to-documentation" data-discover="true">Appendix: Contributing to Documentation</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/faq" data-discover="true">FAQ</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/acl-matrix" data-discover="true">Access Control Matrix</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/compression" data-discover="true">Compression and Data Block Encoding In HBase</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/sql" data-discover="true">SQL over HBase</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/ycsb" data-discover="true">YCSB</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/hfile-format" data-discover="true">HFile Format</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/other-info" data-discover="true">Other Information About HBase</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/hbase-history" data-discover="true">HBase History</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/asf" data-discover="true">HBase and the Apache Software Foundation</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orca" data-discover="true">Apache HBase Orca</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/rpc" data-discover="true">0.95 RPC Specification</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/hbase-incompatibilities" data-discover="true">Known Incompatibilities Among HBase Versions</a></div></div></div></div></div><div class="flex flex-col border-t p-4 pt-2 empty:hidden"><div class="text-fd-muted-foreground flex items-center empty:hidden"><a href="https://github.com/apache/hbase/" rel="noreferrer noopener" target="_blank" class="inline-flex items-center cursor-pointer justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 shrink-0 [&amp;_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 hover:bg-accent hover:text-accent-foreground size-8" aria-label="GitHub" data-active="false"><svg role="img" viewBox="0 0 24 24" fill="currentColor"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path></svg></a><button class="inline-flex items-center rounded-full border ms-auto p-0" aria-label="Toggle Theme" data-theme-toggle=""><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun size-6.5 rounded-full p-1.5 text-fd-muted-foreground"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon size-6.5 rounded-full p-1.5 text-fd-muted-foreground"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg></button></div></div></aside></div><div data-sidebar-panel="" class="bg-fd-muted text-fd-muted-foreground fixed start-4 top-[calc(--spacing(4)+var(--fd-docs-row-3))] z-10 flex rounded-xl border p-0.5 shadow-lg transition-opacity pointer-events-none opacity-0"><button type="button" aria-label="Collapse Sidebar" data-collapsed="false" class="inline-flex items-center cursor-pointer justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 shrink-0 [&amp;_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 hover:bg-accent hover:text-accent-foreground size-8 rounded-lg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-left"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path></svg></button><button type="button" class="inline-flex items-center cursor-pointer justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 shrink-0 [&amp;_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 hover:bg-accent hover:text-accent-foreground size-8 rounded-lg" data-search="" aria-label="Open Search"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg></button></div><div data-state="closed" data-slot="collapsible" class="group sticky top-(--fd-docs-row-2) z-10 h-(--fd-toc-popover-height) [grid-area:toc-popover] xl:hidden" data-toc-popover=""><header class="border-b backdrop-blur-sm transition-colors bg-fd-background/80"><button type="button" aria-controls="radix-_R_1ij5_" aria-expanded="false" data-state="closed" class="cursor-pointer text-fd-muted-foreground flex h-10 w-full items-center gap-2.5 px-4 py-2.5 text-start text-sm focus-visible:outline-none md:px-6 [&amp;_svg]:size-4" data-slot="collapsible-trigger" data-toc-popover-trigger=""><svg role="progressbar" viewBox="0 0 24 24" aria-valuenow="0" aria-valuemin="0" aria-valuemax="1" class="shrink-0"><circle cx="12" cy="12" r="11" fill="none" stroke-width="2" class="stroke-current/25"></circle><circle cx="12" cy="12" r="11" fill="none" stroke-width="2" stroke="currentColor" stroke-dasharray="69.11503837897544" stroke-dashoffset="69.11503837897544" stroke-linecap="round" transform="rotate(-90 12 12)" class="transition-all"></circle></svg><span class="grid flex-1 *:col-start-1 *:row-start-1 *:my-auto"><span class="truncate transition-[opacity,translate,color]">Basic Prerequisites</span><span class="truncate transition-[opacity,translate] pointer-events-none translate-y-full opacity-0"></span></span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down mx-0.5 shrink-0 transition-transform"><path d="m6 9 6 6 6-6"></path></svg></button><div data-state="closed" id="radix-_R_1ij5_" hidden="" data-slot="collapsible-content" data-toc-popover-content="" class="flex max-h-[50vh] flex-col px-4 md:px-6"></div></header></div><article id="nd-page" data-full="false" class="mx-auto flex w-full max-w-[900px] flex-col gap-4 px-4 py-6 [grid-area:main] md:px-6 md:pt-8 xl:px-8 xl:pt-14 xl:[--fd-toc-width:285px]"><div class="text-fd-muted-foreground flex items-center gap-1.5 text-sm"><a class="truncate text-fd-primary font-medium transition-opacity hover:opacity-80" href="/docs/configuration" data-discover="true">Configuration</a></div><div class="no-print"><h1 class="text-[1.75em] font-semibold">Basic Prerequisites</h1><p class="text-fd-muted-foreground mb-8 text-lg">This section lists required services and some required system configuration.</p></div><div class="prose flex-1"><h2 class="flex scroll-m-28 flex-row items-center gap-2" id="configuration-basic-prerequisites-java"><a data-card="" href="#configuration-basic-prerequisites-java" class="peer">Java</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h2>
<p class="wrap-anywhere">HBase runs on the Java Virtual Machine, thus all HBase deployments require a JVM runtime.</p>
<p class="wrap-anywhere">The following table summarizes the recommendations of the HBase community with respect to running on various Java versions. The ✅ symbol indicates a base level of testing and willingness to help diagnose and address issues you might run into; these are the expected deployment combinations. An entry of ⚠️ means that there may be challenges with this combination, and you should look for more information before deciding to pursue this as your deployment strategy. The ❌ means this combination does not work; either an older Java version is considered deprecated by the HBase community, or this combination is known to not work. For combinations of newer JDK with older HBase releases, it&#x27;s likely there are known compatibility issues that cannot be addressed under our compatibility guarantees, making the combination impossible. In some cases, specific guidance on limitations (e.g. whether compiling / unit tests work, specific operational issues, etc) are also noted. Assume any combination not listed here is considered ❌.</p>
<div class="flex gap-2 my-4 rounded-xl border bg-fd-card p-3 ps-1 text-sm text-fd-card-foreground shadow-md" style="--callout-color:var(--color-fd-warning, var(--color-fd-muted))"><div role="none" class="w-0.5 bg-(--callout-color)/50 rounded-sm"></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-5 -me-0.5 fill-(--callout-color) text-fd-card"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"></path><path d="M12 9v4"></path><path d="M12 17h.01"></path></svg><div class="flex flex-col gap-2 min-w-0 flex-1"><div class="text-fd-muted-foreground prose-no-margin empty:hidden"><p class="wrap-anywhere">HBase recommends downstream users rely only on JDK releases that are marked as Long-Term Supported
(LTS), either from the OpenJDK project or vendors. At the time of this writing, the following JDK
releases are NOT LTS releases and are NOT tested or advocated for use by the Apache HBase
community: JDK9, JDK10, JDK12, JDK13, and JDK14. Community discussion around this decision is
recorded on <a href="https://issues.apache.org/jira/browse/HBASE-20264">HBASE-20264</a>.</p></div></div></div>
<div class="flex gap-2 my-4 rounded-xl border bg-fd-card p-3 ps-1 text-sm text-fd-card-foreground shadow-md" style="--callout-color:var(--color-fd-info, var(--color-fd-muted))"><div role="none" class="w-0.5 bg-(--callout-color)/50 rounded-sm"></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-5 -me-0.5 fill-(--callout-color) text-fd-card"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg><div class="flex flex-col gap-2 min-w-0 flex-1"><div class="text-fd-muted-foreground prose-no-margin empty:hidden"><p class="wrap-anywhere">At this time, all testing performed by the Apache HBase project runs on the HotSpot variant of the
JVM. When selecting your JDK distribution, please take this into consideration.</p></div></div></div>
<p class="wrap-anywhere"><strong>Java support by release line</strong></p>
<div class="relative overflow-auto prose-no-margin my-6"><table><thead><tr><th style="text-align:center">HBase Version</th><th style="text-align:center">JDK 6</th><th style="text-align:center">JDK 7</th><th style="text-align:center">JDK 8</th><th style="text-align:center">JDK 11</th><th style="text-align:center">JDK 17</th></tr></thead><tbody><tr><td style="text-align:center">HBase 2.6</td><td style="text-align:center">❌</td><td style="text-align:center">❌</td><td style="text-align:center">✅</td><td style="text-align:center">✅</td><td style="text-align:center">✅</td></tr><tr><td style="text-align:center">HBase 2.5</td><td style="text-align:center">❌</td><td style="text-align:center">❌</td><td style="text-align:center">✅</td><td style="text-align:center">✅</td><td style="text-align:center">⚠️*</td></tr><tr><td style="text-align:center">HBase 2.4</td><td style="text-align:center">❌</td><td style="text-align:center">❌</td><td style="text-align:center">✅</td><td style="text-align:center">✅</td><td style="text-align:center">❌</td></tr><tr><td style="text-align:center">HBase 2.3</td><td style="text-align:center">❌</td><td style="text-align:center">❌</td><td style="text-align:center">✅</td><td style="text-align:center">⚠️*</td><td style="text-align:center">❌</td></tr><tr><td style="text-align:center">HBase 2.0-2.2</td><td style="text-align:center">❌</td><td style="text-align:center">❌</td><td style="text-align:center">✅</td><td style="text-align:center">❌</td><td style="text-align:center">❌</td></tr><tr><td style="text-align:center">HBase 1.2+</td><td style="text-align:center">❌</td><td style="text-align:center">✅</td><td style="text-align:center">✅</td><td style="text-align:center">❌</td><td style="text-align:center">❌</td></tr><tr><td style="text-align:center">HBase 1.0-1.1</td><td style="text-align:center">❌</td><td style="text-align:center">✅</td><td style="text-align:center">⚠️</td><td style="text-align:center">❌</td><td style="text-align:center">❌</td></tr><tr><td style="text-align:center">HBase 0.98</td><td style="text-align:center">✅</td><td style="text-align:center">✅</td><td style="text-align:center">⚠️</td><td style="text-align:center">❌</td><td style="text-align:center">❌</td></tr><tr><td style="text-align:center">HBase 0.94</td><td style="text-align:center">✅</td><td style="text-align:center">✅</td><td style="text-align:center">❌</td><td style="text-align:center">❌</td><td style="text-align:center">❌</td></tr></tbody></table></div>
<div class="flex gap-2 my-4 rounded-xl border bg-fd-card p-3 ps-1 text-sm text-fd-card-foreground shadow-md" style="--callout-color:var(--color-fd-warning, var(--color-fd-muted))"><div role="none" class="w-0.5 bg-(--callout-color)/50 rounded-sm"></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-5 -me-0.5 fill-(--callout-color) text-fd-card"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"></path><path d="M12 9v4"></path><path d="M12 17h.01"></path></svg><div class="flex flex-col gap-2 min-w-0 flex-1"><div class="text-fd-muted-foreground prose-no-margin empty:hidden"><p class="wrap-anywhere">Preliminary support for JDK11 is introduced with HBase 2.3.0, and for JDK17 is introduced with HBase 2.5.x. We will compile and run test suites with JDK11/17 in pre commit checks and nightly checks. We will mark the support as ✅ as long as we have run some ITs with the JDK version and also there are users in the community use the JDK version in real production clusters.</p><p class="wrap-anywhere">For JDK11/JDK17 support in HBase, please refer to <a href="https://issues.apache.org/jira/browse/HBASE-22972">HBASE-22972</a> and <a href="https://issues.apache.org/jira/browse/HBASE-26038">HBASE-26038</a></p><p class="wrap-anywhere">For JDK11/JDK17 support in Hadoop, which may also affect HBase, please refer to <a href="https://issues.apache.org/jira/browse/HADOOP-15338">HADOOP-15338</a> and <a href="https://issues.apache.org/jira/browse/HADOOP-17177">HADOOP-17177</a></p></div></div></div>
<div class="flex gap-2 my-4 rounded-xl border bg-fd-card p-3 ps-1 text-sm text-fd-card-foreground shadow-md" style="--callout-color:var(--color-fd-info, var(--color-fd-muted))"><div role="none" class="w-0.5 bg-(--callout-color)/50 rounded-sm"></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-5 -me-0.5 fill-(--callout-color) text-fd-card"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg><div class="flex flex-col gap-2 min-w-0 flex-1"><div class="text-fd-muted-foreground prose-no-margin empty:hidden"><p class="wrap-anywhere">You must set <code>JAVA_HOME</code> on each node of your cluster. <em>hbase-env.sh</em> provides a handy mechanism
to do this.</p></div></div></div>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="operating-system-utilities"><a data-card="" href="#operating-system-utilities" class="peer">Operating System Utilities</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="ssh"><a data-card="" href="#ssh" class="peer">ssh</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<p class="wrap-anywhere">HBase uses the Secure Shell (ssh) command and utilities extensively to communicate between cluster nodes. Each server in the cluster must be running <code>ssh</code> so that the Hadoop and HBase daemons can be managed. You must be able to connect to all nodes via SSH, including the local node, from the Master as well as any backup Master, using a shared key rather than a password. You can see the basic methodology for such a set-up in Linux or Unix systems at &quot;<a href="/docs/getting-started#procedure-configure-passwordless-ssh-access" data-discover="true">Procedure: Configure Passwordless SSH Access</a>&quot; chapter. If your cluster nodes use OS X, see the section, <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=120730246#RunningHadoopOnOSX10.564-bit(Single-NodeCluster)-SSH:SettingupRemoteDesktopandEnablingSelf-Login">SSH: Setting up Remote Desktop and Enabling Self-Login</a> on the Hadoop wiki.</p>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="dns"><a data-card="" href="#dns" class="peer">DNS</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<p class="wrap-anywhere">HBase uses the local hostname to self-report its IP address.</p>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="ntp"><a data-card="" href="#ntp" class="peer">NTP</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<p class="wrap-anywhere">The clocks on cluster nodes should be synchronized. A small amount of variation is acceptable, but larger amounts of skew can cause erratic and unexpected behavior. Time synchronization is one of the first things to check if you see unexplained problems in your cluster. It is recommended that you run a Network Time Protocol (NTP) service, or another time-synchronization mechanism on your cluster and that all nodes look to the same service for time synchronization. See the <a href="http://www.tldp.org/LDP/sag/html/basic-ntp-config.html">Basic NTP Configuration</a> at <em>The Linux Documentation Project (TLDP)</em> to set up NTP.</p>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="limits-on-number-of-files-and-processes-ulimit"><a data-card="" href="#limits-on-number-of-files-and-processes-ulimit" class="peer">Limits on Number of Files and Processes (ulimit)</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<p class="wrap-anywhere">Apache HBase is a database. It requires the ability to open a large number of files at once. Many Linux distributions limit the number of files a single user is allowed to open to <code>1024</code> (or <code>256</code> on older versions of OS X). You can check this limit on your servers by running the command <code>ulimit -n</code> when logged in as the user which runs HBase. See <a href="/docs/troubleshooting#javaioioexceptiontoo-many-open-files" data-discover="true">the Troubleshooting section</a> for some of the problems you may experience if the limit is too low. You may also notice errors such as the following:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-xl shiki relative border shadow-sm not-prose overflow-hidden text-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-2 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[13px] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span>2010-04-06 03:04:37,542 INFO org.apache.hadoop.hdfs.DFSClient: Exception increateBlockOutputStream java.io.EOFException</span></span>
<span class="line"><span>2010-04-06 03:04:37,542 INFO org.apache.hadoop.hdfs.DFSClient: Abandoning block blk_-6935524980745310745_1391901</span></span></code></pre></div></figure>
<p class="wrap-anywhere">It is recommended to raise the ulimit to at least 10,000, but more likely 10,240, because the value is usually expressed in multiples of 1024. Each ColumnFamily has at least one StoreFile, and possibly more than six StoreFiles if the region is under load. The number of open files required depends upon the number of ColumnFamilies and the number of regions. The following is a rough formula for calculating the potential number of open files on a RegionServer.</p>
<p class="wrap-anywhere"><strong>Calculate the Potential Number of Open Files:</strong></p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-xl shiki relative border shadow-sm not-prose overflow-hidden text-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-2 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[13px] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span>(StoreFiles per ColumnFamily) x (regions per RegionServer)</span></span></code></pre></div></figure>
<p class="wrap-anywhere">For example, assuming that a schema had 3 ColumnFamilies per region with an average of 3 StoreFiles per ColumnFamily, and there are 100 regions per RegionServer, the JVM will open <code>3 * 3 * 100 = 900</code> file descriptors, not counting open JAR files, configuration files, and others. Opening a file does not take many resources, and the risk of allowing a user to open too many files is minimal.</p>
<p class="wrap-anywhere">Another related setting is the number of processes a user is allowed to run at once. In Linux and Unix, the number of processes is set using the <code>ulimit -u</code> command. This should not be confused with the <code>nproc</code> command, which controls the number of CPUs available to a given user. Under load, a <code>ulimit -u</code> that is too low can cause OutOfMemoryError exceptions.</p>
<p class="wrap-anywhere">Configuring the maximum number of file descriptors and processes for the user who is running the HBase process is an operating system configuration, rather than an HBase configuration. It is also important to be sure that the settings are changed for the user that actually runs HBase. To see which user started HBase, and that user&#x27;s ulimit configuration, look at the first line of the HBase log for that instance.</p>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="example-ulimit-settings-on-ubuntu-toc"><a data-card="" href="#example-ulimit-settings-on-ubuntu-toc" class="peer">Example: <code>ulimit</code> Settings on Ubuntu</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<p class="wrap-anywhere">To configure ulimit settings on Ubuntu, edit <em>/etc/security/limits.conf</em>, which is a space-delimited file with four columns. Refer to the man page for <em>limits.conf</em> for details about the format of this file. In the following example, the first line sets both soft and hard limits for the number of open files (nofile) to 32768 for the operating system user with the username hadoop. The second line sets the number of processes to 32000 for the same user.</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-xl shiki relative border shadow-sm not-prose overflow-hidden text-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-2 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[13px] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span>hadoop - nofile 32768</span></span>
<span class="line"><span>hadoop - nproc 32000</span></span></code></pre></div></figure>
<p class="wrap-anywhere">The settings are only applied if the Pluggable Authentication Module (PAM) environment is directed to use them. To configure PAM to use these limits, be sure that the <em>/etc/pam.d/common-session</em> file contains the following line:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-xl shiki relative border shadow-sm not-prose overflow-hidden text-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-2 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[13px] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span>session required pam_limits.so</span></span></code></pre></div></figure>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="linux-shell"><a data-card="" href="#linux-shell" class="peer">Linux Shell</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<p class="wrap-anywhere">All of the shell scripts that come with HBase rely on the <a href="http://www.gnu.org/software/bash">GNU Bash</a> shell.</p>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="windows"><a data-card="" href="#windows" class="peer">Windows</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<p class="wrap-anywhere">Running production systems on Windows machines is not recommended.</p>
<h2 class="flex scroll-m-28 flex-row items-center gap-2" id="hadoop"><a data-card="" href="#hadoop" class="peer">Hadoop</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h2>
<p class="wrap-anywhere">The following table summarizes the versions of <a href="https://hadoop.apache.org">Hadoop</a> supported with each version of HBase. Older versions not appearing in this table are considered unsupported and likely missing necessary features, while newer versions are untested but may be suitable.</p>
<p class="wrap-anywhere">Based on the version of HBase, you should select the most appropriate version of Hadoop. You can use Apache Hadoop, or a vendor&#x27;s distribution of Hadoop. No distinction is made here. See <a href="https://cwiki.apache.org/confluence/display/HADOOP2/Distributions+and+Commercial+Support">the Hadoop wiki</a> for information about vendors of Hadoop.</p>
<div class="flex gap-2 my-4 rounded-xl border bg-fd-card p-3 ps-1 text-sm text-fd-card-foreground shadow-md" style="--callout-color:var(--color-fd-info, var(--color-fd-muted))"><div role="none" class="w-0.5 bg-(--callout-color)/50 rounded-sm"></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-5 -me-0.5 fill-(--callout-color) text-fd-card"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg><div class="flex flex-col gap-2 min-w-0 flex-1"><div class="text-fd-muted-foreground prose-no-margin empty:hidden"><p class="wrap-anywhere">Comparing to Hadoop 1.x, Hadoop 2.x is faster and includes features, such as short-circuit reads (see <a href="/docs/performance#leveraging-local-data" data-discover="true">Leveraging local data</a>), which will help improve your HBase random read profile. Hadoop 2.x also includes important bug fixes that will improve your overall HBase experience. HBase does not support running with earlier versions of Hadoop. See the table below for requirements specific to different HBase versions.</p><p class="wrap-anywhere">Today, Hadoop 3.x is recommended as the last Hadoop 2.x release 2.10.2 was released years ago, and there is no release for Hadoop 2.x for a very long time, although the Hadoop community does not officially EOL Hadoop 2.x yet.</p></div></div></div>
<p class="wrap-anywhere">Use the following legend to interpret these tables:</p>
<ul>
<li>✅ = Tested to be fully-functional</li>
<li>❌ = Known to not be fully-functional, or there are <a href="https://hadoop.apache.org/cve_list.html">CVEs</a> so we drop the support in newer minor releases</li>
<li>⚠️ = Not tested, may/may-not function</li>
</ul>
<div class="relative overflow-auto prose-no-margin my-6"><table><thead><tr><th></th><th>HBase-2.5.x</th><th>HBase-2.6.x</th></tr></thead><tbody><tr><td>Hadoop-2.10.[0-1]</td><td>❌</td><td>❌</td></tr><tr><td>Hadoop-2.10.2+</td><td>✅</td><td>✅</td></tr><tr><td>Hadoop-3.1.0</td><td>❌</td><td>❌</td></tr><tr><td>Hadoop-3.1.1+</td><td>❌</td><td>❌</td></tr><tr><td>Hadoop-3.2.[0-2]</td><td>❌</td><td>❌</td></tr><tr><td>Hadoop-3.2.3+</td><td>✅</td><td>❌</td></tr><tr><td>Hadoop-3.3.[0-1]</td><td>❌</td><td>❌</td></tr><tr><td>Hadoop-3.3.[2-4]</td><td>✅</td><td>❌</td></tr><tr><td>Hadoop-3.3.5+</td><td>✅</td><td>✅</td></tr><tr><td>Hadoop-3.4.0+</td><td>✅ (2.5.11+)</td><td>✅ (2.6.2+)</td></tr></tbody></table></div>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="hadoop-version-support-matrix-for-active-release-lines"><a data-card="" href="#hadoop-version-support-matrix-for-active-release-lines" class="peer">Hadoop version support matrix for active release lines</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
<div class="relative overflow-auto prose-no-margin my-6"><table><thead><tr><th></th><th>HBase-2.3.x</th><th>HBase-2.4.x</th></tr></thead><tbody><tr><td>Hadoop-2.10.x</td><td>✅</td><td>✅</td></tr><tr><td>Hadoop-3.1.0</td><td>❌</td><td>❌</td></tr><tr><td>Hadoop-3.1.1+</td><td>✅</td><td>✅</td></tr><tr><td>Hadoop-3.2.x</td><td>✅</td><td>✅</td></tr><tr><td>Hadoop-3.3.x</td><td>✅</td><td>✅</td></tr></tbody></table></div>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="hadoop-version-support-matrix-for-eom-23-release-lines"><a data-card="" href="#hadoop-version-support-matrix-for-eom-23-release-lines" class="peer">Hadoop version support matrix for EOM 2.3+ release lines</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
<div class="relative overflow-auto prose-no-margin my-6"><table><thead><tr><th></th><th>HBase-2.0.x</th><th>HBase-2.1.x</th><th>HBase-2.2.x</th></tr></thead><tbody><tr><td>Hadoop-2.6.1+</td><td>✅</td><td>❌</td><td>❌</td></tr><tr><td>Hadoop-2.7.[0-6]</td><td>❌</td><td>❌</td><td>❌</td></tr><tr><td>Hadoop-2.7.7+</td><td>✅</td><td>✅</td><td>❌</td></tr><tr><td>Hadoop-2.8.[0-2]</td><td>❌</td><td>❌</td><td>❌</td></tr><tr><td>Hadoop-2.8.[3-4]</td><td>✅</td><td>✅</td><td>❌</td></tr><tr><td>Hadoop-2.8.5+</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Hadoop-2.9.[0-1]</td><td>⚠️</td><td>❌</td><td>❌</td></tr><tr><td>Hadoop-2.9.2+</td><td>⚠️</td><td>⚠️</td><td>✅</td></tr><tr><td>Hadoop-3.0.[0-2]</td><td>❌</td><td>❌</td><td>❌</td></tr><tr><td>Hadoop-3.0.3+</td><td>❌</td><td>✅</td><td>❌</td></tr><tr><td>Hadoop-3.1.0</td><td>❌</td><td>❌</td><td>❌</td></tr><tr><td>Hadoop-3.1.1+</td><td>❌</td><td>✅</td><td>✅</td></tr></tbody></table></div>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="hadoop-version-support-matrix-for-eom-2x-release-lines"><a data-card="" href="#hadoop-version-support-matrix-for-eom-2x-release-lines" class="peer">Hadoop version support matrix for EOM 2.x release lines</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
<div class="relative overflow-auto prose-no-margin my-6"><table><thead><tr><th></th><th>HBase-1.5.x</th><th>HBase-1.6.x</th><th>HBase-1.7.x</th></tr></thead><tbody><tr><td>Hadoop-2.7.7+</td><td>✅</td><td>❌</td><td>❌</td></tr><tr><td>Hadoop-2.8.[0-4]</td><td>❌</td><td>❌</td><td>❌</td></tr><tr><td>Hadoop-2.8.5+</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Hadoop-2.9.[0-1]</td><td>❌</td><td>❌</td><td>❌</td></tr><tr><td>Hadoop-2.9.2+</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Hadoop-2.10.x</td><td>⚠️</td><td>✅</td><td>✅</td></tr></tbody></table></div>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="hadoop-version-support-matrix-for-eom-15-release-lines"><a data-card="" href="#hadoop-version-support-matrix-for-eom-15-release-lines" class="peer">Hadoop version support matrix for EOM 1.5+ release lines</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
<div class="relative overflow-auto prose-no-margin my-6"><table><thead><tr><th></th><th>HBase-1.0.x (Hadoop 1.x is NOT supported)</th><th>HBase-1.1.x</th><th>HBase-1.2.x</th><th>HBase-1.3.x</th><th>HBase-1.4.x</th></tr></thead><tbody><tr><td>Hadoop-2.4.x</td><td>✅</td><td>✅</td><td>✅</td><td>✅</td><td>❌</td></tr><tr><td>Hadoop-2.5.x</td><td>✅</td><td>✅</td><td>✅</td><td>✅</td><td>❌</td></tr><tr><td>Hadoop-2.6.0</td><td>❌</td><td>❌</td><td>❌</td><td>❌</td><td>❌</td></tr><tr><td>Hadoop-2.6.1+</td><td>⚠️</td><td>⚠️</td><td>✅</td><td>✅</td><td>❌</td></tr><tr><td>Hadoop-2.7.0</td><td>❌</td><td>❌</td><td>❌</td><td>❌</td><td>❌</td></tr><tr><td>Hadoop-2.7.1+</td><td>⚠️</td><td>⚠️</td><td>✅</td><td>✅</td><td>✅</td></tr></tbody></table></div>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="hadoop-version-support-matrix-for-eom-1x-release-lines"><a data-card="" href="#hadoop-version-support-matrix-for-eom-1x-release-lines" class="peer">Hadoop version support matrix for EOM 1.x release lines</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
<div class="relative overflow-auto prose-no-margin my-6"><table><thead><tr><th></th><th>HBase-0.92.x</th><th>HBase-0.94.x</th><th>HBase-0.96.x</th><th>HBase-0.98.x (Support for Hadoop 1.1+ is deprecated.)</th></tr></thead><tbody><tr><td>Hadoop-0.20.205</td><td>✅</td><td>❌</td><td>❌</td><td>❌</td></tr><tr><td>Hadoop-0.22.x</td><td>✅</td><td>❌</td><td>❌</td><td>❌</td></tr><tr><td>Hadoop-1.0.x</td><td>❌</td><td>❌</td><td>❌</td><td>❌</td></tr><tr><td>Hadoop-1.1.x</td><td>⚠️</td><td>✅</td><td>✅</td><td>⚠️</td></tr><tr><td>Hadoop-0.23.x</td><td>❌</td><td>✅</td><td>⚠️</td><td>❌</td></tr><tr><td>Hadoop-2.0.x-alpha</td><td>❌</td><td>⚠️</td><td>❌</td><td>❌</td></tr><tr><td>Hadoop-2.1.0-beta</td><td>❌</td><td>⚠️</td><td>✅</td><td>❌</td></tr><tr><td>Hadoop-2.2.0</td><td>❌</td><td>⚠️</td><td>✅</td><td>✅</td></tr><tr><td>Hadoop-2.3.x</td><td>❌</td><td>⚠️</td><td>✅</td><td>✅</td></tr><tr><td>Hadoop-2.4.x</td><td>❌</td><td>⚠️</td><td>✅</td><td>✅</td></tr><tr><td>Hadoop-2.5.x</td><td>❌</td><td>⚠️</td><td>✅</td><td>✅</td></tr></tbody></table></div>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="hadoop-version-support-matrix-for-eom-pre-10-release-lines"><a data-card="" href="#hadoop-version-support-matrix-for-eom-pre-10-release-lines" class="peer">Hadoop version support matrix for EOM pre-1.0 release lines</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
<div class="flex gap-2 my-4 rounded-xl border bg-fd-card p-3 ps-1 text-sm text-fd-card-foreground shadow-md" style="--callout-color:var(--color-fd-idea, var(--color-fd-muted))"><div role="none" class="w-0.5 bg-(--callout-color)/50 rounded-sm"></div><div class="flex flex-col gap-2 min-w-0 flex-1"><div class="text-fd-muted-foreground prose-no-margin empty:hidden"><p class="wrap-anywhere">Starting around the time of Hadoop version 2.7.0, the Hadoop PMC got into the habit of calling out
new minor releases on their major version 2 release line as not stable / production ready. As
such, HBase expressly advises downstream users to avoid running on top of these releases. Note
that additionally the 2.8.1 release was given the same caveat by the Hadoop PMC. For reference,
see the release announcements for <a href="https://s.apache.org/hadoop-2.7.0-announcement">Apache Hadoop
2.7.0</a>, <a href="https://s.apache.org/hadoop-2.8.0-announcement">Apache Hadoop
2.8.0</a>, <a href="https://s.apache.org/hadoop-2.8.1-announcement">Apache Hadoop
2.8.1</a>, and <a href="https://s.apache.org/hadoop-2.9.0-announcement">Apache Hadoop
2.9.0</a>.</p></div></div></div>
<div class="flex gap-2 my-4 rounded-xl border bg-fd-card p-3 ps-1 text-sm text-fd-card-foreground shadow-md" style="--callout-color:var(--color-fd-idea, var(--color-fd-muted))"><div role="none" class="w-0.5 bg-(--callout-color)/50 rounded-sm"></div><div class="flex flex-col gap-2 min-w-0 flex-1"><div class="text-fd-muted-foreground prose-no-margin empty:hidden"><p class="wrap-anywhere">The Hadoop PMC called out the 3.1.0 release as not stable / production ready. As such, HBase
expressly advises downstream users to avoid running on top of this release. For reference, see the
<a href="https://s.apache.org/hadoop-3.1.0-announcement">release announcement for Hadoop 3.1.0</a>.</p></div></div></div>
<div class="flex gap-2 my-4 rounded-xl border bg-fd-card p-3 ps-1 text-sm text-fd-card-foreground shadow-md" style="--callout-color:var(--color-fd-info, var(--color-fd-muted))"><div role="none" class="w-0.5 bg-(--callout-color)/50 rounded-sm"></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-5 -me-0.5 fill-(--callout-color) text-fd-card"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg><div class="flex flex-col gap-2 min-w-0 flex-1"><div class="text-fd-muted-foreground prose-no-margin empty:hidden"><p class="wrap-anywhere">Because HBase depends on Hadoop, it bundles Hadoop jars under its <em>lib</em> directory. The bundled
jars are ONLY for use in stand-alone mode. In distributed mode, it is <em>critical</em> that the version
of Hadoop that is out on your cluster match what is under HBase. Replace the hadoop jars found in
the HBase lib directory with the equivalent hadoop jars from the version you are running on your
cluster to avoid version mismatch issues. Make sure you replace the jars under HBase across your
whole cluster. Hadoop version mismatch issues have various manifestations. Check for mismatch if
HBase appears hung.</p></div></div></div>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="hadoop-3-support-for-the-hbase-binary-releases-and-maven-artifacts"><a data-card="" href="#hadoop-3-support-for-the-hbase-binary-releases-and-maven-artifacts" class="peer">Hadoop 3 Support for the HBase Binary Releases and Maven Artifacts</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
<p class="wrap-anywhere">For HBase 2.5.1 and earlier, the official HBase binary releases and Maven artifacts were built with Hadoop 2.x.</p>
<p class="wrap-anywhere">Starting with HBase 2.5.2, HBase provides binary releases and Maven artifacts built with both Hadoop 2.x and Hadoop 3.x. The Hadoop 2 artifacts do not have any version suffix, the Hadoop 3 artifacts add the <code>-hadoop-3</code> suffix to the version. i.e. <code>hbase-2.5.2-bin.tar.gz.asc</code> is the Binary release built with Hadoop2, and <code>hbase-2.5.2-hadoop3-bin.tar.gz</code> is the release built with Hadoop 3.</p>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="hadoop-3-version-policy"><a data-card="" href="#hadoop-3-version-policy" class="peer">Hadoop 3 version policy</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
<p class="wrap-anywhere">Each HBase release has a default Hadoop 3 version. This is used when the Hadoop 3 version is not specified during build, and for building the official binary releases and artifacts. Generally when a new minor version is released (i.e. 2.5.0) the default version is set to the latest supported Hadoop 3 version at the start of the release process.</p>
<p class="wrap-anywhere">Up to HBase 2.5.10 and 2.6.1 even if HBase added support for newer Hadoop 3 releases in a patch release, the default Hadoop 3 version (and the one used in the official binary releases) was not updated. This simplified upgrading, but meant that HBase releases often included old unfixed CVEs both from Hadoop and Hadoop&#x27;s dependencies, even when newer Hadoop releases with fixes were available.</p>
<p class="wrap-anywhere">Starting with HBase 2.5.11 and 2.6.2, the default Hadoop 3 version is always set to the latest supported Hadoop 3 version, and is also used for the <code>-hadoop3</code> binary releases and artifacts. This will drastically reduce the number of known CVEs shipped in the HBase binary releases, and make sure that all fixes and improvements in Hadoop are included.</p>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="dfsdatanodemaxtransferthreads"><a data-card="" href="#dfsdatanodemaxtransferthreads" class="peer"><code>dfs.datanode.max.transfer.threads</code></a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
<p class="wrap-anywhere">An HDFS DataNode has an upper bound on the number of files that it will serve at any one time. Before doing any loading, make sure you have configured Hadoop&#x27;s <em>conf/hdfs-site.xml</em>, setting the <code>dfs.datanode.max.transfer.threads</code> value to at least the following:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-xl shiki relative border shadow-sm not-prose overflow-hidden text-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-2 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[13px] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&lt;</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D">property</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&gt;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> &lt;</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D">name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&gt;dfs.datanode.max.transfer.threads&lt;/</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D">name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&gt;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> &lt;</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D">value</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&gt;4096&lt;/</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D">value</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&gt;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&lt;/</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D">property</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&gt;</span></span></code></pre></div></figure>
<p class="wrap-anywhere">Be sure to restart your HDFS after making the above configuration.</p>
<p class="wrap-anywhere">Not having this configuration in place makes for strange-looking failures. One manifestation is a complaint about missing blocks. For example:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-xl shiki relative border shadow-sm not-prose overflow-hidden text-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-2 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[13px] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span>10/12/08 20:10:31 INFO hdfs.DFSClient: Could not obtain block</span></span>
<span class="line"><span> blk_XXXXXXXXXXXXXXXXXXXXXX_YYYYYYYY from any node: java.io.IOException: No live nodes</span></span>
<span class="line"><span> contain current block. Will get new block locations from namenode and retry...</span></span></code></pre></div></figure>
<p class="wrap-anywhere">See also <a href="/docs/case-studies#case-study-4-maxtransferthreads-config" data-discover="true">Case Studies</a> and note that this property was previously known as <code>dfs.datanode.max.xcievers</code> (e.g. <a href="http://ccgtech.blogspot.com/2010/02/hadoop-hdfs-deceived-by-xciever.html">Hadoop HDFS: Deceived by Xciever</a>).</p>
<h2 class="flex scroll-m-28 flex-row items-center gap-2" id="zookeeper-requirements"><a data-card="" href="#zookeeper-requirements" class="peer">ZooKeeper Requirements</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h2>
<p class="wrap-anywhere">An Apache ZooKeeper quorum is required. The exact version depends on your version of HBase, though the minimum ZooKeeper version is 3.4.x due to the <code>useMulti</code> feature made default in 1.0.0 (see <a href="https://issues.apache.org/jira/browse/HBASE-16598">HBASE-16598</a>).</p></div><a href="https://github.com/apache/hbase/edit/master/hbase-website/app/pages/_docs/docs/_mdx/(multi-page)/configuration/basic-prerequisites.mdx" rel="noreferrer noopener" target="_blank" class="no-print text-fd-secondary-foreground bg-fd-secondary hover:text-fd-accent-foreground hover:bg-fd-accent w-fit rounded-xl border p-2 text-sm font-medium transition-colors">Edit on GitHub</a><div class="@container grid gap-4 grid-cols-2"><a class="hover:bg-fd-accent/80 hover:text-fd-accent-foreground flex flex-col gap-2 rounded-lg border p-4 text-sm transition-colors @max-lg:col-span-full" href="/docs/configuration" data-discover="true"><div class="inline-flex items-center gap-1.5 font-medium"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-left -mx-1 size-4 shrink-0 rtl:rotate-180"><path d="m15 18-6-6 6-6"></path></svg><p>Configuration</p></div><p class="text-fd-muted-foreground truncate">Complete guide to HBase configuration including all settings, tuning parameters, and best practices.</p></a><a class="hover:bg-fd-accent/80 hover:text-fd-accent-foreground flex flex-col gap-2 rounded-lg border p-4 text-sm transition-colors @max-lg:col-span-full text-end" href="/docs/configuration/hbase-run-models" data-discover="true"><div class="inline-flex items-center gap-1.5 font-medium flex-row-reverse"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right -mx-1 size-4 shrink-0 rtl:rotate-180"><path d="m9 18 6-6-6-6"></path></svg><p>HBase run modes: Standalone and Distributed</p></div><p class="text-fd-muted-foreground truncate">Understanding HBase deployment modes: standalone mode for development and distributed mode for production clusters.</p></a></div></article><div id="nd-toc" class="sticky top-(--fd-docs-row-1) flex h-[calc(var(--fd-docs-height)-var(--fd-docs-row-1))] w-(--fd-toc-width) flex-col justify-self-end pe-4 pt-12 pb-2 [grid-area:toc] max-xl:hidden"><h3 id="toc-title" class="text-fd-muted-foreground inline-flex items-center gap-1.5 text-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-text size-4"><path d="M17 6.1H3"></path><path d="M21 12.1H3"></path><path d="M15.1 18H3"></path></svg>On this page</h3><div class="relative ms-px min-h-0 overflow-auto mask-[linear-gradient(to_bottom,transparent,white_16px,white_calc(100%-16px),transparent)] py-3 text-sm [scrollbar-width:none]"><div class="flex flex-col"><a data-active="false" href="#configuration-basic-prerequisites-java" style="padding-inline-start:14px" class="prose text-fd-muted-foreground hover:text-fd-accent-foreground data-[active=true]:text-fd-primary relative py-1.5 text-sm wrap-anywhere transition-colors first:pt-0 last:pb-0"><div class="bg-fd-foreground/10 absolute inset-y-0 w-px bottom-1.5" style="inset-inline-start:0"></div>Java</a><a data-active="false" href="#operating-system-utilities" style="padding-inline-start:26px" class="prose text-fd-muted-foreground hover:text-fd-accent-foreground data-[active=true]:text-fd-primary relative py-1.5 text-sm wrap-anywhere transition-colors first:pt-0 last:pb-0"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="absolute start-0 -top-1.5 size-4 rtl:-scale-x-100"><line x1="0" y1="0" x2="10" y2="12" class="stroke-fd-foreground/10" stroke-width="1"></line></svg><div class="bg-fd-foreground/10 absolute inset-y-0 w-px top-1.5" style="inset-inline-start:10px"></div>Operating System Utilities</a><a data-active="false" href="#ssh" style="padding-inline-start:36px" class="prose text-fd-muted-foreground hover:text-fd-accent-foreground data-[active=true]:text-fd-primary relative py-1.5 text-sm wrap-anywhere transition-colors first:pt-0 last:pb-0"><div class="bg-fd-foreground/10 absolute inset-y-0 w-px" style="inset-inline-start:10px"></div>ssh</a><a data-active="false" href="#dns" style="padding-inline-start:36px" class="prose text-fd-muted-foreground hover:text-fd-accent-foreground data-[active=true]:text-fd-primary relative py-1.5 text-sm wrap-anywhere transition-colors first:pt-0 last:pb-0"><div class="bg-fd-foreground/10 absolute inset-y-0 w-px" style="inset-inline-start:10px"></div>DNS</a><a data-active="false" href="#ntp" style="padding-inline-start:36px" class="prose text-fd-muted-foreground hover:text-fd-accent-foreground data-[active=true]:text-fd-primary relative py-1.5 text-sm wrap-anywhere transition-colors first:pt-0 last:pb-0"><div class="bg-fd-foreground/10 absolute inset-y-0 w-px" style="inset-inline-start:10px"></div>NTP</a><a data-active="false" href="#limits-on-number-of-files-and-processes-ulimit" style="padding-inline-start:36px" class="prose text-fd-muted-foreground hover:text-fd-accent-foreground data-[active=true]:text-fd-primary relative py-1.5 text-sm wrap-anywhere transition-colors first:pt-0 last:pb-0"><div class="bg-fd-foreground/10 absolute inset-y-0 w-px" style="inset-inline-start:10px"></div>Limits on Number of Files and Processes (ulimit)</a><a data-active="false" href="#linux-shell" style="padding-inline-start:36px" class="prose text-fd-muted-foreground hover:text-fd-accent-foreground data-[active=true]:text-fd-primary relative py-1.5 text-sm wrap-anywhere transition-colors first:pt-0 last:pb-0"><div class="bg-fd-foreground/10 absolute inset-y-0 w-px" style="inset-inline-start:10px"></div>Linux Shell</a><a data-active="false" href="#windows" style="padding-inline-start:36px" class="prose text-fd-muted-foreground hover:text-fd-accent-foreground data-[active=true]:text-fd-primary relative py-1.5 text-sm wrap-anywhere transition-colors first:pt-0 last:pb-0"><div class="bg-fd-foreground/10 absolute inset-y-0 w-px bottom-1.5" style="inset-inline-start:10px"></div>Windows</a><a data-active="false" href="#hadoop" style="padding-inline-start:14px" class="prose text-fd-muted-foreground hover:text-fd-accent-foreground data-[active=true]:text-fd-primary relative py-1.5 text-sm wrap-anywhere transition-colors first:pt-0 last:pb-0"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="absolute start-0 -top-1.5 size-4 rtl:-scale-x-100"><line x1="10" y1="0" x2="0" y2="12" class="stroke-fd-foreground/10" stroke-width="1"></line></svg><div class="bg-fd-foreground/10 absolute inset-y-0 w-px top-1.5 bottom-1.5" style="inset-inline-start:0"></div>Hadoop</a><a data-active="false" href="#hadoop-version-support-matrix-for-active-release-lines" style="padding-inline-start:26px" class="prose text-fd-muted-foreground hover:text-fd-accent-foreground data-[active=true]:text-fd-primary relative py-1.5 text-sm wrap-anywhere transition-colors first:pt-0 last:pb-0"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="absolute start-0 -top-1.5 size-4 rtl:-scale-x-100"><line x1="0" y1="0" x2="10" y2="12" class="stroke-fd-foreground/10" stroke-width="1"></line></svg><div class="bg-fd-foreground/10 absolute inset-y-0 w-px top-1.5" style="inset-inline-start:10px"></div>Hadoop version support matrix for active release lines</a><a data-active="false" href="#hadoop-version-support-matrix-for-eom-23-release-lines" style="padding-inline-start:26px" class="prose text-fd-muted-foreground hover:text-fd-accent-foreground data-[active=true]:text-fd-primary relative py-1.5 text-sm wrap-anywhere transition-colors first:pt-0 last:pb-0"><div class="bg-fd-foreground/10 absolute inset-y-0 w-px" style="inset-inline-start:10px"></div>Hadoop version support matrix for EOM 2.3+ release lines</a><a data-active="false" href="#hadoop-version-support-matrix-for-eom-2x-release-lines" style="padding-inline-start:26px" class="prose text-fd-muted-foreground hover:text-fd-accent-foreground data-[active=true]:text-fd-primary relative py-1.5 text-sm wrap-anywhere transition-colors first:pt-0 last:pb-0"><div class="bg-fd-foreground/10 absolute inset-y-0 w-px" style="inset-inline-start:10px"></div>Hadoop version support matrix for EOM 2.x release lines</a><a data-active="false" href="#hadoop-version-support-matrix-for-eom-15-release-lines" style="padding-inline-start:26px" class="prose text-fd-muted-foreground hover:text-fd-accent-foreground data-[active=true]:text-fd-primary relative py-1.5 text-sm wrap-anywhere transition-colors first:pt-0 last:pb-0"><div class="bg-fd-foreground/10 absolute inset-y-0 w-px" style="inset-inline-start:10px"></div>Hadoop version support matrix for EOM 1.5+ release lines</a><a data-active="false" href="#hadoop-version-support-matrix-for-eom-1x-release-lines" style="padding-inline-start:26px" class="prose text-fd-muted-foreground hover:text-fd-accent-foreground data-[active=true]:text-fd-primary relative py-1.5 text-sm wrap-anywhere transition-colors first:pt-0 last:pb-0"><div class="bg-fd-foreground/10 absolute inset-y-0 w-px" style="inset-inline-start:10px"></div>Hadoop version support matrix for EOM 1.x release lines</a><a data-active="false" href="#hadoop-version-support-matrix-for-eom-pre-10-release-lines" style="padding-inline-start:26px" class="prose text-fd-muted-foreground hover:text-fd-accent-foreground data-[active=true]:text-fd-primary relative py-1.5 text-sm wrap-anywhere transition-colors first:pt-0 last:pb-0"><div class="bg-fd-foreground/10 absolute inset-y-0 w-px" style="inset-inline-start:10px"></div>Hadoop version support matrix for EOM pre-1.0 release lines</a><a data-active="false" href="#hadoop-3-support-for-the-hbase-binary-releases-and-maven-artifacts" style="padding-inline-start:26px" class="prose text-fd-muted-foreground hover:text-fd-accent-foreground data-[active=true]:text-fd-primary relative py-1.5 text-sm wrap-anywhere transition-colors first:pt-0 last:pb-0"><div class="bg-fd-foreground/10 absolute inset-y-0 w-px" style="inset-inline-start:10px"></div>Hadoop 3 Support for the HBase Binary Releases and Maven Artifacts</a><a data-active="false" href="#hadoop-3-version-policy" style="padding-inline-start:26px" class="prose text-fd-muted-foreground hover:text-fd-accent-foreground data-[active=true]:text-fd-primary relative py-1.5 text-sm wrap-anywhere transition-colors first:pt-0 last:pb-0"><div class="bg-fd-foreground/10 absolute inset-y-0 w-px" style="inset-inline-start:10px"></div>Hadoop 3 version policy</a><a data-active="false" href="#dfsdatanodemaxtransferthreads" style="padding-inline-start:26px" class="prose text-fd-muted-foreground hover:text-fd-accent-foreground data-[active=true]:text-fd-primary relative py-1.5 text-sm wrap-anywhere transition-colors first:pt-0 last:pb-0"><div class="bg-fd-foreground/10 absolute inset-y-0 w-px bottom-1.5" style="inset-inline-start:10px"></div><code>dfs.datanode.max.transfer.threads</code></a><a data-active="false" href="#zookeeper-requirements" style="padding-inline-start:14px" class="prose text-fd-muted-foreground hover:text-fd-accent-foreground data-[active=true]:text-fd-primary relative py-1.5 text-sm wrap-anywhere transition-colors first:pt-0 last:pb-0"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="absolute start-0 -top-1.5 size-4 rtl:-scale-x-100"><line x1="10" y1="0" x2="0" y2="12" class="stroke-fd-foreground/10" stroke-width="1"></line></svg><div class="bg-fd-foreground/10 absolute inset-y-0 w-px top-1.5" style="inset-inline-start:0"></div>ZooKeeper Requirements</a></div></div></div></div><script>((storageKey2, restoreKey) => {
if (!window.history.state || !window.history.state.key) {
let key = Math.random().toString(32).slice(2);
window.history.replaceState({ key }, "");
}
try {
let positions = JSON.parse(sessionStorage.getItem(storageKey2) || "{}");
let storedY = positions[restoreKey || window.history.state.key];
if (typeof storedY === "number") {
window.scrollTo(0, storedY);
}
} catch (error) {
console.error(error);
sessionStorage.removeItem(storageKey2);
}
})("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"unstable_optimizeDeps":false,"v8_passThroughRequests":false,"v8_trailingSlashAwareDataRequests":false,"unstable_previewServerPrerendering":false,"v8_middleware":false,"v8_splitRouteModules":false,"v8_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());</script><script type="module" async="">import "/assets/manifest-baf72bfa.js";
import * as route0 from "/assets/root-COkOICkm.js";
import * as route1 from "/assets/docs-layout-5T1N7EZh.js";
import * as route2 from "/assets/docs-DMCF1KDd.js";
window.__reactRouterRouteModules = {"root":route0,"pages/_docs/docs-layout":route1,"routes/_docs/docs":route2};
import("/assets/entry.client-Bi9_frb9.js");</script><!--$--><script>window.__reactRouterContext.streamController.enqueue("[{\"_1\":2,\"_3\":-5,\"_4\":-5},\"loaderData\",{\"_5\":6},\"actionData\",\"errors\",\"routes/_docs/docs\",{\"_7\":8,\"_9\":10,\"_11\":12},\"path\",\"(multi-page)/configuration/basic-prerequisites.mdx\",\"url\",\"/docs/configuration/basic-prerequisites\",\"tree\",{\"_13\":14,\"_15\":16,\"_17\":18},\"$id\",\"root\",\"name\",\"Docs\",\"children\",[19,20],{\"_21\":22,\"_15\":44,\"_24\":-7,\"_14\":25,\"_26\":-7,\"_27\":45,\"_29\":-7,\"_17\":46,\"_13\":47,\"_32\":48},{\"_21\":22,\"_15\":23,\"_24\":-7,\"_14\":25,\"_26\":-7,\"_27\":28,\"_29\":-7,\"_17\":30,\"_13\":31,\"_32\":33},\"type\",\"folder\",\"Single-Page Documentation\",\"icon\",true,\"defaultOpen\",\"description\",\"Entire docs on one page\",\"index\",[36],\"single-page\",\"$ref\",{\"_34\":35},\"metaFile\",\"single-page/meta.json\",{\"_13\":37,\"_21\":38,\"_15\":39,\"_27\":40,\"_24\":-7,\"_9\":41,\"_32\":42},\"single-page/index.mdx\",\"page\",\"Apache HBase Documentation\",\"Complete Apache HBase documentation in one continuous page.\",\"/docs/single-page\",{\"_43\":37},\"file\",\"Multi-Page Documentation\",\"Split across multiple pages\",[50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109],\"(multi-page)\",{\"_34\":49},\"(multi-page)/meta.json\",{\"_13\":727,\"_21\":176,\"_24\":-7,\"_15\":718},{\"_13\":722,\"_21\":38,\"_15\":723,\"_27\":724,\"_24\":-7,\"_9\":725,\"_32\":726},{\"_13\":717,\"_21\":38,\"_15\":718,\"_27\":719,\"_24\":-7,\"_9\":720,\"_32\":721},{\"_21\":38,\"_24\":-7,\"_15\":714,\"_9\":715,\"_716\":25},{\"_13\":712,\"_21\":176,\"_24\":-7,\"_15\":713},{\"_21\":22,\"_15\":662,\"_24\":-7,\"_14\":-7,\"_26\":-7,\"_27\":-7,\"_29\":663,\"_17\":664,\"_13\":665,\"_32\":666},{\"_21\":22,\"_15\":628,\"_24\":-7,\"_14\":-7,\"_26\":-7,\"_27\":-7,\"_29\":629,\"_17\":630,\"_13\":631,\"_32\":632},{\"_13\":623,\"_21\":38,\"_15\":624,\"_27\":625,\"_24\":-7,\"_9\":626,\"_32\":627},{\"_13\":621,\"_21\":176,\"_24\":-7,\"_15\":622},{\"_13\":616,\"_21\":38,\"_15\":617,\"_27\":618,\"_24\":-7,\"_9\":619,\"_32\":620},{\"_13\":611,\"_21\":38,\"_15\":612,\"_27\":613,\"_24\":-7,\"_9\":614,\"_32\":615},{\"_13\":606,\"_21\":38,\"_15\":607,\"_27\":608,\"_24\":-7,\"_9\":609,\"_32\":610},{\"_13\":601,\"_21\":38,\"_15\":602,\"_27\":603,\"_24\":-7,\"_9\":604,\"_32\":605},{\"_21\":22,\"_15\":549,\"_24\":-7,\"_14\":-7,\"_26\":-7,\"_27\":-7,\"_29\":550,\"_17\":551,\"_13\":552,\"_32\":553},{\"_21\":22,\"_15\":468,\"_24\":-7,\"_14\":-7,\"_26\":-7,\"_27\":-7,\"_29\":469,\"_17\":470,\"_13\":471,\"_32\":472},{\"_13\":466,\"_21\":176,\"_24\":-7,\"_15\":467},{\"_13\":461,\"_21\":38,\"_15\":462,\"_27\":463,\"_24\":-7,\"_9\":464,\"_32\":465},{\"_13\":456,\"_21\":38,\"_15\":457,\"_27\":458,\"_24\":-7,\"_9\":459,\"_32\":460},{\"_21\":22,\"_15\":422,\"_24\":-7,\"_14\":-7,\"_26\":-7,\"_27\":-7,\"_29\":423,\"_17\":424,\"_13\":425,\"_32\":426},{\"_13\":417,\"_21\":38,\"_15\":418,\"_27\":419,\"_24\":-7,\"_9\":420,\"_32\":421},{\"_13\":415,\"_21\":176,\"_24\":-7,\"_15\":416},{\"_13\":410,\"_21\":38,\"_15\":411,\"_27\":412,\"_24\":-7,\"_9\":413,\"_32\":414},{\"_13\":405,\"_21\":38,\"_15\":406,\"_27\":407,\"_24\":-7,\"_9\":408,\"_32\":409},{\"_13\":400,\"_21\":38,\"_15\":401,\"_27\":402,\"_24\":-7,\"_9\":403,\"_32\":404},{\"_13\":395,\"_21\":38,\"_15\":396,\"_27\":397,\"_24\":-7,\"_9\":398,\"_32\":399},{\"_13\":390,\"_21\":38,\"_15\":391,\"_27\":392,\"_24\":-7,\"_9\":393,\"_32\":394},{\"_13\":388,\"_21\":176,\"_24\":-7,\"_15\":389},{\"_13\":383,\"_21\":38,\"_15\":384,\"_27\":385,\"_24\":-7,\"_9\":386,\"_32\":387},{\"_13\":378,\"_21\":38,\"_15\":379,\"_27\":380,\"_24\":-7,\"_9\":381,\"_32\":382},{\"_13\":373,\"_21\":38,\"_15\":374,\"_27\":375,\"_24\":-7,\"_9\":376,\"_32\":377},{\"_13\":368,\"_21\":38,\"_15\":369,\"_27\":370,\"_24\":-7,\"_9\":371,\"_32\":372},{\"_13\":366,\"_21\":176,\"_24\":-7,\"_15\":367},{\"_21\":22,\"_15\":308,\"_24\":-7,\"_14\":-7,\"_26\":-7,\"_27\":-7,\"_29\":309,\"_17\":310,\"_13\":311,\"_32\":312},{\"_21\":22,\"_15\":232,\"_24\":-7,\"_14\":-7,\"_26\":-7,\"_27\":-7,\"_29\":233,\"_17\":234,\"_13\":235,\"_32\":236},{\"_13\":227,\"_21\":38,\"_15\":228,\"_27\":229,\"_24\":-7,\"_9\":230,\"_32\":231},{\"_13\":225,\"_21\":176,\"_24\":-7,\"_15\":226},{\"_13\":220,\"_21\":38,\"_15\":221,\"_27\":222,\"_24\":-7,\"_9\":223,\"_32\":224},{\"_13\":215,\"_21\":38,\"_15\":216,\"_27\":217,\"_24\":-7,\"_9\":218,\"_32\":219},{\"_13\":210,\"_21\":38,\"_15\":211,\"_27\":212,\"_24\":-7,\"_9\":213,\"_32\":214},{\"_13\":208,\"_21\":176,\"_24\":-7,\"_15\":209},{\"_13\":203,\"_21\":38,\"_15\":204,\"_27\":205,\"_24\":-7,\"_9\":206,\"_32\":207},{\"_13\":198,\"_21\":38,\"_15\":199,\"_27\":200,\"_24\":-7,\"_9\":201,\"_32\":202},{\"_13\":193,\"_21\":38,\"_15\":194,\"_27\":195,\"_24\":-7,\"_9\":196,\"_32\":197},{\"_13\":188,\"_21\":38,\"_15\":189,\"_27\":190,\"_24\":-7,\"_9\":191,\"_32\":192},{\"_13\":183,\"_21\":38,\"_15\":184,\"_27\":185,\"_24\":-7,\"_9\":186,\"_32\":187},{\"_13\":178,\"_21\":38,\"_15\":179,\"_27\":180,\"_24\":-7,\"_9\":181,\"_32\":182},{\"_13\":175,\"_21\":176,\"_24\":-7,\"_15\":177},{\"_13\":170,\"_21\":38,\"_15\":171,\"_27\":172,\"_24\":-7,\"_9\":173,\"_32\":174},{\"_13\":165,\"_21\":38,\"_15\":166,\"_27\":167,\"_24\":-7,\"_9\":168,\"_32\":169},{\"_13\":160,\"_21\":38,\"_15\":161,\"_27\":162,\"_24\":-7,\"_9\":163,\"_32\":164},{\"_13\":155,\"_21\":38,\"_15\":156,\"_27\":157,\"_24\":-7,\"_9\":158,\"_32\":159},{\"_13\":150,\"_21\":38,\"_15\":151,\"_27\":152,\"_24\":-7,\"_9\":153,\"_32\":154},{\"_13\":145,\"_21\":38,\"_15\":146,\"_27\":147,\"_24\":-7,\"_9\":148,\"_32\":149},{\"_13\":140,\"_21\":38,\"_15\":141,\"_27\":142,\"_24\":-7,\"_9\":143,\"_32\":144},{\"_13\":135,\"_21\":38,\"_15\":136,\"_27\":137,\"_24\":-7,\"_9\":138,\"_32\":139},{\"_13\":130,\"_21\":38,\"_15\":131,\"_27\":132,\"_24\":-7,\"_9\":133,\"_32\":134},{\"_13\":125,\"_21\":38,\"_15\":126,\"_27\":127,\"_24\":-7,\"_9\":128,\"_32\":129},{\"_13\":120,\"_21\":38,\"_15\":121,\"_27\":122,\"_24\":-7,\"_9\":123,\"_32\":124},{\"_13\":115,\"_21\":38,\"_15\":116,\"_27\":117,\"_24\":-7,\"_9\":118,\"_32\":119},{\"_13\":110,\"_21\":38,\"_15\":111,\"_27\":112,\"_24\":-7,\"_9\":113,\"_32\":114},\"(multi-page)/hbase-incompatibilities.mdx\",\"Known Incompatibilities Among HBase Versions\",\"Comprehensive list of breaking changes and incompatibilities between HBase versions, particularly for HBase 2.0.\",\"/docs/hbase-incompatibilities\",{\"_43\":110},\"(multi-page)/rpc.mdx\",\"0.95 RPC Specification\",\"HBase RPC wire format and client/server protocol specification for version 0.95+.\",\"/docs/rpc\",{\"_43\":115},\"(multi-page)/orca.mdx\",\"Apache HBase Orca\",\"Apache HBase Orca, HBase Colors, \u0026 Font\",\"/docs/orca\",{\"_43\":120},\"(multi-page)/asf.mdx\",\"HBase and the Apache Software Foundation\",\"HBase is a project in the Apache Software Foundation and as such there are responsibilities to the ASF to ensure a healthy project.\",\"/docs/asf\",{\"_43\":125},\"(multi-page)/hbase-history.mdx\",\"HBase History\",\"Timeline of Apache HBase development from its origins in Google's BigTable paper to becoming an Apache top-level project.\",\"/docs/hbase-history\",{\"_43\":130},\"(multi-page)/other-info.mdx\",\"Other Information About HBase\",\"Collection of HBase videos, presentations, papers, books, and useful external resources for learning and understanding HBase.\",\"/docs/other-info\",{\"_43\":135},\"(multi-page)/hfile-format.mdx\",\"HFile Format\",\"This appendix describes the evolution of the HFile format.\",\"/docs/hfile-format\",{\"_43\":140},\"(multi-page)/ycsb.mdx\",\"YCSB\",\"Documentation for YCSB (The Yahoo! Cloud Serving Benchmark)\",\"/docs/ycsb\",{\"_43\":145},\"(multi-page)/sql.mdx\",\"SQL over HBase\",\"The following projects offer some support for SQL over HBase.\",\"/docs/sql\",{\"_43\":150},\"(multi-page)/compression.mdx\",\"Compression and Data Block Encoding In HBase\",\"Comprehensive guide to compression algorithms and data block encoding options in HBase for optimizing storage and performance.\",\"/docs/compression\",{\"_43\":155},\"(multi-page)/acl-matrix.mdx\",\"Access Control Matrix\",\"The following matrix shows the permission set required to perform operations in HBase. Before using the table, read through the information about how to interpret it.\",\"/docs/acl-matrix\",{\"_43\":160},\"(multi-page)/faq.mdx\",\"FAQ\",\"Frequently asked questions about Apache HBase.\",\"/docs/faq\",{\"_43\":165},\"(multi-page)/contributing-to-documentation.mdx\",\"Appendix: Contributing to Documentation\",\"Guide for contributing to Apache HBase documentation, including patch submission procedures, website editing, style guidelines, and best practices.\",\"/docs/contributing-to-documentation\",{\"_43\":170},\"(multi-page)#46\",\"separator\",\"Appendices\",\"(multi-page)/bulk-data-generator-tool.mdx\",\"Bulk Data Generator Tool\",\"This is a random data generator tool for HBase tables leveraging Hbase bulk load. It can create pre-splited HBase table and the generated data is uniformly distributed to all the regions of the table.\",\"/docs/bulk-data-generator-tool\",{\"_43\":178},\"(multi-page)/store-file-tracking.mdx\",\"Store File Tracking\",\"This feature introduces an abstraction layer to track store files still used/needed by store engines, allowing for plugging different approaches of identifying store files required by the given store.\",\"/docs/store-file-tracking\",{\"_43\":183},\"(multi-page)/tracing.mdx\",\"Tracing\",\"HBase used to depend on the HTrace project for tracing. After the Apache HTrace project moved to the Attic/retired, we decided to move to OpenTelemetry in HBASE-22120.\",\"/docs/tracing\",{\"_43\":188},\"(multi-page)/hbtop.mdx\",\"hbtop\",\"hbtop is a real-time monitoring tool for HBase like Unix's top command. It can display summary information as well as metrics per Region/Namespace/Table/RegionServer. In this tool, you can see the metrics sorted by a selected field and filter the metrics to see only metrics you really want to see.\",\"/docs/hbtop\",{\"_43\":193},\"(multi-page)/community.mdx\",\"Community\",\"HBase community decisions, release managers, JIRA policies, commit message format, and guidelines for feature branches.\",\"/docs/community\",{\"_43\":198},\"(multi-page)/zookeeper.mdx\",\"ZooKeeper\",\"A distributed Apache HBase installation depends on a running ZooKeeper cluster. All participating nodes and clients need to be able to access the running ZooKeeper ensemble.\",\"/docs/zookeeper\",{\"_43\":203},\"(multi-page)#39\",\"Infrastructure \u0026 Tools\",\"(multi-page)/amv2.mdx\",\"AMv2 Description for Devs\",\"The AssignmentManager (AM) in HBase Master manages assignment of Regions over a cluster of RegionServers.\",\"/docs/amv2\",{\"_43\":210},\"(multi-page)/pv2.mdx\",\"Procedure Framework (PV2)\",\"Procedure v2 ...aims to provide a unified way to build...multi-step procedures with a rollback/roll-forward ability in case of failure (e.g. create/delete table) — Matteo Bertozzi, the author of Pv2.\",\"/docs/pv2\",{\"_43\":215},\"(multi-page)/protobuf.mdx\",\"Protobuf in HBase\",\"Detailed guide on how HBase uses Protocol Buffers for serialization, RPC interfaces, and coprocessor endpoints, including shading and versioning considerations.\",\"/docs/protobuf\",{\"_43\":220},\"(multi-page)#35\",\"Internals\",\"(multi-page)/unit-testing.mdx\",\"Unit Testing HBase Applications\",\"This chapter discusses unit testing your HBase application using JUnit, Mockito, MRUnit, and HBaseTestingUtility.\",\"/docs/unit-testing\",{\"_43\":227},\"Building and Developing Apache HBase\",{\"_13\":304,\"_21\":38,\"_15\":232,\"_27\":305,\"_24\":-7,\"_9\":306,\"_32\":307},[238,239,240,241,242,243,244,245,246,247,248],\"(multi-page)/building-and-developing\",{\"_34\":237},\"(multi-page)/building-and-developing/meta.json\",{\"_13\":299,\"_21\":38,\"_15\":300,\"_27\":301,\"_24\":-7,\"_9\":302,\"_32\":303},{\"_13\":294,\"_21\":38,\"_15\":295,\"_27\":296,\"_24\":-7,\"_9\":297,\"_32\":298},{\"_13\":289,\"_21\":38,\"_15\":290,\"_27\":291,\"_24\":-7,\"_9\":292,\"_32\":293},{\"_13\":284,\"_21\":38,\"_15\":285,\"_27\":286,\"_24\":-7,\"_9\":287,\"_32\":288},{\"_13\":279,\"_21\":38,\"_15\":280,\"_27\":281,\"_24\":-7,\"_9\":282,\"_32\":283},{\"_13\":274,\"_21\":38,\"_15\":275,\"_27\":276,\"_24\":-7,\"_9\":277,\"_32\":278},{\"_13\":269,\"_21\":38,\"_15\":270,\"_27\":271,\"_24\":-7,\"_9\":272,\"_32\":273},{\"_13\":264,\"_21\":38,\"_15\":265,\"_27\":266,\"_24\":-7,\"_9\":267,\"_32\":268},{\"_13\":259,\"_21\":38,\"_15\":260,\"_27\":261,\"_24\":-7,\"_9\":262,\"_32\":263},{\"_13\":254,\"_21\":38,\"_15\":255,\"_27\":256,\"_24\":-7,\"_9\":257,\"_32\":258},{\"_13\":249,\"_21\":38,\"_15\":250,\"_27\":251,\"_24\":-7,\"_9\":252,\"_32\":253},\"(multi-page)/building-and-developing/developer-guidelines.mdx\",\"Developer Guidelines\",\"Code standards, interface classifications, formatting conventions, Git best practices, and patch submission guidelines for HBase contributors.\",\"/docs/building-and-developing/developer-guidelines\",{\"_43\":249},\"(multi-page)/building-and-developing/tests.mdx\",\"Tests\",\"Writing and running HBase unit tests, integration tests, and ChaosMonkey destructive tests for comprehensive test coverage.\",\"/docs/building-and-developing/tests\",{\"_43\":254},\"(multi-page)/building-and-developing/updating-landing.mdx\",\"Updating hbase.apache.org\",\"Contributing to and publishing the HBase website and documentation using gitpubsub mechanism.\",\"/docs/building-and-developing/updating-landing\",{\"_43\":259},\"(multi-page)/building-and-developing/generating-documentation.mdx\",\"Generating the HBase Reference Guide\",\"Building HBase documentation from MDX markup.\",\"/docs/building-and-developing/generating-documentation\",{\"_43\":264},\"(multi-page)/building-and-developing/announcing.mdx\",\"Announcing Releases\",\"Email template and guidelines for announcing new HBase releases to the community and mailing lists.\",\"/docs/building-and-developing/announcing\",{\"_43\":269},\"(multi-page)/building-and-developing/voting.mdx\",\"Voting on Release Candidates\",\"Baseline and additional verification procedures for voting on HBase release candidates including checksums, signatures, and testing.\",\"/docs/building-and-developing/voting\",{\"_43\":274},\"(multi-page)/building-and-developing/releasing.mdx\",\"Releasing Apache HBase\",\"Complete guide to creating HBase release candidates including building, signing, staging artifacts, and publishing releases.\",\"/docs/building-and-developing/releasing\",{\"_43\":279},\"(multi-page)/building-and-developing/building.mdx\",\"Building Apache HBase\",\"Maven build commands, JDK requirements, Hadoop version selection, and building HBase from source including protobuf and thrift generation.\",\"/docs/building-and-developing/building\",{\"_43\":284},\"(multi-page)/building-and-developing/ides.mdx\",\"IDEs\",\"Setting up Eclipse and IntelliJ IDEA for HBase development including formatters, plugins, and Maven integration.\",\"/docs/building-and-developing/ides\",{\"_43\":289},\"(multi-page)/building-and-developing/repositories.mdx\",\"Apache HBase Repositories\",\"List of Apache HBase Git repositories including main HBase, connectors, operator tools, website, and third-party libraries.\",\"/docs/building-and-developing/repositories\",{\"_43\":294},\"(multi-page)/building-and-developing/getting-involved.mdx\",\"Getting Involved\",\"How to contribute to Apache HBase including mailing lists, Slack, IRC, JIRA, and guidelines for reporting effective issues.\",\"/docs/building-and-developing/getting-involved\",{\"_43\":299},\"(multi-page)/building-and-developing/index.mdx\",\"Comprehensive guide for building, testing, releasing, and contributing to Apache HBase.\",\"/docs/building-and-developing\",{\"_43\":304},\"Apache HBase Operational Management\",{\"_13\":362,\"_21\":38,\"_15\":308,\"_27\":363,\"_24\":-7,\"_9\":364,\"_32\":365},[314,315,316,317,318,319,320,321],\"(multi-page)/operational-management\",{\"_34\":313},\"(multi-page)/operational-management/meta.json\",{\"_13\":357,\"_21\":38,\"_15\":358,\"_27\":359,\"_24\":-7,\"_9\":360,\"_32\":361},{\"_13\":352,\"_21\":38,\"_15\":353,\"_27\":354,\"_24\":-7,\"_9\":355,\"_32\":356},{\"_13\":347,\"_21\":38,\"_15\":348,\"_27\":349,\"_24\":-7,\"_9\":350,\"_32\":351},{\"_13\":342,\"_21\":38,\"_15\":343,\"_27\":344,\"_24\":-7,\"_9\":345,\"_32\":346},{\"_13\":337,\"_21\":38,\"_15\":338,\"_27\":339,\"_24\":-7,\"_9\":340,\"_32\":341},{\"_13\":332,\"_21\":38,\"_15\":333,\"_27\":334,\"_24\":-7,\"_9\":335,\"_32\":336},{\"_13\":327,\"_21\":38,\"_15\":328,\"_27\":329,\"_24\":-7,\"_9\":330,\"_32\":331},{\"_13\":322,\"_21\":38,\"_15\":323,\"_27\":324,\"_24\":-7,\"_9\":325,\"_32\":326},\"(multi-page)/operational-management/region-and-capacity.mdx\",\"Region \u0026 Capacity Management\",\"Managing HBase regions including compaction, splits, merges, capacity planning, RegionServer grouping, and region normalization.\",\"/docs/operational-management/region-and-capacity\",{\"_43\":322},\"(multi-page)/operational-management/table-rename.mdx\",\"Table Rename\",\"How to rename HBase tables using snapshots without downtime or data loss.\",\"/docs/operational-management/table-rename\",{\"_43\":327},\"(multi-page)/operational-management/backup-and-snapshots.mdx\",\"Backup \u0026 Snapshots\",\"HBase backup strategies and snapshot operations for data protection, including full cluster backups and live cluster snapshots.\",\"/docs/operational-management/backup-and-snapshots\",{\"_43\":332},\"(multi-page)/operational-management/running-multiple-workloads-on-a-single-cluster.mdx\",\"Running Multiple Workloads On a Single Cluster\",\"Managing multiple workloads on HBase clusters using quotas, request queues, and priority mechanisms for resource allocation.\",\"/docs/operational-management/running-multiple-workloads-on-a-single-cluster\",{\"_43\":337},\"(multi-page)/operational-management/cluster-replication.mdx\",\"Cluster Replication\",\"Setting up and managing HBase cluster replication for disaster recovery, data aggregation, and geographic distribution of data.\",\"/docs/operational-management/cluster-replication\",{\"_43\":342},\"(multi-page)/operational-management/metrics-and-monitoring.mdx\",\"Metrics \u0026 Monitoring\",\"HBase metrics system configuration, JMX monitoring, master and RegionServer metrics, and integration with monitoring tools.\",\"/docs/operational-management/metrics-and-monitoring\",{\"_43\":347},\"(multi-page)/operational-management/node.mdx\",\"Node Management\",\"Managing HBase cluster nodes including decommissioning RegionServers, rolling restarts, and draining regions for maintenance.\",\"/docs/operational-management/node\",{\"_43\":352},\"(multi-page)/operational-management/tools.mdx\",\"HBase Tools and Utilities\",\"Command-line tools for HBase administration, analysis, and debugging including canary, HBCK2, WAL tools, and MapReduce utilities.\",\"/docs/operational-management/tools\",{\"_43\":357},\"(multi-page)/operational-management/index.mdx\",\"This chapter will cover operational tools and practices required of a running Apache HBase cluster.\",\"/docs/operational-management\",{\"_43\":362},\"(multi-page)#31\",\"Operations \u0026 Development\",\"(multi-page)/case-studies.mdx\",\"Apache HBase Case Studies\",\"Performance and troubleshooting case studies for diagnosing Apache HBase cluster issues.\",\"/docs/case-studies\",{\"_43\":368},\"(multi-page)/troubleshooting.mdx\",\"Troubleshooting and Debugging Apache HBase\",\"Comprehensive guide to troubleshooting and debugging HBase issues including logs, tools, common problems, and solutions.\",\"/docs/troubleshooting\",{\"_43\":373},\"(multi-page)/profiler.mdx\",\"Profiler Servlet\",\"Integrated, on-demand profiling via the Async Profiler project.\",\"/docs/profiler\",{\"_43\":378},\"(multi-page)/performance.mdx\",\"Apache HBase Performance Tuning\",\"Comprehensive performance tuning guide covering OS configuration, network optimization, JVM tuning, schema design, read/write patterns, and HDFS optimization for HBase clusters.\",\"/docs/performance\",{\"_43\":383},\"(multi-page)#26\",\"Performance \u0026 Troubleshooting\",\"(multi-page)/cp.mdx\",\"Apache HBase Coprocessors\",\"The coprocessor framework provides mechanisms for running your custom code directly on the RegionServers managing your data.\",\"/docs/cp\",{\"_43\":390},\"(multi-page)/spark.mdx\",\"HBase and Spark\",\"Apache Spark is a software framework that is used to process data in memory in a distributed manner, and is replacing MapReduce in many use cases.\",\"/docs/spark\",{\"_43\":395},\"(multi-page)/thrift-filter-language.mdx\",\"Thrift API and Filter Language\",\"Apache Thrift is a cross-platform, cross-language development framework. HBase includes a Thrift API and filter language. The Thrift API relies on client and server processes.\",\"/docs/thrift-filter-language\",{\"_43\":400},\"(multi-page)/external-apis.mdx\",\"Apache HBase External APIs\",\"This chapter will cover access to Apache HBase either through non-Java languages and through custom protocols.\",\"/docs/external-apis\",{\"_43\":405},\"(multi-page)/hbase-apis.mdx\",\"Apache HBase APIs\",\"This chapter provides information about performing operations using HBase native APIs.\",\"/docs/hbase-apis\",{\"_43\":410},\"(multi-page)#20\",\"APIs \u0026 Integration\",\"(multi-page)/sync-replication.mdx\",\"Synchronous Replication\",\"Setting up synchronous replication between HBase clusters for strong consistency and automatic failover capabilities.\",\"/docs/sync-replication\",{\"_43\":417},\"Backup and Restore\",{\"_13\":452,\"_21\":38,\"_15\":422,\"_27\":453,\"_24\":-7,\"_9\":454,\"_32\":455},[428,429,430,431],\"(multi-page)/backup-restore\",{\"_34\":427},\"(multi-page)/backup-restore/meta.json\",{\"_13\":447,\"_21\":38,\"_15\":448,\"_27\":449,\"_24\":-7,\"_9\":450,\"_32\":451},{\"_13\":442,\"_21\":38,\"_15\":443,\"_27\":444,\"_24\":-7,\"_9\":445,\"_32\":446},{\"_13\":437,\"_21\":38,\"_15\":438,\"_27\":439,\"_24\":-7,\"_9\":440,\"_32\":441},{\"_13\":432,\"_21\":38,\"_15\":433,\"_27\":434,\"_24\":-7,\"_9\":435,\"_32\":436},\"(multi-page)/backup-restore/additional-topics.mdx\",\"Additional Topics\",\"Configuration keys, security considerations, and best practices for HBase backup and restore operations.\",\"/docs/backup-restore/additional-topics\",{\"_43\":432},\"(multi-page)/backup-restore/administration.mdx\",\"Administration of Backup Images\",\"Managing HBase backup images including listing, describing, deleting, and merging backup sets for efficient storage.\",\"/docs/backup-restore/administration\",{\"_43\":437},\"(multi-page)/backup-restore/commands.mdx\",\"Backup and Restore commands\",\"Command-line utilities for creating, restoring, and merging HBase backups including full and incremental backup operations.\",\"/docs/backup-restore/commands\",{\"_43\":442},\"(multi-page)/backup-restore/overview.mdx\",\"Overview\",\"Introduction to HBase backup and restore feature, including full and incremental backups for disaster recovery and point-in-time recovery.\",\"/docs/backup-restore/overview\",{\"_43\":447},\"(multi-page)/backup-restore/index.mdx\",\"Comprehensive guide to HBase backup and restore capabilities for data protection, disaster recovery, and point-in-time recovery.\",\"/docs/backup-restore\",{\"_43\":452},\"(multi-page)/offheap-read-write.mdx\",\"RegionServer Off-Heap Read/Write Path\",\"Using off-heap memory for HBase read and write paths to reduce GC pressure and improve P99/P999 RPC latencies.\",\"/docs/offheap-read-write\",{\"_43\":456},\"(multi-page)/inmemory-compaction.mdx\",\"In-memory Compaction\",\"Accordion feature that applies LSM compaction to MemStore while data is in RAM, reducing write amplification and improving performance.\",\"/docs/inmemory-compaction\",{\"_43\":461},\"(multi-page)#15\",\"Advanced Features\",\"Architecture\",{\"_13\":545,\"_21\":38,\"_15\":468,\"_27\":546,\"_24\":-7,\"_9\":547,\"_32\":548},[474,475,476,477,478,479,480,481,482,483,484,485],\"(multi-page)/architecture\",{\"_34\":473},\"(multi-page)/architecture/meta.json\",{\"_13\":541,\"_21\":38,\"_15\":448,\"_27\":542,\"_24\":-7,\"_9\":543,\"_32\":544},{\"_13\":536,\"_21\":38,\"_15\":537,\"_27\":538,\"_24\":-7,\"_9\":539,\"_32\":540},{\"_13\":531,\"_21\":38,\"_15\":532,\"_27\":533,\"_24\":-7,\"_9\":534,\"_32\":535},{\"_13\":526,\"_21\":38,\"_15\":527,\"_27\":528,\"_24\":-7,\"_9\":529,\"_32\":530},{\"_13\":521,\"_21\":38,\"_15\":522,\"_27\":523,\"_24\":-7,\"_9\":524,\"_32\":525},{\"_13\":516,\"_21\":38,\"_15\":517,\"_27\":518,\"_24\":-7,\"_9\":519,\"_32\":520},{\"_13\":511,\"_21\":38,\"_15\":512,\"_27\":513,\"_24\":-7,\"_9\":514,\"_32\":515},{\"_13\":506,\"_21\":38,\"_15\":507,\"_27\":508,\"_24\":-7,\"_9\":509,\"_32\":510},{\"_13\":501,\"_21\":38,\"_15\":502,\"_27\":503,\"_24\":-7,\"_9\":504,\"_32\":505},{\"_13\":496,\"_21\":38,\"_15\":497,\"_27\":498,\"_24\":-7,\"_9\":499,\"_32\":500},{\"_13\":491,\"_21\":38,\"_15\":492,\"_27\":493,\"_24\":-7,\"_9\":494,\"_32\":495},{\"_13\":486,\"_21\":38,\"_15\":487,\"_27\":488,\"_24\":-7,\"_9\":489,\"_32\":490},\"(multi-page)/architecture/snapshot-scanner.mdx\",\"Scan Over Snapshot\",\"Using TableSnapshotScanner to scan HBase snapshots directly from HDFS, bypassing RegionServers for better performance.\",\"/docs/architecture/snapshot-scanner\",{\"_43\":486},\"(multi-page)/architecture/hbase-mob.mdx\",\"Storing Medium-sized Objects (MOB)\",\"Optimized storage and handling of medium-sized objects (100KB-10MB) in HBase using the MOB feature for improved performance.\",\"/docs/architecture/hbase-mob\",{\"_43\":491},\"(multi-page)/architecture/timeline-consistent-reads.mdx\",\"Timeline-consistent High Available Reads\",\"Using region replicas to achieve high availability for reads with timeline consistency, reducing read unavailability during failures.\",\"/docs/architecture/timeline-consistent-reads\",{\"_43\":496},\"(multi-page)/architecture/hdfs.mdx\",\"HDFS\",\"How HBase leverages HDFS for distributed storage, including NameNode and DataNode architecture and file replication.\",\"/docs/architecture/hdfs\",{\"_43\":501},\"(multi-page)/architecture/bulk-loading.mdx\",\"Bulk Loading\",\"Efficient methods for loading large datasets into HBase using MapReduce to generate HFiles and directly load them into the cluster.\",\"/docs/architecture/bulk-loading\",{\"_43\":506},\"(multi-page)/architecture/regions.mdx\",\"Regions\",\"Understanding HBase regions, stores, memstore, write-ahead log (WAL), compaction, splits, and region management strategies.\",\"/docs/architecture/regions\",{\"_43\":511},\"(multi-page)/architecture/regionserver.mdx\",\"RegionServer\",\"HBase RegionServer implementation, interfaces, read/write paths, block cache, memstore management, and performance tuning.\",\"/docs/architecture/regionserver\",{\"_43\":516},\"(multi-page)/architecture/master.mdx\",\"Master\",\"HBase Master server responsibilities including RegionServer monitoring, metadata operations, load balancing, and failover behavior.\",\"/docs/architecture/master\",{\"_43\":521},\"(multi-page)/architecture/client-request-filters.mdx\",\"Client Request Filters\",\"Using filters with Get and Scan operations to efficiently query HBase data, including comparison, column, row, and utility filters.\",\"/docs/architecture/client-request-filters\",{\"_43\":526},\"(multi-page)/architecture/client.mdx\",\"Client\",\"HBase client architecture, connection management, metadata caching, and client-side configuration for optimal performance.\",\"/docs/architecture/client\",{\"_43\":531},\"(multi-page)/architecture/catalog-tables.mdx\",\"Catalog Tables\",\"Understanding hbase:meta catalog table structure, location tracking, and how HBase maintains region metadata.\",\"/docs/architecture/catalog-tables\",{\"_43\":536},\"(multi-page)/architecture/overview.mdx\",\"Introduction to HBase as a NoSQL distributed database, key features, scalability characteristics, and when to use HBase.\",\"/docs/architecture/overview\",{\"_43\":541},\"(multi-page)/architecture/index.mdx\",\"Comprehensive guide to HBase architecture including client-server model, regions, WAL, compaction, and advanced features.\",\"/docs/architecture\",{\"_43\":545},\"Security\",{\"_13\":597,\"_21\":38,\"_15\":549,\"_27\":598,\"_24\":-7,\"_9\":599,\"_32\":600},[555,556,557,558,559,560,561],\"(multi-page)/security\",{\"_34\":554},\"(multi-page)/security/meta.json\",{\"_13\":592,\"_21\":38,\"_15\":593,\"_27\":594,\"_24\":-7,\"_9\":595,\"_32\":596},{\"_13\":587,\"_21\":38,\"_15\":588,\"_27\":589,\"_24\":-7,\"_9\":590,\"_32\":591},{\"_13\":582,\"_21\":38,\"_15\":583,\"_27\":584,\"_24\":-7,\"_9\":585,\"_32\":586},{\"_13\":577,\"_21\":38,\"_15\":578,\"_27\":579,\"_24\":-7,\"_9\":580,\"_32\":581},{\"_13\":572,\"_21\":38,\"_15\":573,\"_27\":574,\"_24\":-7,\"_9\":575,\"_32\":576},{\"_13\":567,\"_21\":38,\"_15\":568,\"_27\":569,\"_24\":-7,\"_9\":570,\"_32\":571},{\"_13\":562,\"_21\":38,\"_15\":563,\"_27\":564,\"_24\":-7,\"_9\":565,\"_32\":566},\"(multi-page)/security/example.mdx\",\"Security Configuration Example\",\"This configuration example includes support for HFile v3, ACLs, Visibility Labels, and transparent encryption of data at rest and the WAL. All options have been discussed separately in the sections above.\",\"/docs/security/example\",{\"_43\":562},\"(multi-page)/security/data-access.mdx\",\"Securing Access To Your Data\",\"Role-based access control (RBAC), visibility labels, and data encryption strategies for securing HBase data at rest and in transit.\",\"/docs/security/data-access\",{\"_43\":567},\"(multi-page)/security/hdfs-and-zookeeper-access.mdx\",\"Securing Access to HDFS and ZooKeeper\",\"Secure HBase requires secure ZooKeeper and HDFS so that users cannot access and/or modify the metadata and data from under HBase. HBase uses HDFS (or configured file system) to keep its data files as well as write ahead logs (WALs) and other data. HBase uses ZooKeeper to store some metadata for operations (master address, table locks, recovery state, etc).\",\"/docs/security/hdfs-and-zookeeper-access\",{\"_43\":572},\"(multi-page)/security/tls.mdx\",\"Transport Level Security (TLS) in HBase RPC communication\",\"Configuring TLS encryption for secure HBase client-server and Master-RegionServer communication without downtime.\",\"/docs/security/tls\",{\"_43\":577},\"(multi-page)/security/user-access.mdx\",\"Simple User Access to Apache HBase\",\"Setting up simple SASL authentication for HBase clients without Kerberos, using username/password-based access control.\",\"/docs/security/user-access\",{\"_43\":582},\"(multi-page)/security/client-access.mdx\",\"Secure Client Access to Apache HBase\",\"Configuring Kerberos-based secure authentication for HBase clients, including server and client setup procedures.\",\"/docs/security/client-access\",{\"_43\":587},\"(multi-page)/security/web-ui.mdx\",\"Web UI Security\",\"HBase provides mechanisms to secure various components and aspects of HBase and how it relates to the rest of the Hadoop infrastructure, as well as clients and resources outside Hadoop.\",\"/docs/security/web-ui\",{\"_43\":592},\"(multi-page)/security/index.mdx\",\"Comprehensive guide to securing Apache HBase, including authentication, authorization, encryption, and access control mechanisms.\",\"/docs/security\",{\"_43\":597},\"(multi-page)/mapreduce.mdx\",\"HBase and MapReduce\",\"Guide to using Apache HBase with MapReduce including configuration, examples, and best practices.\",\"/docs/mapreduce\",{\"_43\":601},\"(multi-page)/regionserver-sizing.mdx\",\"RegionServer Sizing Rules of Thumb\",\"Memory sizing guidelines, rowkey design patterns, schema case studies, and performance optimization tips for HBase RegionServers.\",\"/docs/regionserver-sizing\",{\"_43\":606},\"(multi-page)/schema-design.mdx\",\"HBase and Schema Design\",\"Comprehensive guide to designing HBase schemas, including table and column family design, rowkey strategies, and best practices for optimal performance.\",\"/docs/schema-design\",{\"_43\":611},\"(multi-page)/datamodel.mdx\",\"Data Model\",\"In HBase, data is stored in tables, which have rows and columns. This is a terminology overlap with relational databases (RDBMSs), but this is not a helpful analogy. Instead, it can be helpful to think of an HBase table as a multi-dimensional map.\",\"/docs/datamodel\",{\"_43\":616},\"(multi-page)#8\",\"Core Concepts\",\"(multi-page)/shell.mdx\",\"The Apache HBase Shell\",\"Guide to using the HBase Shell including scripting, tricks, and advanced features.\",\"/docs/shell\",{\"_43\":623},\"Upgrading\",{\"_13\":658,\"_21\":38,\"_15\":628,\"_27\":659,\"_24\":-7,\"_9\":660,\"_32\":661},[634,635,636,637],\"(multi-page)/upgrading\",{\"_34\":633},\"(multi-page)/upgrading/meta.json\",{\"_13\":653,\"_21\":38,\"_15\":654,\"_27\":655,\"_24\":-7,\"_9\":656,\"_32\":657},{\"_13\":648,\"_21\":38,\"_15\":649,\"_27\":650,\"_24\":-7,\"_9\":651,\"_32\":652},{\"_13\":643,\"_21\":38,\"_15\":644,\"_27\":645,\"_24\":-7,\"_9\":646,\"_32\":647},{\"_13\":638,\"_21\":38,\"_15\":639,\"_27\":640,\"_24\":-7,\"_9\":641,\"_32\":642},\"(multi-page)/upgrading/paths.mdx\",\"Upgrade Paths\",\"Detailed upgrade paths and compatibility considerations when upgrading between HBase major versions (2.x to 3.x, 1.x to 2.x, etc.).\",\"/docs/upgrading/paths\",{\"_43\":638},\"(multi-page)/upgrading/rollback.mdx\",\"Rollback\",\"How to rollback an HBase upgrade to restore the cluster to a previous version, including backup procedures and data recovery steps.\",\"/docs/upgrading/rollback\",{\"_43\":643},\"(multi-page)/upgrading/rolling.mdx\",\"Rolling Upgrades\",\"How to perform rolling upgrades across HBase versions that are binary or wire compatible without cluster downtime.\",\"/docs/upgrading/rolling\",{\"_43\":648},\"(multi-page)/upgrading/version-number.mdx\",\"HBase version number and compatibility\",\"Understanding HBase semantic versioning scheme and compatibility guarantees across major, minor, and patch versions.\",\"/docs/upgrading/version-number\",{\"_43\":653},\"(multi-page)/upgrading/index.mdx\",\"Guide to upgrading Apache HBase between major versions, including requirements, compatibility considerations, and step-by-step procedures.\",\"/docs/upgrading\",{\"_43\":658},\"Configuration\",{\"_13\":708,\"_21\":38,\"_15\":662,\"_27\":709,\"_24\":-7,\"_9\":710,\"_32\":711},[668,669,670,671,672,673,674],\"(multi-page)/configuration\",{\"_34\":667},\"(multi-page)/configuration/meta.json\",{\"_13\":8,\"_21\":38,\"_15\":705,\"_27\":706,\"_24\":-7,\"_9\":10,\"_32\":707},{\"_13\":700,\"_21\":38,\"_15\":701,\"_27\":702,\"_24\":-7,\"_9\":703,\"_32\":704},{\"_13\":695,\"_21\":38,\"_15\":696,\"_27\":697,\"_24\":-7,\"_9\":698,\"_32\":699},{\"_13\":690,\"_21\":38,\"_15\":691,\"_27\":692,\"_24\":-7,\"_9\":693,\"_32\":694},{\"_13\":685,\"_21\":38,\"_15\":686,\"_27\":687,\"_24\":-7,\"_9\":688,\"_32\":689},{\"_13\":680,\"_21\":38,\"_15\":681,\"_27\":682,\"_24\":-7,\"_9\":683,\"_32\":684},{\"_13\":675,\"_21\":38,\"_15\":676,\"_27\":677,\"_24\":-7,\"_9\":678,\"_32\":679},\"(multi-page)/configuration/dynamic.mdx\",\"Dynamic Configuration\",\"How to change HBase configuration properties dynamically without server restart using update_config commands.\",\"/docs/configuration/dynamic\",{\"_43\":675},\"(multi-page)/configuration/important.mdx\",\"The Important Configurations\",\"Critical HBase configurations divided into required settings and recommended optimizations for production clusters.\",\"/docs/configuration/important\",{\"_43\":680},\"(multi-page)/configuration/example.mdx\",\"Example Configurations\",\"Sample configuration files and setup examples for distributed HBase clusters.\",\"/docs/configuration/example\",{\"_43\":685},\"(multi-page)/configuration/default.mdx\",\"Default Configuration\",\"HBase default configuration properties and how to customize them via hbase-site.xml for site-specific settings.\",\"/docs/configuration/default\",{\"_43\":690},\"(multi-page)/configuration/confirm.mdx\",\"Running and Confirming Your Installation\",\"Steps to start HBase services and verify your installation is working correctly.\",\"/docs/configuration/confirm\",{\"_43\":695},\"(multi-page)/configuration/hbase-run-models.mdx\",\"HBase run modes: Standalone and Distributed\",\"Understanding HBase deployment modes: standalone mode for development and distributed mode for production clusters.\",\"/docs/configuration/hbase-run-models\",{\"_43\":700},\"Basic Prerequisites\",\"This section lists required services and some required system configuration.\",{\"_43\":8},\"(multi-page)/configuration/index.mdx\",\"Complete guide to HBase configuration including all settings, tuning parameters, and best practices.\",\"/docs/configuration\",{\"_43\":708},\"(multi-page)#4\",\"Configuration \u0026 Setup\",\"All docs for LLMs\",\"/llms-full.txt\",\"external\",\"(multi-page)/getting-started.mdx\",\"Getting Started\",\"Quick start to get you up and run a single-node, standalone instance of HBase.\",\"/docs/getting-started\",{\"_43\":717},\"(multi-page)/index.mdx\",\"Preface\",\"This is the official reference guide for the HBase version it ships with.\",\"/docs\",{\"_43\":722},\"(multi-page)#0\"]\n");</script><!--$--><script>window.__reactRouterContext.streamController.close();</script><!--/$--><!--/$--></body></html>