שכפול מ-HBase ל-Bigtable
ספריית השכפול של Cloud Bigtable HBase היא רכיב של לקוח Cloud Bigtable HBase ל-Java בקוד פתוח. ספריית השכפול מאפשרת לשכפל נתונים באופן אסינכרוני מאשכול HBase למופע Bigtable באמצעות שירות השכפול של HBase, כך שאפשר לבצע העברה אונליין מ-HBase ל-Bigtable. כדי לעיין בקובץ ה-README ובקוד המקור, אפשר להיכנס אל מאגר GitHub.
מידע על העברה אופליין מ-HBase ל-Bigtable זמין במאמר העברת נתונים מ-HBase ל-Bigtable אופליין.
תרחישים לדוגמה
- העברה אונליין ל-Bigtable – אפשר להשתמש בספריית השכפול של Bigtable HBase, בשילוב עם העברה אופליין של נתוני HBase הקיימים, כדי להעביר מ-HBase ל-Bigtable כמעט ללא השבתה.
- שחזור נתונים – כדי להתכונן למקרים לא צפויים, כדאי לשכפל את נתוני HBase למופע Bigtable מחוץ לאתר.
- ריכוז מערכי נתונים – אפשר להשתמש בספרייה כדי ליצור רפליקות של נתונים מאשכולות HBase בכמה מיקומים, במופע Bigtable יחיד שמטפל אוטומטית בשכפול בין האשכולות שלו.
- הרחבת טביעת הרגל של HBase – שכפול למופע Bigtable שיש לו אשכולות במיקומים שמעבר למיקומי HBase הנוכחיים.
סקירה כללית
ספריית השכפול של Bigtable HBase מרחיבה את שירות השכפול של HBase. נתונים שנכתבים לאשכול HBase משוכפלים באופן אסינכרוני למופע Bigtable, באותו אופן שבו שכפול HBase רגיל מעתיק נתונים לאשכול HBase אחר. הספרייה משתמשת ביומן הרישום מראש (WAL) של אשכול HBase של המקור כדי להעביר את השינויים למופע Bigtable.
אפשר לשכפל אשכול HBase שלם ל-Bigtable או לשכפל רק טבלאות או משפחות עמודות ספציפיות. במילים אחרות, השכפול של HBase מופעל ברמת האשכול, הטבלה או קבוצת העמודות.
השכפול מ-HBase ל-Bigtable מתבצע לפי מודל עקביות הדרגתי.
מעבר ל-Bigtable
ספריית השכפול של Bigtable HBase מאפשרת לכם לבצע מיגרציה ל-Bigtable בלי להשהות את האפליקציה.
באופן כללי, השלבים להעברה אונליין מ-HBase ל-Bigtable הם: פרטים נוספים מופיעים בקובץ README.
- לפני שמתחילים, צריך לפעול לפי שלבי ההגדרה וההתקנה.
- מפעילים שכפול באשכול HBase.
- מוסיפים נקודת קצה לשכפול Bigtable כעמית.
- משביתים את עמית Bigtable. כתוצאה מכך, פעולות כתיבה ל-HBase מאותו רגע ואילך נשמרות במאגר הזמני באשכול HBase.
- אחרי שהמאגר הזמני יתחיל לתעד כתיבות חדשות, צריך לפעול לפי המדריך להעברה במצב אופליין כדי להעביר תמונת מצב של נתוני HBase הקיימים.
- בסיום ההעברה אופליין, מפעילים מחדש את Bigtable peer כדי לאפשר לריקון המאגר ולשידור חוזר של פעולות כתיבה ב-Bigtable.
- אחרי שהמאגר יתרוקן, צריך להפעיל מחדש את האפליקציה כדי לשלוח בקשות ל-Bigtable.
הגדרה של ספריית השכפול
כדי להשתמש בשכפול של Bigtable HBase, צריך לבצע את המשימות שמפורטות בקטע הזה.
הגדרת אימות
כדי לוודא שלספריית השכפול יש הרשאה לכתוב ב-Bigtable, פועלים לפי השלבים במאמר יצירת חשבון שירות. מקצים את התפקיד roles/bigtable.user לחשבון השירות החדש.
לאחר מכן, מוסיפים את הנתונים הבאים לקובץ hbase-site.xml בכל אשכול HBase.
<property>
<name>google.bigtable.auth.json.keyfile</name>
<value>JSON_FILE_PATH</value>
<description>
Service account JSON file to connect to Cloud Bigtable
</description>
</property>
מחליפים את JSON_FILE_PATH בנתיב לקובץ ה-JSON שהורדתם.
מידע על מאפיינים נוספים שאפשר להגדיר זמין במאמר בנושא HBaseToCloudBigtableReplicationConfiguration.
יצירת מופע ויעדים
לפני שמשכפלים מ-HBase ל-Bigtable, צריך ליצור מכונה של Bigtable. במופע Bigtable יכול להיות אשכול אחד או כמה אשכולות שפועלים במצב מרובה-ראשי. בקשות משירות השכפול של HBase מנותבות לאשכול הקרוב ביותר במופע Bigtable, ואז משוכפלות לאשכולות האחרים במופע.
שם טבלת היעד ב-Bigtable צריך להיות זהה לשם טבלת HBase, וגם משפחות העמודות צריכות להיות זהות. הוראות מפורטות לשימוש בכלי לתרגום סכימות של Bigtable כדי ליצור טבלה עם אותה סכימה כמו טבלת HBase מופיעות במאמר העברת נתונים מ-HBase ל-Bigtable במצב אופליין. גם אם אתם משכפלים את הנתונים ולא מייבאים אותם, השלבים זהים.
הגדרת מאפייני ההגדרה
מוסיפים את השורות הבאות לקובץ hbase-site.xml בכל אשכול HBase.
<property>
<name>google.bigtable.project.id</name>
<value>PROJECT_ID</value>
<description>
Bigtable project ID
</description>
</property>
<property>
<name>google.bigtable.instance.id</name>
<value>INSTANCE_ID</value>
<description>
Bigtable instance ID
</description>
</property>
<property>
<name>google.bigtable.app_profile.id</name>
<value>APP_PROFILE_ID</value>
<description>
Bigtable app profile ID
</description>
</property>
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: הפרויקט ב- Google Cloud שבו נמצא מופע Bigtable. -
INSTANCE_ID: המזהה של מופע Bigtable שאליו משכפלים את הנתונים. -
APP_PROFILE_ID: המזהה של פרופיל האפליקציה שמשמש לחיבור ל-Bigtable.
התקנת ספריית השכפול
כדי להשתמש בספריית השכפול של Bigtable HBase, צריך להתקין אותה בכל שרת באשכול HBase. צריך להשתמש בגרסת ספריית השכפול שתואמת לגרסת HBase (1.x או 2.x).
הורדת קובץ ה-JAR
כדי לקבל את ספריית השכפול, מריצים את הפקודה הבאה ב-HBase shell.
wget BIGTABLE_HBASE_REPLICATION_URL
מחליפים את BIGTABLE_HBASE_REPLICATION_URL בכתובת ה-URL של קובץ ה-JAR העדכני ביותר עם תלויות שזמין במאגר Maven של ספריית השכפול. שם הקובץ דומה ל-https://repo1.maven.org/maven2/com/google/cloud/bigtable/bigtable-hbase-1.x-replication/1.0.0/bigtable-hbase-1.x-replication-1.0.0-jar-with-dependencies.jar.
כדי למצוא את כתובת ה-URL או להוריד את קובץ ה-JAR באופן ידני, מבצעים את הפעולות הבאות.
- עוברים למאגר של ספריית השכפול לגרסה של HBase שבה אתם משתמשים.
- לוחצים על מספר הגרסה העדכנית ביותר, למשל
1.0.0. - מזהים את הקובץ jar-with-dependencies (בדרך כלל הוא מופיע בחלק העליון).
- לוחצים לחיצה ימנית ומעתיקים את כתובת ה-URL, או לוחצים כדי להוריד את הקובץ.
התקנת קובץ JAR
בכל שרת HBase, כולל שרתי המאסטר והאזורים, מעתיקים את הקובץ שהורדתם עכשיו לתיקייה בנתיב המחלקה של HBase. לדוגמה,
אפשר להעתיק את הקובץ אל /usr/lib/hbase/lib/.
הוספה של עמית Bigtable
כדי לשכפל מ-HBase ל-Bigtable, צריך להוסיף נקודת קצה של Bigtable כעמית לשכפול.
- מפעילים מחדש את שרתי HBase כדי לוודא שספריית השכפול נטענה.
- מריצים את הפקודה הבאה במעטפת HBase.
add_peer "PEER_ID_NUMBER", ENDPOINT_CLASSNAME =>
'com.google.cloud.bigtable.hbaseHBASE_VERSION_NUMBER_x.replication.HbaseToCloudBigtableReplicationEndpoint'
מחליפים את מה שכתוב בשדות הבאים:
PEER_ID_NUMBER: מזהה מספרי של עמית השכפול ב-Bigtable. כדי להפעיל שכפול של HBase רק עבור טבלאות נבחרות, משתמשים בפרמטר אופציונליadd_peer.
HBASE_VERSION_NUMBER: מספר גרסת HBase שבה אתם משתמשים. משתמשים ב-1ל-HBase 1.x וב-2ל-HBase 2.x. (אין תמיכה ב-HBase 3.x).
הפעלת שכפול טבלאות
אחרי שמוסיפים את עמית Bigtable, מריצים את הפקודה הבאה במעטפת HBase לכל טבלה שרוצים לשכפל ל-Bigtable כדי להפעיל שכפול טבלאות:
enable_table_replication TABLE_NAME
מחליפים את TABLE_NAME בשם הטבלה שרוצים לשכפל.