انسخ البيانات من خادم HDFS باستخدام Azure Data Factory أو Synapse Analytics

ينطبق على:Azure Data Factory Azure Synapse Analytics

تلميح

جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!

توضح هذه المقالة كيفية نسخ البيانات من خادم نظام الملفات الموزعة Hadoop (HDFS). للتعرف على المزيد، اقرأ المقالات التمهيدية حول Azure Data Factory وSynapse Analytics.

القدرات المدعومة

موصل HDFS هذا مدعوم للإمكانيات التالية:

القدرات المدعومة IR
نشاط النسخ (مصدر/-) ① ②
نشاط البحث ① ②
حذف النشاط ① ②

① وقت تشغيل تكامل Azure ② وقت تشغيل التكامل المستضاف ذاتيًا

على وجه التحديد، يدعم موصل HDFS:

المتطلبات الأساسية

إذا كان مخزن البيانات الخاص بك موجوداً داخل شبكة محلية، أو شبكة Azure ظاهرية، أو Amazon Virtual Private Cloud، فأنت بحاجة إلى تكوين وقت تشغيل تكامل مستضاف ذاتياً للاتصال به.

إذا كان مخزن البيانات الخاص بك عبارة عن خدمة بيانات سحابية مُدارة، يمكنك استخدام Azure Integration Runtime. إذا كان الوصول مقتصراً على عناوين IP التي تمت الموافقة عليها في قواعد جدار الحماية، يمكنك إضافة عناوين IP لـ Azure Integration Runtime إلى قائمة السماح.

يمكنك أيضاً استخدام ميزة وقت تشغيل تكامل الشبكة الظاهرية المُدارة في Azure Data Factory للوصول إلى الشبكة المحلية دون تثبيت وقت تشغيل تكامل مستضاف ذاتياً وتكوينه.

لمزيد من المعلومات حول آليات وخيارات أمان الشبكة التي يدعمها Data Factory، راجع إستراتيجيات الوصول إلى البيانات.

إشعار

تأكد من أن وقت تشغيل التكامل يمكنه الوصول إلى كل [خادم عقدة الاسم]: [منفذ عقدة الاسم] و[خوادم عقدة البيانات]: [منفذ عقدة البيانات] من مجموعة Hadoop. [اسم منفذ عقدة] الافتراضي هو 50070، والمنفذ الافتراضي [عقدة البيانات] هو 50075.

الشروع في العمل

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

قم بإنشاء خدمة مرتبطة بـ HDFS باستخدام واجهة المستخدم

استخدم الخطوات التالية لإنشاء خدمة مرتبطة بـ HDFS في واجهة مستخدم بوابة Azure.

  1. استعرض للوصول إلى علامة التبويب "Manage" في مصنع بيانات Azure أو مساحة عمل Synapse، وحدد "Linked Services"، ثم انقر فوق "New":

  2. ابحث عن HDFS وحدد موصل "HDFS".

    Select the HDFS connector.

  3. قم بتكوين تفاصيل الخدمة، واختبر الاتصال، وأنشئ الخدمة المرتبطة الجديدة.

    Configure a linked service to HDFS.

تفاصيل تكوين الموصل

توفر الأقسام التالية تفاصيل حول الخصائص المستخدمة لتحديد كيانات Data Factory الخاصة بـ HDFS.

خصائص الخدمة المرتبطة

الخصائص التالية مدعومة لخدمة HDFS المرتبطة:

الخاصية الوصف مطلوب
النوع يجب تعيين الخاصية type على Hdfs . ‏‏نعم‬
عنوان URL عنوان URL لـ HDFS ‏‏نعم‬
نوع المصادقة القيم المسموح بها هي مجهول أو Windows .

لإعداد البيئة المحلية، راجع قسم استخدام مصادقة Kerberos لموصل HDFS .
‏‏نعم‬
userName اسم المستخدم لمصادقة Windows. بالنسبة لمصادقة Kerberos، حدد <username>@<domain>.com. نعم (لمصادقة Windows)
كلمة المرور كلمة المرور لمصادقة Windows. وضع علامة على هذا الحقل كـ SecureString لتخزينه بشكل آمن، أو الرجوع إلى البيانات السرية المخزنة في Azure Key Vault. نعم (لمصادقة Windows)
connectVia يُستخدم وقت تشغيل التكامل للاتصال بمخزن البيانات. لمعرفة المزيد، راجع قسم المتطلبات الأساسية . إذا لم يتم تحديد وقت تشغيل التكامل، فإن الخدمة تستخدم Azure Integration Runtime. لا

مثال: استخدام المصادقة المجهولة

{
    "name": "HDFSLinkedService",
    "properties": {
        "type": "Hdfs",
        "typeProperties": {
            "url" : "http://<machine>:50070/webhdfs/v1/",
            "authenticationType": "Anonymous",
            "userName": "hadoop"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

مثال: استخدام مصادقة Windows

{
    "name": "HDFSLinkedService",
    "properties": {
        "type": "Hdfs",
        "typeProperties": {
            "url" : "http://<machine>:50070/webhdfs/v1/",
            "authenticationType": "Windows",
            "userName": "<username>@<domain>.com (for Kerberos auth)",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

خصائص مجموعة البيانات

للحصول على قائمة كاملة بالأقسام والخصائص المتوفرة لتعريف مجموعات البيانات، راجع مجموعات البيانات.

يدعم Azure Data Factory تنسيقات الملفات التالية. راجع كل مقالة للاطلاع على الإعدادات المستندة إلى التنسيق.

الخصائص التالية مدعومة لـ HDFS ضمن إعدادات location في مجموعة البيانات القائمة على التنسيق:

الخاصية الوصف مطلوب
النوع يجب تعيين الخاصية type ضمن location في مجموعة البيانات على HdfsLocation . ‏‏نعم‬
folderPath المسار إلى المجلد. إذا كنت تريد استخدام حرف بدل لتصفية المجلد، فتخط هذا الإعداد وحدد المسار في إعدادات مصدر النشاط. لا
fileName اسم الملف ضمن folderPath المحدد. إذا كنت تريد استخدام حرف بدل لتصفية الملفات، فتخط هذا الإعداد وحدد اسم الملف في إعدادات مصدر النشاط. لا

مثال:

{
    "name": "DelimitedTextDataset",
    "properties": {
        "type": "DelimitedText",
        "linkedServiceName": {
            "referenceName": "<HDFS linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, auto retrieved during authoring > ],
        "typeProperties": {
            "location": {
                "type": "HdfsLocation",
                "folderPath": "root/folder/subfolder"
            },
            "columnDelimiter": ",",
            "quoteChar": "\"",
            "firstRowAsHeader": true,
            "compressionCodec": "gzip"
        }
    }
}

انسخ خصائص النشاط

للحصول على قائمة كاملة بالأقسام والخصائص المتوفرة لتعريف الأنشطة، راجع خطوط الأنابيب والأنشطة . يوفر هذا القسم قائمة بالخصائص التي يدعمها مصدر HDFS.

HDFS كمصدر

يدعم Azure Data Factory تنسيقات الملفات التالية. راجع كل مقالة للاطلاع على الإعدادات المستندة إلى التنسيق.

الخصائص التالية مدعومة لـ HDFS ضمن إعدادات storeSettings في مصدر النسخ المستند إلى التنسيق:

الخاصية الوصف مطلوب
النوع يجب تعيين الخاصية type ضمن storeSettings إلى HdfsReadSettings . ‏‏نعم‬
حدد موقع الملفات المراد نسخها
الخيار 1: مسار ثابت
انسخ من المجلد أو مسار الملف المحدد في مجموعة البيانات. إذا كنت تريد نسخ كافة الملفات من مجلد، بالإضافة إلى ذلك حدد wildcardFileName على أنه *.
الخيار 2: حرف بدل
- wildcardFolderPath
مسار المجلد مع أحرف البدل لتصفية مجلدات المصدر.
أحرف البدل المسموح بها هي: * (تطابق صفراً أو أكثر من الأحرف) و? (تطابق صفر أو حرف واحد). استخدم ^ للإفلات إذا كان اسم المجلد الفعلي يحتوي على حرف بدل أو حرف إلغاء بداخله.
لمزيد من الأمثلة، راجع أمثلة تصفية الملفات والمجلدات.
لا
الخيار 2: حرف بدل
- wildcardFileName
اسم الملف مع أحرف البدل ضمن folderPath/wildcardFolderPath المحدد لتصفية الملفات المصدر.
أحرف البدل المسموح بها هي: * (تطابق صفراً أو أكثر من الأحرف) و? (تطابق صفر أو حرف واحد) ؛ استخدم ^ للهروب إذا كان اسم الملف الفعلي يحتوي على حرف بدل أو حرف إلغاء بداخله. لمزيد من الأمثلة، راجع أمثلة تصفية الملفات والمجلدات.
‏‏نعم‬
الخيار 3: قائمة الملفات
- fileListPath
يشير إلى نسخ مجموعة ملفات محددة. أشر إلى ملف نصي يتضمن قائمة بالملفات التي تريد نسخها (ملف واحد لكل سطر، مع المسار النسبي للمسار الذي تم تكوينه في مجموعة البيانات).
عند استخدام هذا الخيار، لا تحدد اسم الملف في مجموعة البيانات. راجع المزيد من الأمثلة في أمثلة على قائمة الملفات.
لا
إعدادات إضافية
التكرار يشير إلى ما إذا كانت البيانات ستتم قراءتها بشكل متكرر من المجلدات الفرعية أو من المجلد المحدد فقط. عندما يتم تعيين recursive على true ويكون الحوض مخزناً مستنداً إلى ملف، لا يتم نسخ مجلد فارغ أو مجلد فرعي أو إنشاؤه في المخزن.
القيم المسموح بها هي true (افتراضية) وfalse.
لا تنطبق هذه الخاصية عند تكوين fileListPath.
لا
deleteFilesAfterCompletion يشير إلى ما إذا كان سيتم حذف الملفات الثنائية من مخزن المصدر بعد الانتقال بنجاح إلى مخزن الوجهة. يتم حذف الملف لكل ملف، لذلك عند فشل نشاط النسخ، سترى أن بعض الملفات قد تم نسخها بالفعل إلى الوجهة وحذفها من المصدر، بينما لا يزال البعض الآخر في المخزن المصدر.
هذه الخاصية صالحة فقط في سيناريو نسخ الملفات الثنائية. القيمة الافتراضية: false.
لا
تاريخ البدء المعدل يتم تصفية الملفات بناءً على السمة تاريخ آخر تعديل .
يتم تحديد الملفات إذا كان وقت آخر تعديل لها أكبر من أو يساوي modifiedDatetimeStart وأقل من modifiedDatetimeEnd. يتم تطبيق الوقت على المنطقة الزمنية UTC بتنسيق 2018-12-01T05:00:00Z.
يمكن أن تكون الخصائص فارغة، ما يعني أنه لا يتم تطبيق أي عامل تصفية سمة ملف على مجموعة البيانات. عندما يكون لـ modifiedDatetimeStart قيمة تاريخ / وقت ولكن modifiedDatetimeEnd هي NULL، فهذا يعني أنه يتم تحديد الملفات التي تم تحديد آخر سمة تم تعديلها لها أكبر من أو تساوي قيمة التاريخ والوقت. عندما يكون لـ modifiedDatetimeEnd قيمة تاريخ / وقت ولكن modifiedDatetimeStart هي NULL، فهذا يعني أنه يتم تحديد الملفات التي تكون آخر سمة تم تعديلها لها أقل من قيمة التاريخ والوقت.
لا تنطبق هذه الخاصية عند تكوين fileListPath.
لا
modifiedDatetimeEnd مثل أعلاه.
enablePartitionDiscovery بالنسبة للملفات المقسمة، حدد ما إذا كنت تريد تحليل الأقسام من مسار الملف وإضافتها كأعمدة مصدر إضافية.
القيم المسموح بها هي false (افتراضية) وtrue.
لا
partitionRootPath عند تمكين اكتشاف القسم، حدد مسار الجذر المطلق لقراءة المجلدات المقسمة كأعمدة بيانات.

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

على سبيل المثال، بافتراض أنك قمت بتكوين المسار في مجموعة البيانات كـ "root/folder/year=2020/month=08/day=27":
- إذا حددت المسار الجذري للقسم كـ "root/folder/year=2020"، فإن نشاط النسخ سينتج عمودين آخرين month وday وقيمة "08" و"27" على التوالي، بالإضافة إلى الأعمدة داخل الملفات.
- إذا لم يتم تحديد مسار جذر القسم، فلن يتم إنشاء أي عمود إضافي.
لا
maxConcurrentConnections الحد الأعلى للاتصالات المتزامنة التي تم إنشاؤها إلى مخزن البيانات أثناء تشغيل النشاط. حدد قيمة فقط عندما تريد تحديد الاتصالات المتزامنة. لا
إعدادات DistCp
إعدادات distcp مجموعة الخصائص المراد استخدامها عند استخدام HDFS DistCp. لا
نقطة نهاية مدير الموارد نقطة نهاية YARN (مفاوض موارد آخر) نعم، إذا كنت تستخدم DistCp
تيمبسكريبت مسار مجلد يُستخدم لتخزين البرنامج النصي لأوامر DistCp المؤقتة. يتم إنشاء ملف البرنامج النصي وستتم إزالته بعد انتهاء مهمة النسخ. نعم، إذا كنت تستخدم DistCp
distcp الخيارات تم توفير خيارات إضافية لأمر DistCp. لا

مثال:

"activities":[
    {
        "name": "CopyFromHDFS",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Delimited text input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "DelimitedTextSource",
                "formatSettings":{
                    "type": "DelimitedTextReadSettings",
                    "skipLineCount": 10
                },
                "storeSettings":{
                    "type": "HdfsReadSettings",
                    "recursive": true,
                    "distcpSettings": {
                        "resourceManagerEndpoint": "resourcemanagerendpoint:8088",
                        "tempScriptPath": "/usr/hadoop/tempscript",
                        "distcpOptions": "-m 100"
                    }
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

أمثلة على تصفية الملفات والمجلدات

يصف هذا القسم السلوك الناتج إذا كنت تستخدم عامل تصفية أحرف البدل مع مسار المجلد واسم الملف.

folderPath fileName التكرار بنية المجلد المصدر ونتيجة التصفية (يتم استرداد الملفات بخط عريض)
Folder* (فارغ، استخدم الإعداد الافتراضي) true مجلد أ
    File1.csv
    File2.json
    Subfolder1
        File3.csv
        File4.json
        File5.csv
AnotherFolderB
    File6.csv
Folder* (فارغ، استخدم الإعداد الافتراضي) صحيح مجلد أ
    File1.csv
    File2.json
    Subfolder1
        File3.csv
        File4.json
        File5.csv
AnotherFolderB
    File6.csv
Folder* *.csv true مجلد أ
    File1.csv
    File2.json
    Subfolder1
        File3.csv
        File4.json
        File5.csv
AnotherFolderB
    File6.csv
Folder* *.csv صحيح مجلد أ
    File1.csv
    File2.json
    Subfolder1
        File3.csv
        File4.json
        File5.csv
AnotherFolderB
    File6.csv

أمثلة على قائمة الملفات

يصف هذا القسم السلوك الناتج عن استخدام مسار قائمة الملفات في مصدر نشاط النسخ. يُفترض أن لديك بنية المجلد المصدر التالية وترغب في نسخ الملفات بالخط العريض:

نموذج بنية المصدر Content in FileListToCopy.txt التكوين
جذر
    مجلد أ
        File1.csv
        File2.json
        Subfolder1
            File3.csv
            File4.json
            File5.csv
    بيانات التعريف
        FileListToCopy.txt
File1.csv
Subfolder1/File3.csv
Subfolder1/File5.csv
في مجموعة البيانات:
- مسار المجلد: root/FolderA

في مصدر نشاط النسخ:
- مسار ملف القائمة: root/Metadata/FileListToCopy.txt

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

استخدم DistCp لنسخ البيانات من HDFS

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

يدعم نشاط النسخ استخدام DistCp لنسخ الملفات كما هي في تخزين Azure Blob (بما في ذلك نسخة مرحلية ) أو مخزن بحيرة بيانات Azure. في هذه الحالة، يمكن أن يستفيد DistCp من قوة المجموعة الخاصة بك بدلاً من التشغيل في وقت تشغيل التكامل المستضاف ذاتياً. يوفر استخدام DistCp إنتاجية أفضل للنسخ، خاصة إذا كانت مجموعتك قوية جداً. استناداً إلى التكوين، يقوم نشاط النسخ تلقائياً بإنشاء أمر DistCp وإرساله إلى مجموعة Hadoop الخاصة بك ومراقبة حالة النسخ.

المتطلبات الأساسية

لاستخدام DistCp لنسخ الملفات كما هي من HDFS إلى تخزين Azure Blob (بما في ذلك النسخة المرحلية) أو مخزن بحيرة البيانات Azure، تأكد من أن مجموعة Hadoop تفي بالمتطلبات التالية:

  • تم تمكين خدمات MapReduce وYARN.

  • إصدار YARN هو 2.5 أو أحدث.

  • تم دمج خادم HDFS مع مخزن البيانات الهدف: تخزين Azure Blob أو Azure Data Lake Store (ADLS Gen1):

    • يتم دعم Azure Blob FileSystem محلياً منذ Hadoop 2.7. ما عليك سوى تحديد مسار JAR في تكوين بيئة Hadoop.
    • يتم حزم نظام ملفات Azure Data Lake Store بدءاً من Hadoop 3.0.0-alpha1. إذا كان إصدار مجموعة Hadoop الخاص بك أقدم من هذا الإصدار، فأنت بحاجة إلى استيراد حزم JAR المرتبطة بـ Azure Data Lake Store يدوياً (azure-datalake-store.jar) في المجموعة من هنا، وتحديد ملف JAR المسار في تكوين بيئة Hadoop.
  • قم بإعداد مجلد مؤقت في HDFS. يتم استخدام مجلد temp هذا لتخزين برنامج نصي لـ DistCp shell، لذلك سيشغل مساحة على مستوى KB.

  • تأكد من أن حساب المستخدم المقدم في الخدمة المرتبطة بـ HDFS لديه الإذن بـ:

    • قم بتقديم طلب في YARN.
    • قم بإنشاء مجلد فرعي وقراءة / كتابة الملفات ضمن المجلد المؤقت.

تكوينات

بالنسبة إلى التكوينات والأمثلة المتعلقة بـ DistCp، انتقل إلى قسم HDFS كمصدر .

استخدم مصادقة Kerberos لموصل HDFS

هناك خياران لإعداد البيئة المحلية لاستخدام مصادقة Kerberos لموصل HDFS. يمكنك اختيار الشخص الذي يناسب وضعك بشكل أفضل.

لأي من الخيارين، تأكد من تشغيل webhdfs لمجموعة Hadoop:

  1. قم بإنشاء مفتاح HTTP وkeytab لـ webhdfs.

    هام

    يجب أن يبدأ مبدأ HTTP Kerberos بـ " HTTP / " وفقاً لمواصفات Kerberos HTTP SPNEGO. تعرف على المزيد من هنا .

    Kadmin> addprinc -randkey HTTP/<namenode hostname>@<REALM.COM>
    Kadmin> ktadd -k /etc/security/keytab/spnego.service.keytab HTTP/<namenode hostname>@<REALM.COM>
    
  2. خيارات تكوين HDFS: أضف الخصائص الثلاث التالية في hdfs-site.xml.

    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>dfs.web.authentication.kerberos.principal</name>
        <value>HTTP/_HOST@<REALM.COM></value>
    </property>
    <property>
        <name>dfs.web.authentication.kerberos.keytab</name>
        <value>/etc/security/keytab/spnego.service.keytab</value>
    </property>
    

الخيار 1: الانضمام إلى آلة وقت تشغيل التكامل ذاتية الاستضافة في عالم "Kerberos"

المتطلبات

  • يحتاج جهاز وقت تشغيل التكامل المستضاف ذاتياً إلى الانضمام إلى عالم Kerberos ولا يمكنه الانضمام إلى أي مجال من مجالات Windows.

كيفية التهيئة

على خادم KDC:

إنشاء مدير، وتحديد كلمة المرور.

هام

يجب ألا يحتوي اسم المستخدم على اسم المضيف.

Kadmin> addprinc <username>@<REALM.COM>

في آلة وقت تشغيل التكامل ذاتية الاستضافة:

  1. قم بتشغيل الأداة المساعدة Ksetup لتكوين خادم وعالم Kerberos Key Distribution Center (KDC).

    يجب تكوين الجهاز كعضو في مجموعة عمل، لأن نطاق Kerberos يختلف عن مجال Windows. يمكنك تحقيق هذا التكوين عن طريق تعيين مجال Kerberos وإضافة خادم KDC عن طريق تشغيل الأوامر التالية. استبدل REALM.COM باسم المجال الخاص بك.

    C:> Ksetup /setdomain REALM.COM
    C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>
    

    بعد تشغيل هذه الأوامر، أعد تشغيل الجهاز.

  2. تحقق من التكوين باستخدام الأمر Ksetup. يجب أن يكون الإخراج مثل:

    C:> Ksetup
    default realm = REALM.COM (external)
    REALM.com:
        kdc = <your_kdc_server_address>
    

في مصنع البيانات أو مساحة عمل Synapse:

  • قم بتكوين موصل HDFS باستخدام مصادقة Windows مع اسم Kerberos الرئيسي وكلمة المرور للاتصال بمصدر بيانات HDFS. للحصول على تفاصيل التكوين، تحقق من قسم خصائص خدمة HDFS المرتبطة .

الخيار 2: تمكين الثقة المتبادلة بين مجال Windows ومجال "Kerberos"

المتطلبات

  • يجب أن ينضم جهاز وقت تشغيل التكامل المستضاف ذاتياً إلى مجال Windows.
  • أنت بحاجة إلى إذن لتحديث إعدادات وحدة التحكم بالمجال.

كيفية التهيئة

إشعار

استبدل REALM.COM وAD.COM في البرنامج التعليمي التالي باسم المجال الخاص بك ووحدة التحكم بالمجال.

على خادم KDC:

  1. قم بتحرير تهيئة مركز توزيع المفاتيح في ملف krb5.conf للسماح لـ KDC بالوثوق في مجال Windows بالرجوع إلى نموذج التكوين التالي. بشكل افتراضي، التكوين موجود في /etc/krb5.conf.

    [logging]
     default = FILE:/var/log/krb5libs.log
     kdc = FILE:/var/log/krb5kdc.log
     admin_server = FILE:/var/log/kadmind.log
    
    [libdefaults]
     default_realm = REALM.COM
     dns_lookup_realm = false
     dns_lookup_kdc = false
     ticket_lifetime = 24h
     renew_lifetime = 7d
     forwardable = true
    
    [realms]
     REALM.COM = {
      kdc = node.REALM.COM
      admin_server = node.REALM.COM
     }
    AD.COM = {
     kdc = windc.ad.com
     admin_server = windc.ad.com
    }
    
    [domain_realm]
     .REALM.COM = REALM.COM
     REALM.COM = REALM.COM
     .ad.com = AD.COM
     ad.com = AD.COM
    
    [capaths]
     AD.COM = {
      REALM.COM = .
     }
    

    بعد تكوين الملف، أعد تشغيل خدمة KDC.

  2. قم بإعداد أساس باسم krbtgt /REALM.COM@AD.COM في خادم مركز توزيع المفاتيح باستخدام الأمر التالي:

    Kadmin> addprinc krbtgt/REALM.COM@AD.COM
    
  3. في ملف تكوين خدمة HDFS hadoop.security.auth_to_local، أضف RULE:[1:$1@$0](.*\@AD.COM)s/\@.*//.

على وحدة تحكم المجال:

  1. قم بتشغيل أوامر Ksetup التالية لإضافة إدخال مجال:

    C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>
    C:> ksetup /addhosttorealmmap HDFS-service-FQDN REALM.COM
    
  2. أنشئ الثقة من مجال Windows إلى عالم Kerberos. ;hk[password] هي كلمة المرور الرئيسية لـ krbtgt/REALM.COM@AD.COM.

    C:> netdom trust REALM.COM /Domain: AD.COM /add /realm /password:[password]
    
  3. حدد خوارزمية التشفير المستخدمة في Kerberos.

    أ. حدد Server Manager>إدارة نهج المجموعة>المجال>كائنات نهج المجموعة>افتراضي أو نهج المجال النشط، ثم حدد تحرير.

    ب. في جزء محرر إدارة نهج المجموعة، حدد تكوين الكمبيوتر>السياسات>إعدادات Windows>إعدادات الأمان>السياسات المحلية>خيارات الأمان، ثم قم بتهيئة أمان الشبكة: تهيئة أنواع التشفير المسموح بها لـ Kerberos.

    جـ. حدد خوارزمية التشفير التي تريد استخدامها عند الاتصال بخادم KDC. يمكنك تحديد كل الخيارات.

    Screenshot of the "Network security: Configure encryption types allowed for Kerberos" pane

    د. استخدم الأمر Ksetup لتحديد خوارزمية التشفير التي سيتم استخدامها في المجال المحدد.

    C:> ksetup /SetEncTypeAttr REALM.COM DES-CBC-CRC DES-CBC-MD5 RC4-HMAC-MD5 AES128-CTS-HMAC-SHA1-96 AES256-CTS-HMAC-SHA1-96
    
  4. أنشئ التعيين بين حساب المجال وأساسي Kerberos، بحيث يمكنك استخدام Kerberos الأساسي في مجال Windows.

    أ. حدد أدوات إدارية > Active Directory Users and Computers .

    ب. قم بتكوين الميزات المتقدمة عن طريق تحديد عرض > الميزات المتقدمة .

    جـ. في جزء الميزات المتقدمة، انقر بزر الماوس الأيمن فوق الحساب الذي تريد إنشاء التعيينات له، وفي جزء تعيينات الأسماء، حدد علامة التبويب أسماء Kerberos.

    د. أضف رئيساً من المجال.

    Screenshot of the "Security Identity Mapping" pane

في آلة وقت تشغيل التكامل ذاتية الاستضافة:

  • قم بتشغيل أوامر Ksetup التالية لإضافة إدخال مجال.

    C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>
    C:> ksetup /addhosttorealmmap HDFS-service-FQDN REALM.COM
    

في مصنع البيانات أو مساحة عمل Synapse:

  • قم بتكوين موصل HDFS باستخدام مصادقة Windows مع إما حساب المجال الخاص بك أو مفتاح Kerberos للاتصال بمصدر بيانات HDFS. للحصول على تفاصيل التكوين، راجع قسم خصائص خدمة HDFS المرتبطة .

بحث عن خصائص النشاط

للحصول على معلومات حول خصائص نشاط البحث، راجع نشاط البحث.

حذف خصائص النشاط

للحصول على معلومات حول حذف خصائص النشاط، راجع حذف النشاط .

النماذج القديمة

إشعار

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

نموذج مجموعة البيانات القديم

الخاصية الوصف مطلوب
النوع يجب تعيين الخاصية type لمجموعة البيانات على FileShare ‏‏نعم‬
folderPath المسار إلى المجلد. يتم دعم عامل تصفية حرف البدل. أحرف البدل المسموح بها هي * (تطابق صفراً أو أكثر من الأحرف) و? (تطابق الصفر أو مع حرف واحد) ؛ استخدم ^ للهروب إذا كان اسم الملف الفعلي يحتوي على حرف بدل أو حرف إلغاء بداخله.

أمثلة: rootfolder/subfolder/، راجع المزيد من الأمثلة في أمثلة على تصفية الملف والمجلد.
‏‏نعم‬
fileName الاسم أو مرشح أحرف البدل للملفات ضمن "folderPath" المحدد. إذا لم تحدد قيمة لهذه الخاصية، فإن مجموعة البيانات تشير إلى جميع الملفات الموجودة في المجلد.

بالنسبة إلى الفلتر، فإن أحرف البدل المسموح بها هي * (تطابق صفر أو أكثر من الأحرف) و? (تطابق الصفر أو مع حرف واحد).
- مثال 1: "fileName": "*.csv"
- مثال 2: "fileName": "???20180427.txt"
استخدم ^ للإفلات إذا كان اسم المجلد الفعلي يحتوي على حرف بدل أو حرف إلغاء بداخله.
لا
تاريخ البدء المعدل يتم تصفية الملفات بناءً على السمة تاريخ آخر تعديل . يتم تحديد الملفات إذا كان وقت آخر تعديل لها أكبر من أو يساوي modifiedDatetimeStart وأقل من modifiedDatetimeEnd. يتم تطبيق الوقت على المنطقة الزمنية UTC بالتنسيق 2018-12-01T05:00:00Z.

اعلم أن الأداء العام لحركة البيانات سيتأثر بتمكين هذا الإعداد عندما تريد تطبيق مرشح ملف على عدد كبير من الملفات.

يمكن أن تكون الخصائص فارغة، ما يعني أنه لا يتم تطبيق أي عامل تصفية سمة ملف على مجموعة البيانات. عندما يكون لـ modifiedDatetimeStart قيمة تاريخ / وقت ولكن modifiedDatetimeEnd هي NULL، فهذا يعني أنه يتم تحديد الملفات التي تم تحديد آخر سمة تم تعديلها لها أكبر من أو تساوي قيمة التاريخ والوقت. عندما يكون لـ modifiedDatetimeEnd قيمة تاريخ / وقت ولكن modifiedDatetimeStart هي NULL، فهذا يعني أنه يتم تحديد الملفات التي تكون آخر سمة تم تعديلها لها أقل من قيمة التاريخ والوقت.
لا
modifiedDatetimeEnd يتم تصفية الملفات بناءً على السمة تاريخ آخر تعديل . يتم تحديد الملفات إذا كان وقت آخر تعديل لها أكبر من أو يساوي modifiedDatetimeStart وأقل من modifiedDatetimeEnd. يتم تطبيق الوقت على المنطقة الزمنية UTC بالتنسيق 2018-12-01T05:00:00Z.

اعلم أن الأداء العام لحركة البيانات سيتأثر بتمكين هذا الإعداد عندما تريد تطبيق مرشح ملف على عدد كبير من الملفات.

يمكن أن تكون الخصائص فارغة، ما يعني أنه لا يتم تطبيق أي عامل تصفية سمة ملف على مجموعة البيانات. عندما يكون لـ modifiedDatetimeStart قيمة تاريخ / وقت ولكن modifiedDatetimeEnd هي NULL، فهذا يعني أنه يتم تحديد الملفات التي تم تحديد آخر سمة تم تعديلها لها أكبر من أو تساوي قيمة التاريخ والوقت. عندما يكون لـ modifiedDatetimeEnd قيمة تاريخ / وقت ولكن modifiedDatetimeStart هي NULL، فهذا يعني أنه يتم تحديد الملفات التي تكون آخر سمة تم تعديلها لها أقل من قيمة التاريخ والوقت.
لا
format إذا كنت تريد نسخ الملفات كما هو الحال بين المخازن المستندة إلى ملف (نسخة ثنائية)، تخطي مقطع التنسيق في كل من تعريفات مجموعة بيانات الإدخال والإخراج.

إذا أردت توزيع الملفات بتنسيق معين، فإن أنواع تنسيق الملفات المدعومة هي ما يلي: TextFormat، وJsonFormat، وAvroFormat، وOrcFormat، وParquetFormat. عيّن خاصية النوع الموجودة ضمن التنسيق إلى إحدى هذه القيم. لمزيد من المعلومات، راجع أقسام تنسيق النص وتنسيق JSON وتنسيق Avro وتنسيق ORC وتنسيق الباركيه.
لا (فقط لسيناريو النسخ الثنائي)
ضغط حدد نوع ضغط البيانات ومستواه. للحصول على مزيدٍ من المعلومات، راجع تنسيقات الملفات المدعومة وبرامج ضغط الوسائط وفكها.
الأنواع المدعومة هي: Gzip، وDeflate، وBzip2، وZipDeflate.
المستويات المدعومة هي Optimal وFastest.
لا

تلميح

لنسخ جميع الملفات المضمنة في مجلد، حدد folderPath فقط.
لنسخ ملف واحد باسم محدد، حدد folderPath مع جزء المجلد و اسم الملف باسم الملف.
لنسخ مجموعة فرعية من الملفات ضمن مجلد ما، حدد folderPath مع جزء المجلد، وfileName مع عامل تصفية حرف البدل.

مثال:

{
    "name": "HDFSDataset",
    "properties": {
        "type": "FileShare",
        "linkedServiceName":{
            "referenceName": "<HDFS linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "folderPath": "folder/subfolder/",
            "fileName": "*",
            "modifiedDatetimeStart": "2018-12-01T05:00:00Z",
            "modifiedDatetimeEnd": "2018-12-01T06:00:00Z",
            "format": {
                "type": "TextFormat",
                "columnDelimiter": ",",
                "rowDelimiter": "\n"
            },
            "compression": {
                "type": "GZip",
                "level": "Optimal"
            }
        }
    }
}

نموذج مصدر نشاط النسخ القديم

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع لمصدر نشاط النسخ على HdfsSource . ‏‏نعم‬
التكرار يشير إلى ما إذا كانت البيانات ستتم قراءتها بشكل متكرر من المجلدات الفرعية أو من المجلد المحدد فقط. عند تعيين العودية على صواب ويكون الحوض مخزناً مستنداً إلى ملف، فلن يتم نسخ أو إنشاء مجلد فارغ أو مجلد فرعي في المخزن.
القيم المسموح بها هي true (افتراضية) وfalse.
لا
إعدادات distcp مجموعة الخصائص عند استخدام HDFS DistCp. لا
نقطة نهاية مدير الموارد نقطة نهاية YARN Resource Manager نعم، إذا كنت تستخدم DistCp
تيمبسكريبت مسار مجلد يُستخدم لتخزين البرنامج النصي لأوامر DistCp المؤقتة. يتم إنشاء ملف البرنامج النصي وستتم إزالته بعد انتهاء مهمة النسخ. نعم، إذا كنت تستخدم DistCp
distcp الخيارات يتم توفير خيارات إضافية لأمر DistCp. لا
maxConcurrentConnections الحد الأعلى للاتصالات المتزامنة التي تم إنشاؤها إلى مخزن البيانات أثناء تشغيل النشاط. حدد قيمة فقط عندما تريد تحديد الاتصالات المتزامنة. لا

مثال: مصدر HDFS في نشاط النسخ باستخدام DistCp

"source": {
    "type": "HdfsSource",
    "distcpSettings": {
        "resourceManagerEndpoint": "resourcemanagerendpoint:8088",
        "tempScriptPath": "/usr/hadoop/tempscript",
        "distcpOptions": "-m 100"
    }
}

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