HBase إنشاء جدول مع Java مثال API وShell
⚡ ملخص ذكي
يخزن HBase البيانات في جداول، ويمكنك إنشاء هذه الجداول والتعامل معها بطريقتين: من خلال Java واجهة برمجة التطبيقات مع HTableDescriptأو HBaseAdmin، أو مباشرة في واجهة HBase باستخدام أمر الإنشاء.

كيفية إنشاء جدول في HBase مع Java API
في HBase، يمكن إنشاء الجداول بطريقتين: من خلال Java واجهة برمجة التطبيقات (API) وعبر واجهة سطر أوامر HBase. يغطي هذا القسم ما يلي: Java واجهة برمجة التطبيقات (API)، التي تتيح للتطبيق إنشاء الجداول وتحميل البيانات برمجيًا كجزء من مهمة أكبر.
عبر Java API، يمكننا إنشاء جداول في HBase وأيضًا تحميل البيانات إلى الجداول باستخدام Java البرمجة. الأمران اللذان قمنا بإعدادهما هنا هما:
- إنشاء اتصال مع HBase من خلال Java API.
- باستخدام Eclipse لـ Java البرمجة، وتصحيح الأخطاء، والاختبار.
فيما يلي الخطوات لإنشاء الجداول في HBase من خلال Java API.
الخطوة 1) إنشاء أ Java مشروع في Eclipse
في هذه الخطوة، سنقوم بإنشاء Java مشروع في Eclipse بالنسبة لاتصال HBase، المسمى "HbaseConnection".
الجديد Java يعرض مربع حوار المشروع أدناه عملية إعداد مشروع "HbaseConnection":
إذا نظرنا إلى لقطة الشاشة أعلاه:
- أدخل اسم المشروع في هذا المربع. في حالتنا، اسم المشروع هو "HbaseConnection".
- حدد هذا المربع لتحديد الموقع الافتراضي للحفظ. هنا، المسار هو /home/hduser/work/HbaseConnection.
- حدد المربع الخاص بـ Java البيئة هنا. في هذه الحالة JavaSE-1.7 Java طبعة.
- اختر الخيار الذي تريد حفظ الملف فيه. في حالتنا، اخترنا الخيار الثاني، "إنشاء مجلد منفصل للمصادر وملفات الفئات".
- انقر على زر "إنهاء"، الذي يُنشئ مشروع "HbaseConnection" في Eclipse ويفتح Eclipse الصفحة الرئيسية.
الخطوة الثانية: تكوين مسار الإنشاء في Eclipse
على Eclipse في الصفحة الرئيسية، اتبع هذه الخطوات لفتح إعدادات مسار الإنشاء:
Right click on project -> Select Build Path -> Configure build path
تُظهر لقطة الشاشة أدناه قائمة النقر بزر الماوس الأيمن المستخدمة لفتح إعدادات مسار الإنشاء:
من لقطة الشاشة أعلاه:
- انقر بزر الماوس الأيمن على مشروع.
- حدد مسار الإنشاء.
- حدد "تكوين مسار الإنشاء".
بعد النقر على "تكوين مسار الإنشاء"، ستُفتح نافذة أخرى، كما هو موضح في لقطة الشاشة أدناه. في علامة تبويب "المكتبات"، تتم إضافة ملفات HBase وHadoop JAR إلى المشروع.
في هذه الخطوة، نضيف ملفات HBase JAR ذات الصلة إلى Java المشروع كما هو موضح في لقطة الشاشة.
- ملفات JAR المهمة التي يجب إضافتها: hbase-0.94.8.jar و hadoop-core-1.1.2.jar.
- انتقل إلى تبويب المكتبات.
- اضغط على خيار إضافة ملفات JAR خارجية.
- حدد ملفات JAR المهمة المطلوبة.
- اضغط على زر "إنهاء" لإضافة هذه الملفات إلى مجلد "src" الخاص بـ Java مشروع ضمن قسم المكتبات.
بعد إضافة ملفات JAR، ستظهر ضمن موقع "src" الخاص بالمشروع كما هو موضح أدناه:
جميع ملفات JAR التي تندرج تحت المشروع جاهزة الآن للاستخدام مع نظام Hadoop البيئي.
الخطوة 3) إنشاء اتصال HBase
في هذه الخطوة، باستخدام HBaseConnection.java، يتم إنشاء اتصال HBase من خلال Java الترميز.
على Eclipse من القائمة العلوية، قم بتنفيذ Java البرنامج كما هو موضح أدناه: تشغيل -> تشغيل كـ -> Java التطبيق. تعرض القائمة أدناه البرنامج الذي يتم تشغيله:
- حدد تشغيل.
- حدد تشغيل كـ Java تطبيق.
- يُنشئ هذا الكود اتصالاً مع HBase من خلال Java API.
- بعد تشغيل هذا الكود، يتم إنشاء جدول "guru99" في HBase مع مجموعتين من الأعمدة باسم "education" و"projects". حاليًا، تم إنشاء المخطط فارغًا فقط في HBase.
يُبرز مقتطف الشفرة أدناه جدول HTableDescriptأو استدعاءات addFamily التي تُنشئ مخطط الجدول:
من خلال لقطة الشاشة أعلاه، نلاحظ أننا نقوم بالوظائف التالية:
- باستخدام HTableDescriptأو يمكننا إنشاء جدول "guru99" في HBase.
- باستخدام طريقة addFamily، نضيف "education" و "projects" كعائلات أعمدة إلى جدول "guru99".
سيقوم الكود أدناه بإنشاء اتصال مع HBase وإنشاء جدول "guru99" بمجموعتين من الأعمدة. ضع هذا الكود ضمن ملف HBaseConnection.java.
// Place this code inside Hbase connection import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; Import org.apache.hadoop.hbase.client.HBaseAdmin; public class HBaseConnection { public static void main(String[] args) throws IOException { HBaseConfigurationhc = new HBaseConfiguration(new Configuration()); HTableDescriptorht = new HTableDescriptor("guru99"); ht.addFamily( new HColumnDescriptor("education")); ht.addFamily( new HColumnDescriptor("projects")); System.out.println( "connecting" ); HBaseAdminhba = new HBaseAdmin( hc ); System.out.println( "Creating Table" ); hba.createTable( ht ); System.out.println("Done......"); } }
هذا هو الكود المطلوب وضعه في ملف HBaseConnection.java قبل تشغيله Java برنامج.
بعد تشغيل هذا البرنامج، يقوم بإنشاء اتصال مع HBase، وبالتالي يقوم بإنشاء جدول بأسماء الأعمدة.
- اسم الجدول هو "guru99".
- عائلات الأعمدة هي "التعليم" و"المشاريع".
الخطوة 4) التحقق من الجدول الذي تم إنشاؤه في HBase
يمكننا التحقق مما إذا كان جدول "guru99" قد تم إنشاؤه بمجموعتين من الأعمدة في HBase باستخدام وضع سطر الأوامر في HBase مع الأمر "list". يوفر الأمر "list" معلومات حول جميع الجداول التي تم إنشاؤها في HBase.
يؤكد تشغيل أمر القائمة في واجهة HBase وجود الجدول الجديد، كما هو موضح أدناه:
- Code التحقق من خلال واجهة HBase عن طريق تنفيذ الأمر "list".
- إذا قمنا بتشغيل الأمر "list"، فسيتم عرض الجدول الذي تم إنشاؤه في HBase. في حالتنا، يمكننا أن نرى أنه تم إنشاء جدول "guru99".
HBase إنشاء جدول مع Shell
إلى جانب Java باستخدام واجهة برمجة التطبيقات (API)، يمكنك إنشاء جدول مباشرةً من واجهة سطر أوامر HBase، وهي أسرع طريقة لإعداد جدول لإجراء اختبارات سريعة. صيغة إنشاء جدول في HBase باستخدام واجهة سطر الأوامر هي:
Syntax: create <tablename>, <columnfamilyname>
مثال:-
hbase(main):001:0> create 'education' ,'guru99' 0 rows(s) in 0.312 seconds =>Hbase::Table – education
يوضح المثال أعلاه كيفية إنشاء جدول في HBase بالاسم المحدد وفقًا لمواصفات كل مجموعة أعمدة. بالإضافة إلى ذلك، يمكننا أيضًا تمرير بعض سمات نطاق الجدول إليه.
create 'guru99', {NAME=>'Edu', VERSIONS=>213423443}
هنا، تحدد الكتلة {NAME=>'Edu', VERSIONS=>…} عائلة أعمدة باسم "Edu" وعدد إصدارات الخلايا التي تحتفظ بها. الرقم الكبير هو للتوضيح فقط؛ عمليًا، تكون قيمة VERSIONS صغيرة مثل 3 أو 5.
سرد جداول HBase ووصفها والتحقق منها
إنشاء جدول ليس سوى الخطوة الأولى في التعامل مع الجداول في HBase. بمجرد إنشاء جدول "guru99"، تتيح لك بعض الأوامر العامة فحصه والتأكد من حالته قبل قراءة البيانات أو كتابتها أو تعديلها. يمكنك تشغيل جميع هذه الأوامر من... قذيفة HBase.
يُعيد الأمر list جميع جداول المستخدمين في HBase:
hbase> list
يُظهر الأمر describe بنية الجدول، بما في ذلك عائلات الأعمدة وما إذا كان مُفعّلاً حاليًا:
hbase> describe 'guru99'
يتحقق الأمر exists مما إذا كان الجدول موجودًا، بينما يُبلغ الأمر is_enabled عما إذا كان الجدول يمكنه قبول عمليات الكتابة:
hbase> exists 'guru99' hbase> is_enabled 'guru99'
تُعدّ عمليات التحقق هذه، التي تتم للقراءة فقط، آمنة للتنفيذ في أي وقت. وهي أسرع طريقة للتأكد من إنشاء الجدول بشكل صحيح ومراجعة عائلات أعمدته قبل تحميل البيانات.
تعديل جدول HBase
لا يتم تثبيت مخطط جدول HBase بعد إنشائه. يقوم أمر alter بتغيير عائلات أعمدة الجدول وخصائص نطاق الجدول دون إعادة إنشائه. بناءً على إصدار HBase لديك، قد تحتاج إلى تعطيل الجدول أولاً، ثم تشغيل أمر alter وتمكينه مرة أخرى.
لإضافة عائلة أعمدة جديدة إلى جدول "guru99":
hbase> alter 'guru99', {NAME => 'contact'}
لتحديد عدد النسخ التي تحتفظ بها عائلة الأعمدة:
hbase> alter 'guru99', NAME => 'education', VERSIONS => 5
لحذف مجموعة أعمدة من الجدول:
hbase> alter 'guru99', {NAME => 'contact', METHOD => 'delete'}
يمكنك أيضًا تغيير خصائص نطاق الجدول. على سبيل المثال، يمكنك جعل الجدول للقراءة فقط، أو تعيين الحد الأقصى لحجم ملف المنطقة إلى 128 ميجابايت:
hbase> alter 'guru99', READONLY hbase> alter 'guru99', MAX_FILESIZE => '134217728'
لأن الأمر alter يعيد كتابة المخطط، لذا خطط للتغييرات بعناية على جدول الإنتاج، ثم تأكد من النتيجة لاحقًا باستخدام الأمر describe.
تعطيل جداول HBase وتمكينها وحذفها
لحذف جدول أو تطبيق تغييرات معينة، يتطلب HBase تعطيله أولاً. يؤدي التعطيل إلى إيقاف تشغيل الجدول، فلا يمكن لأي عميل قراءته أو الكتابة إليه، مما يجعل التغييرات الهيكلية آمنة.
قم بتعطيل جدول، وتحقق من حالته باستخدام is_disabled:
hbase> disable 'guru99' hbase> is_disabled 'guru99'
قم بتمكين الجدول مرة أخرى لاستئناف عمليات القراءة والكتابة:
hbase> enable 'guru99'
يجب تعطيل الجدول قبل حذفه. حذفping يحذف الجدول وجميع بياناته بشكل دائم، لذا استخدمه بحذر:
hbase> disable 'guru99' hbase> drop 'guru99'
لحذف عدة جداول دفعة واحدة، يقوم الأمر drop_all بحذف كل جدول يتطابق اسمه مع تعبير نمطي. وتغطي الأوامر create و alter و disable و enable و drop معًا دورة حياة الجداول بالكامل. معالجة البيانات في جداول HBase.






