יצירת אובייקט חיבור

כדי להתחבר ל-Bigtable באמצעות לקוח Cloud Bigtable HBase ל-Java, צריך להגדיר מאפייני תצורה ואז ליצור אובייקט Connection. יצירת אובייקט Connection היא פעולה כבדה, ולכן מומלץ ליצור כמה שפחות אובייקטים כאלה:

  • אם אתם משתמשים בשכפול או בפרופילים של אפליקציות כדי לזהות סוגים שונים של תנועה למופע שלכם, אתם צריכים ליצור אובייקט Connection אחד לכל פרופיל של אפליקציה ולשתף את האובייקטים בין השרשורים באפליקציה.
  • אם אתם לא משתמשים בשכפול או בפרופילי אפליקציות, אתם יכולים ליצור אובייקט אחד ולשתף אותו בין השרשורים באפליקציה.Connection

יש כמה דרכים לציין את הגדרות התצורה של Connectionאובייקט:

  • כוללים את ההגדרות בקוד. אם האפליקציה משתמשת בכמה פרופילים של אפליקציות (למשל, אם היא מבצעת כמה פונקציות שונות, עם פרופיל אפליקציה נפרד לכל פונקציה), צריך להשתמש באפשרות הזו.

    אפשר להשתמש באפשרות הזו גם אם אתם מעדיפים לשמור את הגדרות התצורה בקוד של האפליקציה, או אם לא מעשי לכלול קובץ תצורה חיצוני כמשאב באפליקציה.

  • שימוש בקובץ hbase-site.xml לאחסון הגדרות משתמשים באפשרות הזו אם האפליקציה משתמשת גם ב-HBase וגם ב-Bigtable, או אם אתם מעדיפים לשמור את הגדרות התצורה של Bigtable בקובץ עצמאי.

בקטעים הבאים מוסבר איך להגדיר וליצור כל אחד מהConnection אובייקטים.

הכללת הגדרות בקוד

בדוגמה הבאה אפשר לראות איך יוצרים אובייקט Connection באפליקציה שלכם. מחליפים את [VALUES_IN_BRACKETS] בערכים הנכונים של המופע:

package com.example.helloworld;

import com.google.cloud.bigtable.hbase.BigtableConfiguration;
import com.google.cloud.bigtable.hbase.BigtableOptionsFactory;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.client.Connection;

public class BigtableHelper {
  private static final String PROJECT_ID = "[YOUR_PROJECT_ID]";
  private static final String INSTANCE_ID = "[YOUR_INSTANCE_ID]";
  // Include the following line if you are using app profiles.
  // If you do not include the following line, the connection uses the
  // default app profile.
  private static final STRING APP_PROFILE_ID = "[YOUR_APP_PROFILE_ID]";

  private static Connection connection = null;

  public static void connect() throws IOException {
    Configuration config = BigtableConfiguration.configure(PROJECT_ID, INSTANCE_ID);
    // Include the following line if you are using app profiles.
    // If you do not include the following line, the connection uses the
    // default app profile.
    config.set(BigtableOptionsFactory.APP_PROFILE_ID_KEY, APP_PROFILE_ID);

    connection = BigtableConfiguration.connect(config);
  }
}

שימוש בקובץ hbase-site.xml

בקטע הזה מוסבר איך ליצור אובייקט Connection על ידי הכללת הגדרות התצורה בקובץ hbase-site.xml.

קוד לדוגמה

בדוגמה הבאה אפשר לראות איך מגדירים ויוצרים אובייקט Connection באפליקציה שלכם:

package com.example.helloworld;

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;

public class BigtableHelper {
  private static Connection connection = null;

  public static void connect() throws IOException {
    Configuration config = HBaseConfiguration.create();
    connection = ConnectionFactory.createConnection(config);
  }
}

קובץ hbase-site.xml נפרד נכלל במשאבים של קובץ ה-JAR. כשיוצרים את האובייקט Configuration, לקוח Cloud Bigtable HBase ל-Java קורא אוטומטית את ההגדרות מהקובץ hbase-site.xml.

בקטעים הבאים מוסבר איך להטמיע את השיטה הזו באפליקציה.

יצירת הקובץ hbase-site.xml

בספרייה src/main/resources של הפרויקט, יוצרים קובץ בשם hbase-site.xml. הקובץ צריך לכלול את כל המאפיינים שמוצגים בדוגמה הבאה. מחליפים את [VALUES_IN_BRACKETS] בערכים הנכונים של המופע:

<configuration>
  <property>
    <name>hbase.client.connection.impl</name>
    <value>com.google.cloud.bigtable.hbase1_x.BigtableConnection</value>
  </property>
  <property>
    <name>google.bigtable.project.id</name>
    <value>[YOUR_PROJECT_ID]</value>
  </property>
  <property>
    <name>google.bigtable.instance.id</name>
    <value>[YOUR_INSTANCE_ID]</value>
  </property>
  <!--
    Include the following property if you are using app profiles.
    If you do not include the following property, the connection uses the
    default app profile.
  -->
  <property>
    <name>google.bigtable.app_profile.id</name>
    <value>[YOUR_APP_PROFILE_ID]</value>
  </property>
</configuration>

הוספת hbase-site.xml לקובץ ה-JAR

אחרי שיוצרים את הקובץ hbase-site.xml, צריך לעדכן את סקריפט ה-build כך שיכלול את הספרייה src/main/resources בקובץ ה-JAR של הפרויקט.

אם משתמשים ב-Maven, צריך לערוך את רכיב <build> בקובץ pom.xml כדי להעתיק את המשאבים לקובץ ה-JAR:

<build>
  <resources>
    <resource>
      <directory>src/main/resources</directory>
      <filtering>true</filtering>
    </resource>
  </resources>
</build>

יצירת אובייקט Connection

עכשיו אפשר לעדכן את הקוד כדי ליצור אובייקט Configuration. כשיוצרים את האובייקט הזה, לקוח Cloud Bigtable HBase ל-Java קורא באופן אוטומטי את ההגדרות מקובץ hbase-site.xml. אחרי כן, תוכלו להשתמש בהגדרות האלה כדי ליצור אובייקט Connection:

Configuration config = HBaseConfiguration.create();
connection = ConnectionFactory.createConnection(config);

המאמרים הבאים