أوامر HBase Shell مع أمثلة

⚡ ملخص ذكي

تتيح لك أوامر HBase shell إدارة الجداول والبيانات مباشرة من موجه تفاعلي، مجمعة في أوامر عامة، وأوامر إدارة الجداول مثل الإنشاء والحذف، وأوامر معالجة البيانات مثل الإضافة والجلب، وأوامر تكرار المجموعة.

  • 🖥️ الأوامر العامة: تُبلغ وظائف الحالة والإصدار وtable_help وwhoami عن حالة المجموعة ومعلومات المستخدم.
  • 🗂️ إدارة الطاولات: إنشاء الجداول، وإدراجها، ووصفها، وتعطيلها، وتمكينها، وحذفها، وتعديلها، وبناء الجداول وإعادة تشكيلها.
  • ✏️ معالجة البيانات: وضع، الحصول، حذف، حذف الكل، اقتطاع، عد، ومسح قراءة وكتابة قيم الخلايا.
  • 🔁 Cluster النسخ: تقوم الأوامر add_peer و remove_peer و start_replication و stop_replication بإدارة عملية نسخ البيانات.
  • ⏳ خاصية TTL: تنتهي صلاحية صفوف عائلة الأعمدة تلقائيًا بعد عدد محدد من الثواني.
  • 🤖 المساعدة بالذكاء الاصطناعي: تقوم المساعدات المدعومة بالذكاء الاصطناعي بإنشاء وشرح أوامر HBase shell من خلال مطالبات بلغة بسيطة.

أوامر HBase shell مع أمثلة لتكرار الجداول والبيانات والمجموعات

كيفية التفاعل مع HBase باستخدام أوامر Shell و Java API

بعد تثبيت HBase بنجاح على منصة Hadoop، نحصل على واجهة تفاعلية لتنفيذ أوامر متنوعة وإجراء عمليات متعددة. باستخدام هذه الأوامر، يمكننا إجراء عمليات متعددة على جداول البيانات، مما يُحسّن كفاءة تخزين البيانات ويوفر تفاعلاً مرناً للمستخدم.

يمكننا التفاعل مع HBase بطريقتين:

  • وضع الصدفة التفاعلي لـ HBase، و
  • عبر Java API.

في HBase، يُستخدم وضع الصدفة التفاعلي للتفاعل مع HBase لإجراء عمليات الجداول وإدارتها ونمذجة البيانات. باستخدام Java باستخدام نموذج واجهة برمجة التطبيقات (API)، يمكننا إجراء جميع أنواع عمليات الجداول والبيانات في HBase. يمكننا التفاعل مع HBase باستخدام كلتا الطريقتين. الفرق الوحيد بينهما هو أن Java تستخدم واجهة برمجة التطبيقات Java يُستخدم الكود للاتصال بـ HBase، بينما يستخدم وضع shell أوامر shell للاتصال بـ HBase.

مراجعة سريعة لـ HBase قبل المتابعة:

  • يستخدم HBase Hadoop تُستخدم الملفات كنظام تخزين لحفظ كميات كبيرة من البيانات. يتكون HBase من خوادم رئيسية وخوادم إقليمية.
  • ستُخزَّن البيانات في HBase على شكل مناطق. علاوة على ذلك، سيتم تقسيم هذه المناطق وتخزينها في خوادم مناطق متعددة.
  • تتيح أوامر الصدفة هذه للمبرمج تحديد مخططات الجداول وعمليات البيانات باستخدام التفاعل الكامل مع وضع الصدفة.
  • أيًا كان الأمر الذي نستخدمه، فسوف ينعكس ذلك في نموذج بيانات HBase.
  • نستخدم أوامر HBase shell في مترجمات البرامج النصية لنظام التشغيل مثل Bash shell.
  • تُعد Bash shell مترجم الأوامر الافتراضي لمعظم لينكس وتوزيعات نظام التشغيل يونكس.
  • توفر الإصدارات المتقدمة من HBase أوامر shell مع مراجع كائنية التوجه على غرار JRuby للجداول.
  • يمكن استخدام متغيرات مرجع الجدول لإجراء عمليات البيانات في وضع HBase shell.

فمثلا:

  • في هذا البرنامج التعليمي، قمنا بإنشاء جدول حيث يمثل "education" اسم الجدول ويتوافق مع اسم العمود "guru99".
  • في بعض الأوامر، يمثل "guru99" نفسه اسم جدول.

أوامر عامة

في HBase، تُصنف الأوامر العامة إلى الأوامر التالية:

  • الحالة
  • التجريبية
  • Table_help (مسح، إسقاط، الحصول، وضع، تعطيل، وما إلى ذلك)
  • من أنا

للدخول إلى أمر HBase shell، يجب علينا أولاً تنفيذ الكود كما هو مذكور أدناه.

hbase Shell

بمجرد الدخول إلى واجهة سطر أوامر HBase، يُمكننا تنفيذ جميع أوامر سطر الأوامر المذكورة أدناه. وباستخدام هذه الأوامر، يُمكننا إجراء جميع أنواع عمليات الجداول في وضع سطر أوامر HBase. يظهر موجه سطر الأوامر التفاعلي كما هو موضح أدناه:

تم فتح موجه الأوامر التفاعلي لـ HBase باستخدام أمر hbase shell

دعونا نلقي نظرة على كل هذه الأوامر واستخدامها واحدًا تلو الآخر مع مثال.

الحالة

Syntax:status

سيوفر هذا الأمر تفاصيل حول حالة النظام، مثل عدد الخوادم الموجودة في المجموعة، وعدد الخوادم النشطة، ومتوسط ​​الحمل. يمكنك أيضًا تحديد معلمات معينة بناءً على مستوى التفصيل المطلوب لمعرفة حالة النظام. يمكن أن تكون المعلمات "ملخص" أو "بسيط" أو "مفصل"؛ والمعلمة الافتراضية هي "ملخص".

فيما يلي، نوضح كيفية تمرير معلمات مختلفة إلى أمر الحالة. وإذا نظرنا إلى لقطة الشاشة أدناه، فسنحصل على فكرة أوضح.

hbase(main):001:0>status
hbase(main):002:0>status 'simple'
hbase(main):003:0>status 'summary'
hbase(main):004:0> status 'detailed'

يتم عرض مخرجات الحالة أدناه:

يُظهر ناتج أمر حالة HBase shell الخوادم النشطة والخوادم المتوقفة ومتوسط ​​الحمل

عند تنفيذ أمر الحالة هذا، فإنه يُظهر معلومات حول عدد الخوادم العاملة، والخوادم المتوقفة، ومتوسط ​​حمل الخادم. تُظهر لقطة الشاشة هنا معلومات مثل خادم واحد عامل، وخادم واحد متوقف، ومتوسط ​​حمل 7.0000.

التجريبية

Syntax: version

يظهر ناتج الإصدار أدناه:

أمر إصدار HBase shell الذي يعرض إصدار HBase المثبت

  • سيعرض هذا الأمر إصدار HBase المستخدم حاليًا في وضع الأوامر.
  • إذا قمت بتشغيل أمر الإصدار، فسيعطيك مخرجات كما هو موضح أعلاه.

مساعدة الجدول

Syntax:table_help

يظهر ناتج الأمر table_help أدناه:

مخرجات HBase shell table_help التي تعرض استخدام أوامر إنشاء وجلب الجداول

يرشد هذا الأمر إلى:

  • ما هي الأوامر المرجعية للجداول وكيفية استخدامها.
  • سيوفر هذا البرنامج استخدامات مختلفة لأوامر HBase shell وصيغها.
  • تُظهر لقطة الشاشة أعلاه صيغة أوامر "create" و"get_table" وكيفية استخدامها. يُمكننا تعديل الجدول باستخدام هذه الأوامر بعد إنشائه في HBase.
  • سيوفر أوامر معالجة الجداول مثل put و get وجميع معلومات الأوامر الأخرى.

whoami

Syntax: Whoami

يظهر ناتج الأمر whoami أدناه:

يُعيد أمر whoami في واجهة سطر أوامر HBase المستخدم الحالي ومجموعات المستخدمين.

يُستخدم الأمر "whoami" لعرض معلومات مستخدم HBase الحالي من مجموعة HBase. وسيوفر معلومات مثل:

  • المجموعات الموجودة في HBase.
  • معلومات المستخدم؛ على سبيل المثال، في هذه الحالة يمثل "hduser" اسم المستخدم كما هو موضح في لقطة الشاشة.

TTL (وقت العيش) - السمة

في HBase، يمكن ضبط عائلات الأعمدة على قيم زمنية بالثواني باستخدام خاصية TTL. سيقوم HBase بحذف الصفوف تلقائيًا عند انقضاء وقت انتهاء الصلاحية. تنطبق هذه الخاصية على جميع إصدارات الصف، حتى الإصدار الحالي.

يتم تحديد وقت انتهاء الصلاحية (TTL) المُشفّر في HBase للصف بتوقيت UTC. تُستخدم هذه الخاصية مع أوامر إدارة الجداول. فيما يلي أهم الفروقات بين معالجة وقت انتهاء الصلاحية (TTL) ووقت انتهاء صلاحية عائلات الأعمدة:

  • يتم التعبير عن TTLs للخلية بوحدات المللي ثانية بدلاً من الثواني.
  • لا يمكن لقيمة TTL للخلية أن تمدد العمر الافتراضي الفعال للخلية إلى ما بعد إعداد TTL على مستوى عائلة الأعمدة.

أوامر إدارة الجداول

ستُمكّن هذه الأوامر المبرمجين من إنشاء جداول ومخططات جداول تتضمن صفوفًا ومجموعات أعمدة. فيما يلي أوامر إدارة الجداول:

  • إنشاء
  • قائمة
  • وصف
  • تعطيل
  • أوقف عمل الكل
  • تفعيل
  • Enable_all
  • قطرة
  • Drop_all
  • اظهر الفلاتر
  • عمر
  • Alter_status

دعونا نلقي نظرة على استخدامات الأوامر المختلفة في HBase من خلال مثال.

إنشاء

Syntax: create <tablename>, <columnfamilyname>

مثال:-

hbase(main):001:0> create 'education' ,'guru99'
0 rows(s) in 0.312 seconds
=>Hbase::Table – education

تظهر نتيجة أمر الإنشاء أدناه:

أمر إنشاء جدول التعليم باستخدام عائلة الأعمدة guru99 في واجهة سطر الأوامر HBase shell

يوضح المثال أعلاه كيفية إنشاء جدول في HBase بالاسم المحدد وفقًا لمواصفات كل مجموعة أعمدة. بالإضافة إلى ذلك، يمكننا أيضًا تمرير بعض سمات نطاق الجدول إليه. للتحقق مما إذا كان الجدول 'education' قد تم إنشاؤه أم لا، نستخدم الأمر 'list' الموضح أدناه. انظر أيضًا إنشاء جداول HBase باستخدام Java والقشرة.

قائمة

Syntax:list

يتم عرض قائمة النتائج أدناه:

أمر HBase shell list يعرض ثمانية جداول موجودة في HBase

  • سيعرض الأمر "list" جميع الجداول الموجودة أو التي تم إنشاؤها في HBase.
  • يُظهر الناتج الموضح في لقطة الشاشة أعلاه الجداول الموجودة حاليًا في HBase.
  • هنا، في لقطة الشاشة هذه، يظهر أن هناك ما مجموعه 8 جداول موجودة داخل HBase.
  • يمكننا تصفية قيم الإخراج من الجداول عن طريق تمرير معلمات التعبير النمطي الاختيارية.

وصف

Syntax:describe <table name>
hbase(main):010:0>describe 'education'

يظهر ناتج الأمر describe أدناه:

مخرجات أمر HBase shell describe التي توضح بالتفصيل عائلات أعمدة جدول التعليم

يصف هذا الأمر الجدول المسمى.

  • سيوفر ذلك مزيدًا من المعلومات حول عائلات الأعمدة الموجودة في الجدول المذكور.
  • في حالتنا، يقدم وصفًا لجدول "التعليم".
  • سيوفر معلومات حول اسم الجدول مع عائلات الأعمدة، والفلاتر المرتبطة به، والإصدارات، وبعض التفاصيل الأخرى.

تعطيل

Syntax: disable <tablename>
hbase(main):011:0>disable 'education'

يظهر أدناه ناتج التعطيل:

تعطيل أمر HBase shell لإيقاف تشغيل جدول التعليم

  • سيؤدي هذا الأمر إلى تعطيل الجدول المسمى.
  • إذا كانت هناك حاجة لحذف جدول أو إسقاطه، فيجب تعطيله أولاً.

هنا، في لقطة الشاشة أعلاه، نقوم بتعطيل جدول التعليم.

أوقف عمل الكل

 Syntax: disable_all<"matching regex"
  • سيؤدي هذا الأمر إلى تعطيل جميع الجداول المطابقة للتعبير العادي المحدد.
  • التنفيذ هو نفسه تنفيذ أمر الإسقاط (باستثناء إضافة تعبير نمطي للمطابقة).
  • بمجرد تعطيل الجدول، يصبح بإمكان المستخدم حذف الجدول من HBase.
  • قبل الحذف أو الإسقاطping يجب تعطيل الجدول أولاً.

تفعيل

Syntax: enable <tablename>
hbase(main):012:0>enable 'education'

يظهر ناتج التفعيل أدناه:

أمر تمكين واجهة HBase لإعادة تنشيط جدول التعليم المعطل

  • سيؤدي هذا الأمر إلى بدء تمكين الجدول المسمى.
  • أياً كان الجدول المعطل، لاستعادته إلى حالته السابقة، نستخدم هذا الأمر.
  • إذا تم تعطيل جدول في البداية ولم يتم حذفه أو إسقاطه، وإذا أردنا إعادة استخدام الجدول المعطل، فعلينا تمكينه باستخدام هذا الأمر.
  • هنا، في لقطة الشاشة أعلاه، نقوم بتمكين الجدول "التعليم".

اظهر الفلاتر

Syntax: show_filters

يظهر ناتج الأمر show_filters أدناه:

يعرض الأمر `show_filters` في واجهة سطر الأوامر HBase قائمة بمرشحات HBase المتاحة

يعرض هذا الأمر جميع عوامل التصفية الموجودة في HBase، مثل ColumnPrefixFilter و TimestampsFilter و PageFilter و FamilyFilter وما إلى ذلك.

قطرة

Syntax:drop <table name>
hbase(main):017:0>drop 'education'

يظهر ناتج الإسقاط أدناه:

أمر حذف جدول التعليم المعاق في واجهة سطر أوامر HBase

يجب مراعاة النقاط التالية عند استخدام أمر الإسقاط:

  • لحذف الجدول الموجود في HBase، يجب علينا أولاً تعطيله.
  • لحذف الجدول الموجود في HBase، علينا أولاً تعطيله.
  • لذا، لحذف جدول أو إسقاطه، يجب أولاً تعطيل الجدول باستخدام أمر التعطيل.
  • هنا، في لقطة الشاشة أعلاه، نقوم بإسقاطping الجدول "التعليم".
  • قبل تنفيذ هذا الأمر، من الضروري تعطيل جدول "التعليم".

drop_all

Syntax: drop_all<"regex">
  • سيؤدي هذا الأمر إلى حذف جميع الجداول المطابقة للتعبير النمطي المحدد.
  • يجب تعطيل الجداول أولاً، قبل تنفيذ هذا الأمر، باستخدام disable_all.
  • سيتم حذف الجداول التي تحتوي على تعبيرات مطابقة باستخدام regex من HBase.

is_enabled

Syntax: is_enabled 'education'

سيتحقق هذا الأمر مما إذا كان الجدول المحدد مُفعّلاً أم لا. عادةً ما يكون هناك بعض الالتباس بين وظائف الأمر "enable" والأمر "is_enabled"، وسنوضح ذلك هنا:

  • لنفترض أن جدولًا ما معطل؛ لاستخدام هذا الجدول، علينا تمكينه باستخدام أمر التمكين.
  • سيقوم الأمر is_enabled بالتحقق مما إذا كان الجدول مفعلاً أم لا.

تغير

Syntax: alter <tablename>, NAME=><column familyname>, VERSIONS=>5

يقوم هذا الأمر بتغيير مخطط عائلة العمود. لفهم ما يفعله بالضبط، أوضحنا ذلك هنا بمثال.

أمثلة: في هذه الأمثلة، سنقوم بتنفيذ عمليات أمر التعديل على الجداول وأعمدتها. سنقوم بتنفيذ عمليات مثل:

  • تغيير أسماء العائلات في الأعمدة المفردة والمتعددة.
  • حذف أسماء عائلات الأعمدة من جدول.
  • هناك العديد من العمليات الأخرى التي تستخدم سمات النطاق مع جدول.

لتغيير أو إضافة عائلة الأعمدة 'guru99_1' في جدول 'education' من القيمة الحالية، مع الحفاظ على حد أقصى لإصدارات الخلايا يبلغ 5. هنا، "education" هو اسم الجدول الذي تم إنشاؤه سابقًا باستخدام اسم العمود "guru99". باستخدام أمر التعديل، نحاول تغيير مخطط عائلة الأعمدة من guru99 إلى guru99_1، كما هو موضح أدناه:

أمر تغيير واجهة HBase لتغيير عائلة أعمدة جدول التعليم إلى guru99_1

hbase> alter 'education', NAME='guru99_1', VERSIONS=>5

يمكنك أيضًا تطبيق أمر التعديل على عدة مجموعات من الأعمدة. على سبيل المثال، سنُعرّف عمودين جديدين لجدولنا الحالي "التعليم"، كما هو موضح أدناه:

أمر تغيير واجهة HBase يضيف عائلتي أعمدة جديدتين هما guru99_2 و guru99_3

 hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}
  • يمكننا تغيير أكثر من مخطط عمود واحد في المرة الواحدة باستخدام هذا الأمر.
  • guru99_2 و guru99_3، كما هو موضح في لقطة الشاشة أعلاه، هما اسما العمودين الجديدين اللذين قمنا بتعريفهما لجدول التعليم.
  • يمكننا أن نرى طريقة استخدام هذا الأمر في لقطة الشاشة السابقة.

في هذه الخطوة، سنرى كيفية حذف مجموعة أعمدة من الجدول. لحذف مجموعة الأعمدة 'f1' في جدول 'education'، استخدم أحد الأوامر التالية. تظهر النتيجة في لقطة الشاشة التالية:

أمر HBase shell alter لحذف عائلة أعمدة من جدول التعليم

hbase> alter 'education', NAME => 'f1', METHOD => 'delete'
hbase> alter 'education', 'delete' =>' guru99_1'

في هذا الأمر، نحاول حذف مساحة العمود المسماة guru99_1 التي أنشأناها سابقًا في الخطوة الأولى. كما هو موضح في لقطات الشاشة أدناه، يُظهر الأمر خطوتين: كيفية تغيير سمة نطاق الجدول وكيفية إزالة سمة نطاق الجدول.

أمر تغيير HBase shell لتعيين سمة MAX_FILESIZE على مستوى الجدول

Syntax: alter <'tablename'>, MAX_FILESIZE=>'132545224'

الخطوة 1) يمكنك تغيير سمات نطاق الجدول مثل MAX_FILESIZE و READONLY و MEMSTORE_FLUSHSIZE و DEFERRED_LOG_FLUSH وما إلى ذلك. يمكن وضع هذه في النهاية؛ على سبيل المثال، لتغيير الحد الأقصى لحجم منطقة إلى 128 ميجابايت أو أي قيمة ذاكرة أخرى، نستخدم هذا الأمر.

الاستخدام:

  • يمكننا استخدام MAX_FILESIZE مع الجدول كسمة نطاق، كما هو موضح أعلاه.
  • الرقم المُمثل في MAX_FILESIZE هو من حيث الذاكرة بالبايت.

ملاحظة: سيتم تحديد نطاق جدول MAX_FILESIZE بواسطة بعض السمات الموجودة في HBase. يندرج MAX_FILESIZE أيضًا ضمن سمات نطاق الجدول.

الخطوة الثانية) يمكنك أيضًا إزالة سمة على مستوى الجدول باستخدام طريقة table_att_unset. انظر الأمر أدناه:

alter 'education', METHOD => 'table_att_unset', NAME => 'MAX_FILESIZE'
  • تُظهر لقطة الشاشة أعلاه اسم الجدول المُعدَّل مع سمات النطاق.
  • تُستخدم الطريقة table_att_unset لإلغاء تعيين السمات الموجودة في الجدول.
  • في الحالة الثانية، نقوم بإلغاء تعيين السمة MAX_FILESIZE.
  • بعد تنفيذ الأمر، سيتم ببساطة إلغاء تعيين سمة MAX_FILESIZE من جدول "التعليم".

alter_status

 Syntax: alter_status 'education'

يظهر ناتج الأمر alter_status أدناه:

يُظهر أمر alter_status في واجهة HBase shell تحديث إحدى المناطق.

  • من خلال هذا الأمر، يمكنك الحصول على حالة أمر التغيير.
  • يشير هذا إلى عدد مناطق الجدول التي تم تحديث مخططها. يجب عليك تمرير اسم الجدول.
  • في لقطة الشاشة أعلاه، يظهر تحديث منطقة واحدة من أصل منطقة واحدة. هذا يعني أنه تم تحديث منطقة واحدة. بعد ذلك، إذا تمت العملية بنجاح، ستظهر رسالة "تم".

أوامر معالجة البيانات

تعمل هذه الأوامر على الجدول لمعالجة البيانات، مثل وضع البيانات في جدول، واسترجاع البيانات من جدول، وحذف المخطط، وما إلى ذلك. الأوامر التي تندرج تحت هذه الأوامر هي:

  • العد التنازلي
  • وضع
  • احصل علي
  • حذف
  • حذف الكل
  • بتر
  • تفحص

دعونا نلقي نظرة على استخدامات هذه الأوامر من خلال مثال. انظر أيضًا قراءة وكتابة بيانات HBase.

العد التنازلي

Syntax: count <'tablename'>, CACHE =>1000
  • سيسترجع هذا الأمر عدد الصفوف في الجدول. القيمة التي يُرجعها هذا الأمر هي عدد الصفوف.
  • يتم عرض العدد الحالي لكل 1000 صف بشكل افتراضي.
  • يمكن تحديد فاصل العد بشكل اختياري.
  • حجم ذاكرة التخزين المؤقت الافتراضي هو 10 صفوف.
  • سيعمل أمر العد بسرعة عند تهيئته باستخدام ذاكرة التخزين المؤقت الصحيحة.

على سبيل المثال:

hbase> count 'guru99', CACHE=>1000

يظهر ناتج العد أدناه:

أمر HBase shell count يُعيد عدد صفوف جدول guru99

في هذا المثال، يتم جلب 1000 صف في كل مرة من جدول "guru99". يمكننا تقليل حجم ذاكرة التخزين المؤقت إذا كان الجدول يحتوي على عدد أكبر من الصفوف. ولكن افتراضيًا، يتم جلب صف واحد في كل مرة.

hbase>count 'guru99', INTERVAL => 100000
hbase> count 'guru99', INTERVAL =>10, CACHE=> 1000

لنفترض أن الجدول "guru99" يحتوي على مرجع جدول، مثل g. يمكننا تشغيل أمر العد على مرجع الجدول أيضًا، كما يلي:

hbase>g.count INTERVAL=>100000
hbase>g.count INTERVAL=>10, CACHE=>1000

وضع

Syntax:  put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>

يُستخدم هذا الأمر للأمور التالية:

  • سيتم وضع "قيمة" خلية في جدول أو صف أو عمود محدد أو محدد.
  • سيقوم البرنامج، بشكل اختياري، بتنسيق الطابع الزمني.

مثال: هنا، نقوم بوضع القيم في الجدول "guru99" تحت الصف r1 والعمود c1.

hbase> put 'guru99', 'r1', 'c1', 'value', 10

لقد وضعنا ثلاث قيم، 10 و 15 و 30، في الجدول "guru99"، كما هو موضح في لقطة الشاشة أدناه.

أمر HBase shell put لإدخال القيم 10 و15 و30 في جدول guru99

لنفترض أن الجدول "guru99" يحتوي على مرجع جدول، مثل g. يمكننا أيضًا تشغيل الأمر على مرجع الجدول، كما يلي:

hbase> g.put 'guru99', 'r1', 'c1', 'value', 10

ستكون النتيجة كما هو موضح في لقطة الشاشة أعلاه بعد إدخال القيم في "guru99". وللتحقق من إدخال القيمة بشكل صحيح في الجدول، نستخدم الأمر "scan". في لقطة الشاشة أدناه، نرى أن القيم قد أُدخلت بشكل صحيح.

مخرجات فحص HBase shell تؤكد القيم المُدخلة في جدول guru99

Code مقتطف: للتدريب

create 'guru99', {NAME=>'Edu', VERSIONS=>213423443}
put 'guru99', 'r1', 'Edu:c1', 'value', 10
put 'guru99', 'r1', 'Edu:c1', 'value', 15
put 'guru99', 'r1', 'Edu:c1', 'value', 30

من خلال مقتطف الشفرة، نقوم بهذه الأشياء:

  • هنا، نقوم بإنشاء جدول باسم 'guru99' مع اسم العمود "Edu".
  • باستخدام الأمر "put"، نقوم بوضع القيم في اسم الصف r1 في العمود "Edu" في الجدول "guru99".

احصل علي

Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}

هنا، يتضمن هذا الأمر متغيرات مثل النطاق الزمني، والطابع الزمني، والإصدارات، وعوامل التصفية. باستخدام هذا الأمر، ستحصل على محتوى صف أو خلية معينة في الجدول. بالإضافة إلى ذلك، يمكنك إضافة معلمات أخرى، مثل الطابع الزمني، والنطاق الزمني، والإصدارات، وعوامل التصفية، وغيرها، للحصول على محتوى صف أو خلية محددة.

يُعيد الأمر get الناتج أدناه قيم الصف r1 والعمود c1:

أمر HBase shell get يُعيد الصف r1 والعمود c1 من جدول guru99

أمثلة:-

hbase> get 'guru99', 'r1', {COLUMN => 'c1'}

بالنسبة للجدول "guru99"، سيتم عرض قيم الصف r1 والعمود c1 باستخدام هذا الأمر، كما هو موضح في لقطة الشاشة أعلاه.

hbase> get 'guru99', 'r1'

بالنسبة للجدول "guru99"، سيتم عرض قيم الصف r1 باستخدام هذا الأمر.

hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}

بالنسبة للجدول "guru99"، سيتم عرض قيم الصف r1 في النطاق الزمني من ts1 إلى ts2 باستخدام هذا الأمر.

hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}

بالنسبة للجدول "guru99"، سيتم عرض قيم الصف r1 وعائلات الأعمدة c1 و c2 و c3 باستخدام هذا الأمر.

حذف

Syntax:delete <'tablename'>,<'row name'>,<'column name'>
  • سيؤدي هذا الأمر إلى حذف قيمة الخلية في صف أو عمود محدد في الجدول.
  • يجب أن تتطابق عملية الحذف تمامًا مع إحداثيات الخلية المحذوفة.
  • عند المسح، تعمل عملية حذف الخلية على كبت الإصدارات القديمة من القيم.

مثال: يقوم أمر الحذف أدناه بإزالة الخلية r1، c1 من جدول guru99:

أمر حذف HBase shell لإزالة الخلية r1 c1 من جدول guru99

hbase(main):)020:0> delete 'guru99', 'r1', 'c1''.
  • سيؤدي التنفيذ أعلاه إلى حذف الصف r1 من عائلة الأعمدة c1 في الجدول "guru99".
  • لنفترض أن الجدول "guru99" يحتوي على مرجع جدول ما، مثل g.
  • يمكننا تشغيل الأمر على مرجع الجدول أيضًا، مثل hbase> g.delete 'guru99', 'r1', 'c1'".

حذف الكل

Syntax: deleteall <'tablename'>, <'rowname'>
  • سيؤدي هذا الأمر إلى حذف جميع الخلايا في صف معين.
  • يمكننا تحديد أسماء الأعمدة والطابع الزمني في الصيغة بشكل اختياري.

مثال: - الأمر deleteall أدناه يزيل كل خلية في الصف r1:

أمر HBase shell deleteall يزيل جميع الخلايا في الصف r1 من جدول guru99

hbase>deleteall 'guru99', 'r1', 'c1'

سيؤدي هذا إلى حذف جميع الصفوف والأعمدة الموجودة في الجدول. ويمكننا، اختيارياً، ذكر أسماء الأعمدة في ذلك.

بتر

Syntax:  truncate <tablename>

يقوم أمر الحذف أدناه بإفراغ الجدول مع الاحتفاظ بـping مخططها:

تعطيل أمر truncate في واجهة سطر أوامر HBase، حذفpingوإعادة إنشاء جدول guru99

بعد تنفيذ أمر حذف جميع البيانات من جدول HBase، سيظل المخطط موجودًا ولكن لن تكون السجلات موجودة. يؤدي هذا الأمر ثلاث وظائف، وهي موضحة أدناه:

  • يعطل الجدول إذا كان موجودًا بالفعل.
  • يقوم بحذف الجدول إذا كان موجودًا بالفعل.
  • يعيد إنشاء الجدول المذكور.

تفحص

Syntax: scan <'tablename'>, {Optional parameters}

يقوم هذا الأمر بمسح الجدول بأكمله وعرض محتوياته.

  • يمكننا تمرير العديد من المواصفات الاختيارية لأمر المسح هذا للحصول على مزيد من المعلومات حول الجداول الموجودة في النظام.
  • قد تتضمن مواصفات الماسح الضوئي واحدة أو أكثر من السمات التالية.
  • هذه هي TIMERANGE و FILTER و TIMESTAMP و LIMIT و MAXLENGTH و COLUMNS و CASH و STARTROW و STOPROW.
scan 'guru99'

يظهر ناتج المسح أدناه:

أمر فحص HBase shell يعرض الصفوف r1 و r2 و r3 من جدول guru99

في لقطة الشاشة أعلاه:

  • يعرض الجدول "guru99" مع اسم العمود وقيمه.
  • يتكون من ثلاث قيم للصفوف، r1 و r2 و r3، لقيمة العمود الواحد c1.
  • يعرض القيم المرتبطة بالصفوف.

أمثلة: - الاستخدامات المختلفة لأمر المسح الضوئي:

أمر الأستعمال
مسح '.META.'، {COLUMNS => 'info:regioninfo'} يعرض جميع معلومات البيانات الوصفية المتعلقة بالأعمدة الموجودة في الجداول في HBase.
مسح 'guru99', {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'} يعرض محتويات الجدول guru99 مع عائلات الأعمدة c1 و c2، ويحد من القيم إلى 10.
مسح 'guru99'، {COLUMNS => 'c1'، TIMERANGE => [1303668804، 1303668904]} يعرض محتويات الجدول guru99 مع اسم العمود c1 والقيم الموجودة بين قيمة سمة النطاق الزمني المذكورة.
مسح 'guru99'، {RAW => صحيح، VERSIONS =>10} في هذا الأمر، يوفر RAW=> true ميزة متقدمة، مثل عرض جميع قيم الخلايا الموجودة في الجدول guru99.

Code مثال: أولاً، أنشئ جدولاً وضع القيم فيه. يظهر الإدخال في لقطة الشاشة أدناه:

إدخال سطر أوامر HBase لإنشاء جدول guru99 وإدراج القيم المُؤرشفة قبل إجراء مسح أولي

create 'guru99', {NAME=>'e', VERSIONS=>2147483647}
put 'guru99', 'r1', 'e:c1', 'value', 10
put 'guru99', 'r1', 'e:c1', 'value', 12
put 'guru99', 'r1', 'e:c1', 'value', 14
delete 'guru99', 'r1', 'e:c1', 11

إذا قمنا بتشغيل أمر المسح الضوئي:

Query: scan 'guru99', {RAW=>true, VERSIONS=>1000}

سيعرض البرنامج الناتج الموضح أدناه:

يُظهر ناتج المسح الخام لـ HBase shell إصدارات متعددة للخلايا، بما في ذلك قيمة محذوفة.

تُظهر لقطة الشاشة أعلاه المعلومات التالية:

  • مسح جدول guru99 بالسمات RAW=>true، VERSIONS=>1000.
  • عرض الصفوف مع عائلات الأعمدة والقيم.
  • في الصف الثالث، تُظهر القيم المعروضة القيمة المحذوفة الموجودة في العمود.
  • إن المخرجات التي يعرضها البرنامج عشوائية؛ ولا يمكن أن تكون بنفس ترتيب القيم التي أدخلناها في الجدول.

Cluster أوامر النسخ

  • تعمل هذه الأوامر على وضع إعداد المجموعة في HBase.
  • تُستخدم هذه الأوامر بشكل عام لإضافة وإزالة النظراء من المجموعة، ولبدء وإيقاف النسخ المتماثل.
أمر الية عمل سفينة نوح
add_peer يضيف النظراء إلى مجموعة لتكرارها.
hbase> add_peer '3', zk1,zk2,zk3:2182:/hbase-prod
Remove_peer يوقف تدفق النسخ المحدد ويحذف جميع معلومات البيانات الوصفية المتعلقة بالنظير.
hbase> Remove_peer '1'
start_replication يعيد تشغيل جميع ميزات النسخ المتماثل.
hbase> start_replication
stop_replication يوقف جميع ميزات النسخ المتماثل.
hbase>stop_replication

الأسئلة الشائعة

اكتب exit أو quit واضغط على مفتاح الإدخال للخروج من واجهة HBase التفاعلية والعودة إلى موجه نظام التشغيل. يمكنك فتح الواجهة باستخدام الأمر hbase shell. لا يؤدي كل من exit و quit إلى إيقاف خدمة HBase، بل ينهيان جلسة الواجهة فقط.

نعم. يمكنك إدخال أوامر الأنابيب بشكل غير تفاعلي، على سبيل المثال echo "list" | hbase shell، أو تشغيل ملف محفوظ باستخدام hbase shell script.txt. ولأن واجهة سطر الأوامر مبنية على JRuby، يمكنك أيضًا تضمين منطق Ruby وحلقات التكرار داخل ملفات .rb النصية.

تُعدّ واجهة سطر الأوامر (Shell) موجه أوامر تفاعلي بلغة JRuby، يُستخدم لإصدار أوامر يدوية سريعة وإدارة النظام. Java تُستخدم واجهة برمجة التطبيقات (API)، التي تستخدم الاتصال والإدارة والجدول، للتطبيقات التي تُنشئ الجداول وتقرأ أو تكتب البيانات برمجيًا. يصل كلا النوعين إلى نفس مجموعة بيانات HBase.

يظهر خطأ "الجدول موجود مسبقًا" عند إنشاء جدول باسم مُكرر، ويظهر خطأ "الجدول غير مُعطّل" عند حذف جدول أو تعديله دون تعطيله أولًا. لذا، يُنصح بتشغيل الأمر disable 'table' قبل الحذف أو التعديل، واستخدام الأمر exists 'table' للتحقق من وجود اسم قبل إنشاء الجدول.

تحتفظ عائلة أعمدة HBase بعدد محدود من الإصدارات المُؤرَّخة لكل خلية، تاريخيًا ثلاثة إصدارات، وإصدار واحد في الإصدارات الأحدث. حدد العدد باستخدام VERSIONS عند إنشاء أو تعديل البيانات، واطلب الإصدارات الأقدم باستخدام {VERSIONS => n} في أمر get أو scan.

متغير مرجع الجدول هو كائن shell يتم إرجاعه بواسطة g = get_table 'guru99'. يمكنك بعد ذلك استدعاء الدوال عليه، مثل g.put أو g.get أو g.count، بدلاً من تكرار اسم الجدول. إنه اختصار مفيد على غرار JRuby في واجهة HBase.

تُنشئ مساعدات البرمجة المدعومة بالذكاء الاصطناعي ونماذج اللغة الكبيرة أوامر HBase shell من طلبات اللغة العادية، وتشرح الخيارات غير المألوفة مثل مرشحات المسح أو TTL، وتساعد في تصحيح الأخطاء. كما يحلل التعلم الآلي مقاييس المجموعة لتوجيه عملية النسخ وضبط المناطق، مع ضرورة أن يتحقق مهندس من كل أمر.

نعم. مساعد الطيار جيثب يقترح أوامر HBase shell ونصوص JRuby من تعليق قصير، بما في ذلك أمثلة على الإنشاء والوضع والمسح والتعديل. Revراجع مخرجاته للتأكد من اسم الجدول الصحيح، وعائلات الأعمدة، والصيغة مثل VERSIONS قبل تشغيله على مجموعة حقيقية.

تلخيص هذه التدوينة بـ: