Skip to content

docs(hbase): add HugeGraph Docker + HBase validation runbook (issue #…3030)#3041

Open
vaijosh wants to merge 1 commit into
apache:masterfrom
vaijosh:30300-ServerInfoMissing
Open

docs(hbase): add HugeGraph Docker + HBase validation runbook (issue #…3030)#3041
vaijosh wants to merge 1 commit into
apache:masterfrom
vaijosh:30300-ServerInfoMissing

Conversation

@vaijosh
Copy link
Copy Markdown
Contributor

@vaijosh vaijosh commented May 26, 2026

Description

While investigating issue #3030, the underlying bug could not be directly reproduced on the current master branch. However, during the investigation, I identified several improvements for docker/hbase/README.md that will be useful for verifying HBase-related issues in the future.

Specifically, this PR splits the local verification process into two clear paths (Standalone vs. Fully Containerized). It also enhances the HBase Docker artifacts by making hbase.master.hostname and hbase.regionserver.hostname fully configurable via environment variables.


Main Changes

1. Documentation Updates (docker/hbase/README.md)

  • Dual-Path Quick Start: Restructured the guide into two explicit validation paths:
    • Option 1: Standalone HugeGraph engine backed by Dockerized HBase.
    • Option 2: Fully containerized setup (Docker HugeGraph + Docker HBase) using a shared network.
  • Automated Setup Snippets: Added programmatic perl scripts to dynamically swap backend/serializer properties (rocksdb $\rightarrow$ hbase) and rewrite host configurations on the fly.
  • REST Verification Runbook: Checked in an explicit, end-to-end verification script utilizing the native /traversers/ REST APIs (kout, rays) to securely validate graph space persistence.
  • Troubleshooting Reference: Added a scannable table mapping common system errors (like UnknownHostException or port conflicts) directly to their respective resolutions.

2. Docker Environments (docker/hbase/)

  • Flexible Hostnames (docker-compose.hbase.yml): Replaced hardcoded hostnames with a configurable environment variable fallback (${HBASE_HOSTNAME:-hbase}).
  • Dynamic Property Injection (entrypoint.sh): Added a set_xml_property_value helper function inside the entrypoint sequence. This cleanly updates hbase.master.hostname and hbase.regionserver.hostname configurations inside hbase-site.xml at runtime based on the container environment.

Verifying of the issue

Verified the issue as follows

  • Verified issue ServerInfo is missing WARN floods logs continuously after startup with HBase backend #3030 using the updated setup runbook to ensure the environment is correctly configured.
  • Followed Option 1 by building the project locally (mvn clean package -DskipTests), initializing the store backend (init-store.sh), and running the sequential REST traversal scripts.
  • Followed Option 2 by building the hugegraph/server:dev target image and executing the one-shot store initializations inside an isolated container network.
  • Confirmed that the hugegraph-server logs were entirely clean of the targeted warnings during operation; specifically, no instances of the following log patterns were observed:

    [WARN] o.a.h.t.ServerInfoManager - ServerInfo is missing: DEFAULT-aikg/server-1
    [WARN] o.a.h.t.ServerInfoManager - ServerInfo is missing: DEFAULT-aikg/server-1, may be cleared before

Does this PR potentially affect the following parts?

  • Dependencies
  • Modify configurations (Updates localized Docker helper configs and verification scripts)
  • The public API
  • Other affects
  • Nope

Documentation Status

  • Doc - Done (The primary objective of this PR is introducing the HBase validation runbook docs)

…pache#3030)

- improved `docker/hbase/README.md`. Added sections for "Standalone HugeGraph" and "Docker HugeGraph" and steps to verify the hbase backend
-Used the steps in README.md file to verify the issue apache#3030. It its unreproducible in latest master branch.
@dosubot dosubot Bot added the size:L This PR changes 100-499 lines, ignoring generated files. label May 26, 2026
@imbajin imbajin requested a review from Copilot May 29, 2026 15:42
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Rewrites the docker/hbase/ HBase backend testing guide into a shorter dual-path runbook (standalone HugeGraph against Dockerized HBase, vs. fully containerized HugeGraph+HBase on a shared Docker network), and makes the HBase container's advertised hostname configurable so the same image works in both topologies. Originated from investigating issue #3030, which could not be reproduced on master; the underlying server change set is doc/operational only.

Changes:

  • Restructures docker/hbase/README.md around two explicit setup paths, adds REST traverser verification steps (/traversers/kout, /traversers/rays) and a troubleshooting table.
  • Adds HBASE_HOSTNAME/HBASE_MASTER_HOSTNAME/HBASE_REGIONSERVER_HOSTNAME env wiring in docker-compose.hbase.yml with a hbase fallback.
  • Adds a set_xml_property_value helper in entrypoint.sh that rewrites hbase.master.hostname and hbase.regionserver.hostname in hbase-site.xml at container start.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.

File Description
docker/hbase/README.md Replaces the long testing guide with a two-path runbook and adds REST verification + troubleshooting table.
docker/hbase/docker-compose.hbase.yml Makes container hostname configurable and forwards HBase hostname env vars into the container.
docker/hbase/entrypoint.sh Patches hbase-site.xml master/regionserver hostnames at runtime from env vars before starting daemons.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docker/hbase/README.md
docker compose -p hg-hbase -f docker/hbase/docker-compose.hbase.yml down -v
docker compose -p hg-hbase -f docker/hbase/docker-compose.hbase.yml build --no-cache hbase
docker compose -p hg-hbase -f docker/hbase/docker-compose.hbase.yml up -d
docker compose -p hg-hbase -f docker/hbase/docker-compose.hbase.yml logs -f hbase
Comment thread docker/hbase/README.md
docker compose -p hg-hbase -f docker/hbase/docker-compose.hbase.yml down -v
docker compose -p hg-hbase -f docker/hbase/docker-compose.hbase.yml build --no-cache hbase
HBASE_HOSTNAME=hbase docker compose -p hg-hbase -f docker/hbase/docker-compose.hbase.yml up -d
docker compose -p hg-hbase -f docker/hbase/docker-compose.hbase.yml logs -f hbase
Comment thread docker/hbase/README.md
Comment on lines 259 to 262
```bash
docker exec hg-hbase-test bash -c '
for t in $(echo "list" | hbase shell -n 2>/dev/null | grep "^default_hugegraph"); do
echo "disable '"'"'$t'"'"'; drop '"'"'$t'"'"'"
done | hbase shell
'
docker rm -f hg-server-dev-hbase
docker compose -p hg-hbase -f docker/hbase/docker-compose.hbase.yml down -v
```
Comment on lines +29 to +38
set_xml_property_value() {
local property_name="$1"
local property_value
property_value=$(escape_sed_replacement "$2")

sed -i "/<name>${property_name//./\\.}<\\/name>/ {n; s|<value>.*</value>|<value>${property_value}</value>|;}" "${HBASE_SITE_XML}"
}

set_xml_property_value "hbase.master.hostname" "${HBASE_MASTER_HOSTNAME}"
set_xml_property_value "hbase.regionserver.hostname" "${HBASE_REGIONSERVER_HOSTNAME}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants