blob: b543c22d2a938b980d88a736665f6200ea8194c5 [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>The Apache HBase Shell</title><meta name="description" content="Guide to using the HBase Shell including scripting, tricks, and advanced features."/><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="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/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 -rotate-90" data-icon="true"><path d="m6 9 6 6 6-6"></path></svg></a><div data-state="closed" id="radix-_R_dad5aj5_" 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/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="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" 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]">The Apache HBase Shell</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="no-print"><h1 class="text-[1.75em] font-semibold">The Apache HBase Shell</h1><p class="text-fd-muted-foreground mb-8 text-lg">Guide to using the HBase Shell including scripting, tricks, and advanced features.</p></div><div class="prose flex-1"><p class="wrap-anywhere">The Apache HBase Shell is <a href="http://jruby.org">(J)Ruby</a>&#x27;s IRB with some HBase particular commands added.
Anything you can do in IRB, you should be able to do in the HBase Shell.</p>
<p class="wrap-anywhere">To run the HBase shell, do as follows:</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:#6F42C1;--shiki-dark:#B392F0">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ./bin/hbase</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> shell</span></span></code></pre></div></figure>
<p class="wrap-anywhere">Type <code>help</code> and then <code>&lt;RETURN&gt;</code> to see a listing of shell commands and options.
Browse at least the paragraphs at the end of the help output for the gist of how variables and command arguments are entered into the HBase shell; in particular note how table names, rows, and columns, etc., must be quoted.</p>
<p class="wrap-anywhere">See <a href="/docs/getting-started#procedure-use-hbase-for-the-first-time" data-discover="true">shell exercises</a> for example basic shell operation.</p>
<p class="wrap-anywhere">Here is a nicely formatted listing of <a href="http://learnhbase.wordpress.com/2013/03/02/hbase-shell-commands/">all shell commands</a> by Rajeshbabu Chintaguntla.</p>
<h2 class="flex scroll-m-28 flex-row items-center gap-2" id="scripting-with-ruby"><a data-card="" href="#scripting-with-ruby" class="peer">Scripting with Ruby</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">For examples scripting Apache HBase, look in the HBase <em>bin</em> directory.
Look at the files that end in <em>*.rb</em>.
To run one of these files, do as follows:</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:#6F42C1;--shiki-dark:#B392F0">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ./bin/hbase</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> org.jruby.Main</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> PATH_TO_SCRIPT</span></span></code></pre></div></figure>
<h2 class="flex scroll-m-28 flex-row items-center gap-2" id="running-the-shell-in-non-interactive-mode"><a data-card="" href="#running-the-shell-in-non-interactive-mode" class="peer">Running the Shell in Non-Interactive Mode</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">A new non-interactive mode has been added to the HBase Shell (<a href="https://issues.apache.org/jira/browse/HBASE-11658">HBASE-11658</a>).
Non-interactive mode captures the exit status (success or failure) of HBase Shell commands and passes that status back to the command interpreter.
If you use the normal interactive mode, the HBase Shell will only ever return its own exit status, which will nearly always be <code>0</code> for success.</p>
<p class="wrap-anywhere">To invoke non-interactive mode, pass the <code>-n</code> or <code>--non-interactive</code> option to HBase Shell.</p>
<h2 class="flex scroll-m-28 flex-row items-center gap-2" id="hbase-shell-in-os-scripts"><a data-card="" href="#hbase-shell-in-os-scripts" class="peer">HBase Shell in OS Scripts</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">You can use the HBase shell from within operating system script interpreters like the Bash shell which is the default command interpreter for most Linux and UNIX distributions.
The following guidelines use Bash syntax, but could be adjusted to work with C-style shells such as csh or tcsh, and could probably be modified to work with the Microsoft Windows script interpreter as well. Submissions are welcome.</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">Spawning HBase Shell commands in this way is slow, so keep that in mind when you are deciding when
combining HBase operations with the operating system command line is appropriate.</p></div></div></div>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="passing-commands-to-the-hbase-shell"><a data-card="" href="#passing-commands-to-the-hbase-shell" class="peer">Passing Commands to the HBase 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></h3>
<p class="wrap-anywhere">You can pass commands to the HBase Shell in non-interactive mode (see <a href="/docs/shell#hbase-shell-in-os-scripts" data-discover="true">hbase.shell.noninteractive</a>) using the <code>echo</code> command and the <code>|</code> (pipe) operator.
Be sure to escape characters in the HBase commands which would otherwise be interpreted by the shell.
Some debug-level output has been truncated from the example below.</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:#6F42C1;--shiki-dark:#B392F0">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> echo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;describe &#x27;test1&#x27;&quot;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> ./hbase</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> shell</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -n</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Version</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 0.98.3-hadoop2,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> rd5e65a9144e315bb0a964e7730871af32f5018d5,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> Sat</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> May</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 31</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 19:56:09</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> PDT</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 2014</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">describe</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;test1&#x27;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">DESCRIPTION</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ENABLED</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> &#x27;test1&#x27;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> {NAME</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;cf&#x27;,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> DATA_BLOCK_ENCODING</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;NON true</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> E&#x27;,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> BLOOMFILTER</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;ROW&#x27;,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> REPLICATION_SCOPE</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;0&#x27;,</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> VERSIONS</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;1&#x27;,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> COMPRESSION</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;NONE&#x27;,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> MIN_VERSIO</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> NS</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;0&#x27;,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> TTL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;FOREVER&#x27;,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> KEEP_DELETED_CELLS</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> &#x27;false&#x27;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> BLOCKSIZE</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;65536&#x27;,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> IN_MEMORY</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;false&#x27;</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> ,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> BLOCKCACHE</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;true&#x27;}</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">1</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">s</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 3.2410</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> seconds</span></span></code></pre></div></figure>
<p class="wrap-anywhere">To suppress all output, echo it to <em>/dev/null:</em></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:#6F42C1;--shiki-dark:#B392F0">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> echo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;describe &#x27;test&#x27;&quot;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> ./hbase</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> shell</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -n</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> &gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> /dev/null</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> 2&gt;&amp;1</span></span></code></pre></div></figure>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="checking-the-result-of-a-scripted-command"><a data-card="" href="#checking-the-result-of-a-scripted-command" class="peer">Checking the Result of a Scripted Command</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">Since scripts are not designed to be run interactively, you need a way to check whether your command failed or succeeded.
The HBase shell uses the standard convention of returning a value of <code>0</code> for successful commands, and some non-zero value for failed commands.
Bash stores a command&#x27;s return value in a special environment variable called <code>$?</code>.
Because that variable is overwritten each time the shell runs any command, you should store the result in a different, script-defined variable.</p>
<p class="wrap-anywhere">This is a naive script that shows one way to store the return value and make a decision based upon it.</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:#6A737D;--shiki-dark:#6A737D">#!/bin/bash</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">echo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;describe &#x27;test&#x27;&quot;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> ./hbase</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> shell</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -n</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> &gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> /dev/null</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> 2&gt;&amp;1</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">status</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">$?</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">echo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;The status was &quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> $status</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ($status == 0); </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">then</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> echo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;The command succeeded&quot;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">else</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> echo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;The command may have failed.&quot;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">fi</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> $status</span></span></code></pre></div></figure>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="checking-for-success-or-failure-in-scripts"><a data-card="" href="#checking-for-success-or-failure-in-scripts" class="peer">Checking for Success or Failure In Scripts</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">Getting an exit code of <code>0</code> means that the command you scripted definitely succeeded.
However, getting a non-zero exit code does not necessarily mean the command failed.
The command could have succeeded, but the client lost connectivity, or some other event obscured its success.
This is because RPC commands are stateless.
The only way to be sure of the status of an operation is to check.
For instance, if your script creates a table, but returns a non-zero exit value, you should check whether the table was actually created before trying again to create it.</p>
<h2 class="flex scroll-m-28 flex-row items-center gap-2" id="read-hbase-shell-commands-from-a-command-file"><a data-card="" href="#read-hbase-shell-commands-from-a-command-file" class="peer">Read HBase Shell Commands from a Command File</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">You can enter HBase Shell commands into a text file, one command per line, and pass that file to the HBase Shell.</p>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="example-command-file"><a data-card="" href="#example-command-file" class="peer">Example Command File</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>
<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">create </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;test&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;cf&#x27;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">list </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;test&#x27;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">put </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;test&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;row1&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;cf:a&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;value1&#x27;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">put </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;test&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;row2&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;cf:b&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;value2&#x27;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">put </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;test&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;row3&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;cf:c&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;value3&#x27;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">put </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;test&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;row4&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;cf:d&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;value4&#x27;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">scan </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;test&#x27;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">get </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;test&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;row1&#x27;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">disable </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;test&#x27;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">enable </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;test&#x27;</span></span></code></pre></div></figure>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="directing-hbase-shell-to-execute-the-commands"><a data-card="" href="#directing-hbase-shell-to-execute-the-commands" class="peer">Directing HBase Shell to Execute the Commands</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">Pass the path to the command file as the only argument to the <code>hbase shell</code> command.
Each command is executed and its output is shown.
If you do not include the <code>exit</code> command in your script, you are returned to the HBase shell prompt.
There is no way to programmatically check each individual command for success or failure.
Also, though you see the output for each command, the commands themselves are not echoed to the screen so it can be difficult to line up the command with its output.</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:#6F42C1;--shiki-dark:#B392F0">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ./hbase</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> shell</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ./sample_commands.txt</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">0</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">s</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 3.4170</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> seconds</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">TABLE</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">test</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">1</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">s</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.0590</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> seconds</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">0</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">s</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.1540</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> seconds</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">0</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">s</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.0080</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> seconds</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">0</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">s</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.0060</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> seconds</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">0</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">s</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.0060</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> seconds</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">ROW</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> COLUMN+CELL</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> row1</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> column=cf:a,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> timestamp=1407130286968,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> value=value1</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> row2</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> column=cf:b,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> timestamp=1407130286997,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> value=value2</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> row3</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> column=cf:c,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> timestamp=1407130287007,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> value=value3</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> row4</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> column=cf:d,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> timestamp=1407130287015,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> value=value4</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">4</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">s</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.0420</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> seconds</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">COLUMN</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> CELL</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> cf:a</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> timestamp=1407130286968,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> value=value1</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">1</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">s</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.0110</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> seconds</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">0</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">s</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 1.5630</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> seconds</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">0</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">s</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.4360</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> seconds</span></span></code></pre></div></figure>
<h2 class="flex scroll-m-28 flex-row items-center gap-2" id="passing-vm-options-to-the-shell"><a data-card="" href="#passing-vm-options-to-the-shell" class="peer">Passing VM Options to the 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></h2>
<p class="wrap-anywhere">You can pass VM options to the HBase Shell using the <code>HBASE_SHELL_OPTS</code> environment variable.
You can set this in your environment, for instance by editing <em>~/.bashrc</em>, or set it as part of the command to launch HBase Shell.
The following example sets several garbage-collection-related variables, just for the lifetime of the VM running the HBase Shell.
The command should be run all on a single line, but is broken by the <code>\</code> character, for readability.</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:#6F42C1;--shiki-dark:#B392F0">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> HBASE_SHELL_OPTS=&quot;-verbose:gc -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCDateStamps </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">\</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> -XX:+PrintGCDetails -Xloggc:</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">$HBASE_HOME</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">/logs/gc-hbase.log&quot;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ./bin/hbase</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> shell</span></span></code></pre></div></figure>
<h2 class="flex scroll-m-28 flex-row items-center gap-2" id="overriding-configuration-starting-the-hbase-shell"><a data-card="" href="#overriding-configuration-starting-the-hbase-shell" class="peer">Overriding configuration starting the HBase 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></h2>
<p class="wrap-anywhere">As of hbase-2.0.5/hbase-2.1.3/hbase-2.2.0/hbase-1.4.10/hbase-1.5.0, you can
pass or override hbase configuration as specified in <code>hbase-*.xml</code> by passing
your key/values prefixed with <code>-D</code> on the command-line as follows:</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:#6F42C1;--shiki-dark:#B392F0">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ./bin/hbase</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> shell</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -Dhbase.zookeeper.quorum=ZK0.remote.cluster.example.org,ZK1.remote.cluster.example.org,ZK2.remote.cluster.example.org</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -Draining=false</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase(main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">):001:</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">0&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> @shell.hbase.configuration.get(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">&quot;hbase.zookeeper.quorum&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;ZK0.remote.cluster.example.org,ZK1.remote.cluster.example.org,ZK2.remote.cluster.example.org&quot;</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase(main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">):002:</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">0&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> @shell.hbase.configuration.get(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">&quot;raining&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;false&quot;</span></span></code></pre></div></figure>
<h2 class="flex scroll-m-28 flex-row items-center gap-2" id="shell-tricks"><a data-card="" href="#shell-tricks" class="peer">Shell Tricks</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>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="table-variables"><a data-card="" href="#table-variables" class="peer">Table variables</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">HBase 0.95 adds shell commands that provides jruby-style object-oriented references for tables.
Previously all of the shell commands that act upon a table have a procedural style that always took the name of the table as an argument.
HBase 0.95 introduces the ability to assign a table to a jruby variable.
The table reference can be used to perform data read write operations such as puts, scans, and gets well as admin functionality such as disabling, dropping, describing tables.</p>
<p class="wrap-anywhere">For example, previously you would always specify a table name:</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:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">000</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> create </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;t&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;f&#x27;</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(s) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 1.0970</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> seconds</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">001</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> put </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;t&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;rold&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;f&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;v&#x27;</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(s) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.0080</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> seconds</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">002</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> scan </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;t&#x27;</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">ROW</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> COLUMN</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">CELL</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> rold column</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">f:</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, timestamp</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1378473207660</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, value</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">v</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(s) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.0130</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> seconds</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">003</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> describe </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;t&#x27;</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">DESCRIPTION</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> ENABLED</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;t&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, {</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">NAME</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;f&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">DATA_BLOCK_ENCODING</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;NONE&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">BLOOMFILTER</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;ROW&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">REPLICATION_</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> true</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> SCOPE</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;0&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">VERSIONS</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;1&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">COMPRESSION</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;NONE&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">MIN_VERSIONS</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;0&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">TTL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;2</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 147483647&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">KEEP_DELETED_CELLS</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;false&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">BLOCKSIZE</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;65536&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">IN_MEMORY</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;false</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">BLOCKCACHE</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;true&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(s) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 1.4430</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> seconds</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">004</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> disable </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;t&#x27;</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(s) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 14.8700</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> seconds</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">005</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> drop </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;t&#x27;</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(s) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 23.1670</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> seconds</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">006</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span></span></code></pre></div></figure>
<p class="wrap-anywhere">Now you can assign the table to a variable and use the results in jruby shell code.</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:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">007</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> &gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> t </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> create </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;t&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;f&#x27;</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(s) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 1.0970</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> seconds</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">=&gt; </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">::</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Table</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> -</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> t</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">008</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> &gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> t.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">put</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;r&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;f&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;v&#x27;</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(s) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.0640</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> seconds</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">009</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> &gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> t.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">scan</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">ROW</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> COLUMN</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">CELL</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> r column</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">f:</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, timestamp</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1331865816290</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, value</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">v</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(s) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.0110</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> seconds</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">010</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> t.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">describe</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">DESCRIPTION</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> ENABLED</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;t&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, {</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">NAME</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;f&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">DATA_BLOCK_ENCODING</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;NONE&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">BLOOMFILTER</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;ROW&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">REPLICATION_</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> true</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> SCOPE</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;0&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">VERSIONS</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;1&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">COMPRESSION</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;NONE&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">MIN_VERSIONS</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;0&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">TTL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;2</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 147483647&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">KEEP_DELETED_CELLS</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;false&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">BLOCKSIZE</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;65536&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">IN_MEMORY</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;false</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">BLOCKCACHE</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;true&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(s) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.0210</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> seconds</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">038</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> t.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">disable</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(s) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 6.2350</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> seconds</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">039</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> t.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">drop</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(s) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.2340</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> seconds</span></span></code></pre></div></figure>
<p class="wrap-anywhere">If the table has already been created, you can assign a Table to a variable by using the get_table method:</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:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">011</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> &gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> create </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;t&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;f&#x27;</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(s) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 1.2500</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> seconds</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">=&gt; </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">::</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Table</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> -</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> t</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">012</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> tab </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> get_table </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;t&#x27;</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(s) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.0010</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> seconds</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">=&gt; </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">::</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Table</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> -</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> t</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">013</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> tab.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">put</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;r1&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;f&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;v&#x27;</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(s) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.0100</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> seconds</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">014</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> tab.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">scan</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">ROW</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> COLUMN</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">CELL</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> r1 column</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">f:</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, timestamp</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1378473876949</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, value</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">v</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(s) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.0240</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> seconds</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">015</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span></span></code></pre></div></figure>
<p class="wrap-anywhere">The list functionality has also been extended so that it returns a list of table names as strings.
You can then use jruby to script table operations based on these names.
The list_snapshots command also acts similarly.</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:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">016</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> &gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> tables </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> list</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;t.*&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">TABLE</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">t</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(s) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.1040</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> seconds</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">=&gt; [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;t&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">017</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> tables.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">map</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { |t| disable t ; drop t}</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(s) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 2.2510</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> seconds</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">=&gt; [</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">nil</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">018</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span></span></code></pre></div></figure>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="irbrc"><a data-card="" href="#irbrc" class="peer"><em>irbrc</em></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">Create an <em>.irbrc</em> file for yourself in your home directory.
Add customizations.
A useful one is command history so commands are save across Shell invocations:</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:#6F42C1;--shiki-dark:#B392F0">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> more</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> .irbrc</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">require</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;irb/ext/save-history&#x27;</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">IRB.conf[:SAVE_HISTORY]</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 100</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">IRB.conf[:HISTORY_FILE]</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;#{ENV[&#x27;HOME&#x27;]}/.irb-save-history&quot;</span></span></code></pre></div></figure>
<p class="wrap-anywhere">If you&#x27;d like to avoid printing the result of evaluting each expression to stderr, for example the array of tables returned from the &quot;list&quot; command:</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:#6F42C1;--shiki-dark:#B392F0">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> echo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;IRB.conf[:ECHO] = false&quot;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> &gt;&gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">~/.irbrc</span></span></code></pre></div></figure>
<p class="wrap-anywhere">See the <code>ruby</code> documentation of <em>.irbrc</em> to learn about other possible configurations.</p>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="log-data-to-timestamp"><a data-card="" href="#log-data-to-timestamp" class="peer">LOG data to timestamp</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">To convert the date &#x27;08/08/16 20:56:29&#x27; from an hbase log into a timestamp, do:</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:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">021</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> import java.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">text</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">SimpleDateFormat</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">022</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> import java.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">text</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">ParsePosition</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">023</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> SimpleDateFormat</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">new</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;yy/MM/dd HH:mm:ss&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">).</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">parse</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;08/08/16 20:56:29&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">ParsePosition</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">new</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)).</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getTime</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">() =&gt; </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1218920189000</span></span></code></pre></div></figure>
<p class="wrap-anywhere">To go the other direction:</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:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">021</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> import java.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">util</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Date</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">022</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Date</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">new</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1218920189000</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">).</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">toString</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">() =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;Sat Aug 16 20:56:29 UTC 2008&quot;</span></span></code></pre></div></figure>
<p class="wrap-anywhere">To output in a format that is exactly like that of the HBase log format will take a little messing with <a href="http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html">SimpleDateFormat</a>.</p>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="query-shell-configuration"><a data-card="" href="#query-shell-configuration" class="peer">Query Shell Configuration</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>
<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:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">001</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> @shell.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">configuration</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">get</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;hbase.rpc.timeout&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">=&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;60000&quot;</span></span></code></pre></div></figure>
<p class="wrap-anywhere">To set a config in the shell:</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:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">005</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> @shell.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">configuration</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">setInt</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;hbase.rpc.timeout&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">61010</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">006</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> @shell.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">configuration</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">get</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;hbase.rpc.timeout&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">=&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;61010&quot;</span></span></code></pre></div></figure>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="pre-splitting-tables-with-the-hbase-shell"><a data-card="" href="#pre-splitting-tables-with-the-hbase-shell" class="peer">Pre-splitting tables with the HBase 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></h3>
<p class="wrap-anywhere">You can use a variety of options to pre-split tables when creating them via the HBase Shell <code>create</code> command.</p>
<p class="wrap-anywhere">The simplest approach is to specify an array of split points when creating the table. Note that when specifying string literals as split points, these will create split points based on the underlying byte representation of the string. So when specifying a split point of &#x27;10&#x27;, we are actually specifying the byte split point &#x27;\x31\30&#x27;.</p>
<p class="wrap-anywhere">The split points will define <code>n+1</code> regions where <code>n</code> is the number of split points. The lowest region will contain all keys from the lowest possible key up to but not including the first split point key.
The next region will contain keys from the first split point up to, but not including the next split point key.
This will continue for all split points up to the last. The last region will be defined from the last split point up to the maximum possible key.</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">hbase</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">create </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;t1&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;f&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">SPLITS</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;10&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;20&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;30&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]</span></span></code></pre></div></figure>
<p class="wrap-anywhere">In the above example, the table &#x27;t1&#x27; will be created with column family &#x27;f&#x27;, pre-split to four regions. Note the first region will contain all keys from &#x27;\x00&#x27; up to &#x27;\x30&#x27; (as &#x27;\x31&#x27; is the ASCII code for &#x27;1&#x27;).</p>
<p class="wrap-anywhere">You can pass the split points in a file using following variation. In this example, the splits are read from a file corresponding to the local path on the local filesystem. Each line in the file specifies a split point key.</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">hbase</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">create </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;t14&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;f&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">SPLITS_FILE</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">=&gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;splits.txt&#x27;</span></span></code></pre></div></figure>
<p class="wrap-anywhere">The other options are to automatically compute splits based on a desired number of regions and a splitting algorithm.
HBase supplies algorithms for splitting the key range based on uniform splits or based on hexadecimal keys, but you can provide your own splitting algorithm to subdivide the key range.</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:#6A737D;--shiki-dark:#6A737D"># create table with four regions based on random bytes keys</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">hbase</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">create </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;t2&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;f1&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, { </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">NUMREGIONS</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">4</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> , </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">SPLITALGO</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;UniformSplit&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># create table with five regions based on hex keys</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">hbase</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">create </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;t3&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;f1&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, { </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">NUMREGIONS</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">5</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">SPLITALGO</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;HexStringSplit&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span></code></pre></div></figure>
<p class="wrap-anywhere">As the HBase Shell is effectively a Ruby environment, you can use simple Ruby scripts to compute splits algorithmically.</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:#6A737D;--shiki-dark:#6A737D"># generate splits for long (Ruby fixnum) key range from start to end key</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">070</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> gen_splits</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(start_key,end_key,num_regions)</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">071</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> results</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[]</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">072</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> range</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">end_key</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">start_key</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">073</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> incr</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(range</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">/</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">num_regions).</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">floor</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">074</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> for</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> i </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> .. num_regions</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">075</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">2</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> results.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">push</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">([i</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">incr</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">start_key].</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">pack</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;N&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">))</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">076</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">2</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> end</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">077</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> results</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">078</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> end</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">079</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">080</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> splits</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">gen_splits</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">2000000</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">10</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">=&gt; [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">\000\003\r</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">@&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">\000\006\032\177</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">\000\t</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">\276</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">\000\f</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">4</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">\375</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">\000\017</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">B&lt;&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">\000\022</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">O{&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">\000\025\\\272</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">\000\030</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">i</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">\371</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">\000\e</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">w8&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(main):</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">081</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> create </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;test_splits&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;f&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">SPLITS</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">=&gt;splits</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> row</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(s) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.2670</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> seconds</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">=&gt; </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Hbase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">::</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Table</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> -</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> test_splits</span></span></code></pre></div></figure>
<p class="wrap-anywhere">Note that the HBase Shell command <code>truncate</code> effectively drops and recreates the table with default options which will discard any pre-splitting.
If you need to truncate a pre-split table, you must drop and recreate the table explicitly to re-specify custom split options.</p>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="debug"><a data-card="" href="#debug" class="peer">Debug</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="shell-debug-switch"><a data-card="" href="#shell-debug-switch" class="peer">Shell debug switch</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">You can set a debug switch in the shell to see more output — e.g.
more of the stack trace on exception — when you run a command:</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>hbase&gt; debug &lt;RETURN&gt;</span></span></code></pre></div></figure>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="debug-log-level"><a data-card="" href="#debug-log-level" class="peer">DEBUG log level</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 enable DEBUG level logging in the shell, launch it with the <code>-d</code> option.</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:#6F42C1;--shiki-dark:#B392F0">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ./bin/hbase</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> shell</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -d</span></span></code></pre></div></figure>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="shell-commands"><a data-card="" href="#shell-commands" class="peer">Commands</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="count"><a data-card="" href="#count" class="peer">count</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">Count command returns the number of rows in a table.
It&#x27;s quite fast when configured with the right CACHE</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">hbase</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> count </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;&lt;tablename&gt;&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">CACHE</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> =&gt; </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1000</span></span></code></pre></div></figure>
<p class="wrap-anywhere">The above count fetches 1000 rows at a time.
Set CACHE lower if your rows are big.
Default is to fetch one row at a time.</p></div><a href="https://github.com/apache/hbase/edit/master/hbase-website/app/pages/_docs/docs/_mdx/(multi-page)/shell.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/upgrading/paths" 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>Upgrade Paths</p></div><p class="text-fd-muted-foreground truncate">Detailed upgrade paths and compatibility considerations when upgrading between HBase major versions (2.x to 3.x, 1.x to 2.x, etc.).</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/datamodel" 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>Data Model</p></div><p class="text-fd-muted-foreground truncate">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.</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="#scripting-with-ruby" 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" style="inset-inline-start:0"></div>Scripting with Ruby</a><a data-active="false" href="#running-the-shell-in-non-interactive-mode" 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" style="inset-inline-start:0"></div>Running the Shell in Non-Interactive Mode</a><a data-active="false" href="#hbase-shell-in-os-scripts" 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>HBase Shell in OS Scripts</a><a data-active="false" href="#passing-commands-to-the-hbase-shell" 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>Passing Commands to the HBase Shell</a><a data-active="false" href="#checking-the-result-of-a-scripted-command" 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>Checking the Result of a Scripted Command</a><a data-active="false" href="#checking-for-success-or-failure-in-scripts" 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>Checking for Success or Failure In Scripts</a><a data-active="false" href="#read-hbase-shell-commands-from-a-command-file" 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>Read HBase Shell Commands from a Command File</a><a data-active="false" href="#example-command-file" 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>Example Command File</a><a data-active="false" href="#directing-hbase-shell-to-execute-the-commands" 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>Directing HBase Shell to Execute the Commands</a><a data-active="false" href="#passing-vm-options-to-the-shell" 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>Passing VM Options to the Shell</a><a data-active="false" href="#overriding-configuration-starting-the-hbase-shell" 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" style="inset-inline-start:0"></div>Overriding configuration starting the HBase Shell</a><a data-active="false" href="#shell-tricks" 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>Shell Tricks</a><a data-active="false" href="#table-variables" 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>Table variables</a><a data-active="false" href="#irbrc" 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><em>irbrc</em></a><a data-active="false" href="#log-data-to-timestamp" 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>LOG data to timestamp</a><a data-active="false" href="#query-shell-configuration" 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>Query Shell Configuration</a><a data-active="false" href="#pre-splitting-tables-with-the-hbase-shell" 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>Pre-splitting tables with the HBase Shell</a><a data-active="false" href="#debug" 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>Debug</a><a data-active="false" href="#shell-debug-switch" 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>Shell debug switch</a><a data-active="false" href="#debug-log-level" 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>DEBUG log level</a><a data-active="false" href="#shell-commands" 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>Commands</a><a data-active="false" href="#count" 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>count</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)/shell.mdx\",\"url\",\"/docs/shell\",\"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\":660,\"_24\":-7,\"_14\":-7,\"_26\":-7,\"_27\":-7,\"_29\":661,\"_17\":662,\"_13\":663,\"_32\":664},{\"_21\":22,\"_15\":626,\"_24\":-7,\"_14\":-7,\"_26\":-7,\"_27\":-7,\"_29\":627,\"_17\":628,\"_13\":629,\"_32\":630},{\"_13\":8,\"_21\":38,\"_15\":623,\"_27\":624,\"_24\":-7,\"_9\":10,\"_32\":625},{\"_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\",\"The Apache HBase Shell\",\"Guide to using the HBase Shell including scripting, tricks, and advanced features.\",{\"_43\":8},\"Upgrading\",{\"_13\":656,\"_21\":38,\"_15\":626,\"_27\":657,\"_24\":-7,\"_9\":658,\"_32\":659},[632,633,634,635],\"(multi-page)/upgrading\",{\"_34\":631},\"(multi-page)/upgrading/meta.json\",{\"_13\":651,\"_21\":38,\"_15\":652,\"_27\":653,\"_24\":-7,\"_9\":654,\"_32\":655},{\"_13\":646,\"_21\":38,\"_15\":647,\"_27\":648,\"_24\":-7,\"_9\":649,\"_32\":650},{\"_13\":641,\"_21\":38,\"_15\":642,\"_27\":643,\"_24\":-7,\"_9\":644,\"_32\":645},{\"_13\":636,\"_21\":38,\"_15\":637,\"_27\":638,\"_24\":-7,\"_9\":639,\"_32\":640},\"(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\":636},\"(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\":641},\"(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\":646},\"(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\":651},\"(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\":656},\"Configuration\",{\"_13\":708,\"_21\":38,\"_15\":660,\"_27\":709,\"_24\":-7,\"_9\":710,\"_32\":711},[666,667,668,669,670,671,672],\"(multi-page)/configuration\",{\"_34\":665},\"(multi-page)/configuration/meta.json\",{\"_13\":703,\"_21\":38,\"_15\":704,\"_27\":705,\"_24\":-7,\"_9\":706,\"_32\":707},{\"_13\":698,\"_21\":38,\"_15\":699,\"_27\":700,\"_24\":-7,\"_9\":701,\"_32\":702},{\"_13\":693,\"_21\":38,\"_15\":694,\"_27\":695,\"_24\":-7,\"_9\":696,\"_32\":697},{\"_13\":688,\"_21\":38,\"_15\":689,\"_27\":690,\"_24\":-7,\"_9\":691,\"_32\":692},{\"_13\":683,\"_21\":38,\"_15\":684,\"_27\":685,\"_24\":-7,\"_9\":686,\"_32\":687},{\"_13\":678,\"_21\":38,\"_15\":679,\"_27\":680,\"_24\":-7,\"_9\":681,\"_32\":682},{\"_13\":673,\"_21\":38,\"_15\":674,\"_27\":675,\"_24\":-7,\"_9\":676,\"_32\":677},\"(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\":673},\"(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\":678},\"(multi-page)/configuration/example.mdx\",\"Example Configurations\",\"Sample configuration files and setup examples for distributed HBase clusters.\",\"/docs/configuration/example\",{\"_43\":683},\"(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\":688},\"(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\":693},\"(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\":698},\"(multi-page)/configuration/basic-prerequisites.mdx\",\"Basic Prerequisites\",\"This section lists required services and some required system configuration.\",\"/docs/configuration/basic-prerequisites\",{\"_43\":703},\"(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>