استخدام Apache Sqoop مع Apache Hadoop في HDInsight

تعرف على كيفية استخدام Apache Sqoop في HDInsight لاستيراد البيانات وتصديرها بين نظام مجموعة HDInsight وقاعدة بيانات Azure SQL.

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

Apache Sqoop هي أداة مصممة لنقل البيانات بين نظام مجموعة Hadoop وقواعد البيانات الارتباطية. يمكنك استخدامه لاستيراد البيانات من نظام إدارة قواعد البيانات الارتباطية (RDBMS) مثل SQL Server أو الخلية أو Oracle إلى نظام الملفات الموزعةHadoop (HDFS)، وتحويل البيانات في Hadoop مع MapReduce أو Apache Hive، ثم تصدير البيانات مرة أخرى إلى RDBMS. في هذه المقالة، تستخدم قاعدة بيانات Azure SQL لقاعدة البيانات ارتباطية.

هام

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

للحصول على إصدارات Sqoop المدعومة من نظام مجموعة HDInsight، راجع ما الجديد في إصدارات نظام مجموعة HDInsight؟

فَهم السيناريو

يوفر نظام مجموعة HDInsight بعض البيانات كعينة. حيث يمكنك استخدام العينتين التاليتين:

  • ملف سجل Apache Log4j ، الموجود في /example/data/sample.log. وتستخرج السجلات التالية من الملف:
2012-02-03 18:35:34 SampleClass6 [INFO] everything normal for id 577725851
2012-02-03 18:35:34 SampleClass4 [FATAL] system problem at id 1991281254
2012-02-03 18:35:34 SampleClass3 [DEBUG] detail for id 1304807656
...
  • جدول Hive يسمى hivesampletable، يحتوي على إشارة مرجعية لملف البيانات الموجود في /hive/warehouse/hivesampletable. يحتوي الجدول على بعض بيانات الجهاز المحمول.

    الحقل نوع البيانات
    clientid سلسلة
    وقت الاستعلام سلسلة
    السوق سلسلة
    الجهاز/النظام الأساسي سلسلة
    جهاز/منشأ سلسلة
    طراز الجهاز سلسلة
    الولاية سلسلة
    الدولة سلسلة
    وقت طلب الاستعلام مزدوج
    معرف جلسة العمل Bigint
    عرض صفحة الجلسة Bigint

في هذه المقالة، يمكنك استخدام قاعدتي البيانات التاليتين لعمل اختبار استيراد Sqoop وتصديرها.

إعداد بيئة الاختبار

يتم إنشاء نظام مجموعة قاعدة بيانات SQL والعناصر الأخرى من خلال مدخل Microsoft Azure باستخدام قالب إدارة موارد Azure. يمكن العثور على هذا القالب في قوالب التشغيل السريع Azure. يستدعي قالب Resource Manager حزمة bacpac لنشر مخططات الجدول إلى قاعدة بيانات SQL. إذا كنت ترغب في استخدام حاوية خاصة لملفات bacpac، استخدم القيم التالية في القالب:

"storageKeyType": "Primary",
"storageKey": "<TheAzureStorageAccountKey>",

ملاحظة

الاستيراد باستخدام قالب أو مدخل Azure لا يدعم إلا استيراد ملف BACPAC من تخزين كائن ثنائي كبير الحجم Azure.

  1. حدد الصورة التالية لفتح القالب فيAzure Resource Manager في مدخل Microsoft Azure.

    نشر إلى زر Azure للحصول على نظام مجموعة جديد

  2. أدخل المعلمات التالية:

    الحقل القيمة
    الاشتراك حدد اشتراك Azure من القائمة المنسدلة.
    مجموعة الموارد حدد مجموعة الموارد الخاصة بك ضمن القائمة المنسدلة، أو أنشئ مجموعة موارد جديدة
    ‏‏الموقع حدد المنطقة من القائمة المنسدلة.
    اسم المجموعة أدخل اسمًا لمجموعة Hadoop. استخدم أحرف صغيرة فقط.
    Cluster Login User Name احتفظ بالقيمة المعبأة مسبقا admin.
    Cluster Login Password إدخال «password».
    اسم مستخدم Ssh احتفظ بالقيمة المعبأة مسبقا sshuser.
    كلمة مرور Ssh إدخال «password».
    تسجيل دخول مسؤول Sql احتفظ بالقيمة المعبأة مسبقا sqluser.
    كلمة مرور مسؤول Sql إدخال «password».
    موقع البيانات الاصطناعية استخدم القيمة الافتراضية إلا إذا كنت تريد استخدام ملف bacpac الخاص بك في موقع مختلف.
    رمز Sas لموقع البيانات الاصطناعية اترك فراغاً.
    اسم ملف Bacpac استخدم القيمة الافتراضية إلا إذا كنت تريد استخدام ملف bacpac الخاص بك في موقع مختلف.
    ‏‏الموقع استخدم القيمة الافتراضية.

    اسم خادم SQL المنطقي هو <ClusterName>dbserver. اسم قاعدة البيانات هو <ClusterName>db. اسم حساب التخزين الافتراضي هو e6qhezrh2pdqu.

  3. حدد أوافق على الشروط والأحكام المذكورة أعلاه.

  4. اختر⁧⁩Purchase⁧⁩. تشاهد صورة مصغرة من الخريطة بعنوان إرسال نشر لنشر قالب. يستغرق الأمر 20 دقيقة لإنشاء نظام مجموعة قاعدة بيانات SQL.

تشغيل مهام Sqoop

يمكن ل HDInsight تشغيل مهام Sqoop باستخدام أساليب مختلفة. استخدم الجدول التالي لتحدد الطريقة المناسبة لك ثم اتبع الارتباط التشعبي للإرشادات التفصيلية.

استخدم هذا إذا أردت... ... shell التفاعلية معالجة ...دفعة ...من هذا نظام تشغيل العميل
SSH ? ? Linux أو Unix أو Mac OS X أو Windows
.NET SDK for Hadoop   ? Windows (في الوقت الحالي)
Azure PowerShell   ? Windows

التقييدات

  • تصدير كمية كبيرة- مع HDInsight المستندة إلى لينكس، موصل Sqoop المستخدم لتصدير البيانات إلى Microsoft SQL Server أو قاعدة بيانات SQL لا تدعم حاليا إدراج كميات كبيرة.
  • إرسال في دفعات- مع HDInsight المستندة إلى Linux، عند استخدام مفتاح التبديل -batch عند تنفيذ الإدراجات، يقوم Sqoop بإدراجات متعددة بدلا من الإرسال في دفعات.

الخطوات التالية

لقد تعلمت الآن كيفية استخدام Sqoop. لمعرفة المزيد، راجع: