அப்பாச்சி பன்றி யுடிஎஃப்: பகுதி 2 - சுமை செயல்பாடுகள்



இந்த இடுகை அப்பாச்சி பன்றி யுடிஎஃப் - சுமை செயல்பாடுகள் பற்றி விவரிக்கிறது. (அப்பாச்சி பன்றி யுடிஎஃப்: பகுதி 2). அப்பாச்சி பன்றி யு.டி.எஃப் இன் சுமை செயல்பாடுகளைப் பாருங்கள்.

இன்றைய இடுகை அப்பாச்சி பன்றியில் ஏற்றுதல் செயல்பாடுகளைப் பற்றியது. இது இதன் தொடர்ச்சியாகும் முதல் இடுகை இது ஈவல், வடிகட்டி மற்றும் மொத்தம் போன்ற யுடிஎஃப் செயல்பாடுகளை உள்ளடக்கியது. பிக் யுடிஎப்பின் பிற செயல்பாடுகள் குறித்த கூடுதல் தகவலுக்கு தயவுசெய்து அவர்களுக்கு மறுபரிசீலனை செய்யுங்கள்.





ஜாவாவில் ஃபைபோனச்சி தொடர் குறியீடு

பன்றியின் சுமை செயல்பாடு ஒரு ஹடூப்பின் உள்ளீட்டு வடிவத்தின் மேல் கட்டப்பட்டுள்ளது, தரவைப் படிக்க ஹடூப் பயன்படுத்தும் வகுப்பு. InputFormat க்கு இரண்டு நோக்கங்கள் உள்ளன: இது வரைபட பணிகளுக்கு இடையில் உள்ளீடு எவ்வாறு துண்டு துண்டாக இருக்கும் என்பதை தீர்மானிக்கிறது மற்றும் ஒரு ரெக்கார்ட் ரீடரை வழங்குகிறது, இது முக்கிய மதிப்பு ஜோடிகளை அந்த வரைபட பணிகளுக்கு உள்ளீடாக வழங்குகிறது. சுமை செயல்பாட்டிற்கான அடிப்படை வகுப்பு LoadFunc ஆகும்.

சுமை செயல்பாடு - வகைப்பாடு:

LoadFunc சுருக்கம் வர்க்கம் தரவை ஏற்றுவதற்கு மூன்று முக்கிய முறைகளைக் கொண்டுள்ளது மற்றும் பெரும்பாலான பயன்பாட்டு நிகழ்வுகளில் அதை நீட்டிக்க போதுமானது. நீட்டிக்கப்பட்ட செயல்பாட்டை அடைய இன்னும் மூன்று விருப்ப இடைமுகங்கள் செயல்படுத்தப்படலாம்:



  • லோட்மெட்டாடேட்டா:

LoadMetadata மெட்டாடேட்டாவைக் கையாள்வதற்கான முறைகளைக் கொண்டுள்ளது. ஏற்றிகள் அதிகம் செயல்படுத்தப்படுவது ஒரு மெட்டாடேட்டா அமைப்புடன் தொடர்பு கொள்ளாவிட்டால் இதை செயல்படுத்த தேவையில்லை. இந்த இடைமுகத்தில் உள்ள getSchema () முறை ஏற்றி செயலாக்கங்களுக்கு தரவின் திட்டத்தைப் பற்றி மீண்டும் பன்றிக்குத் தொடர்புகொள்வதற்கான வழியை வழங்குகிறது. ஒரு ஏற்றி செயல்படுத்தல் உண்மையான வகைகளின் புலங்களைக் கொண்ட தரவை வழங்கினால், அது getSchema () முறை மூலம் திரும்பிய தரவை விவரிக்கும் திட்டத்தை வழங்க வேண்டும். பிற முறைகள் பகிர்வு விசைகள் மற்றும் புள்ளிவிவரங்கள் போன்ற பிற வகை மெட்டாடேட்டாவைக் கையாளுகின்றன. இந்த முறைகள் மற்ற செயலாக்கங்களுக்கு செல்லுபடியாகாவிட்டால், நடைமுறைகள் பூஜ்ய வருவாய் மதிப்புகளைத் தரலாம்.

  • LoadPushDown:

பிக் இயக்க நேரத்திலிருந்து செயல்பாடுகளை ஏற்றி செயலாக்கங்களுக்குத் தள்ள லோட்பபுஷ்டவுன் வெவ்வேறு முறைகளைக் கொண்டுள்ளது. தற்போது, ​​பிக் ஸ்கிரிப்ட்டில் தேவைப்படும் சரியான புலங்களை ஏற்றித் தொடர்புகொள்வதற்கு பிக் மூலம் புஷ் ப்ரொஜெக்ஷன் () முறை மட்டுமே அழைக்கப்படுகிறது. ஏற்றி செயல்படுத்தல் கோரிக்கையை பின்பற்றவோ அல்லது பின்பற்றவோ தேர்வு செய்யலாம். ஏற்றி செயல்படுத்தல் கோரிக்கையை பின்பற்ற முடிவு செய்தால், வினவல் செயல்திறனை மேம்படுத்த இது LoadPushDown ஐ செயல்படுத்த வேண்டும்.

  • pushProjection ():

இந்த முறை பிக் ஸ்கிரிப்ட்டில் எந்த புலங்கள் தேவை என்பதை LoadFunc க்கு தெரிவிக்கிறது. இதனால் தேவையான புலங்களை மட்டுமே ஏற்றுவதன் மூலம் செயல்திறனை மேம்படுத்த LoadFunc ஐ செயல்படுத்துகிறது. pushProjection () ஒரு ‘requiredFieldList ஐ எடுக்கிறது.’ ‘requiredFieldList’ படிக்க மட்டுமே படிக்கிறது மற்றும் LoadFunc ஆல் மாற்ற முடியாது. ‘RequiredFieldList’ இல் ‘requiredField’ இன் பட்டியல் அடங்கும், அங்கு ஒவ்வொரு ‘requiredField’ பன்றி ஸ்கிரிப்ட்டுக்குத் தேவையான ஒரு புலத்தைக் குறிக்கிறது மற்றும் குறியீட்டு, மாற்று, வகை மற்றும் துணை புலங்களை உள்ளடக்கியது. பிக் ஸ்கிரிப்ட்டுக்குத் தேவையான புலங்களைப் பற்றி லோட்ஃபங்குடன் தொடர்புகொள்வதற்கு தேவையான ஃபீல்ட்.இண்டெக்ஸ் நெடுவரிசை குறியீட்டைப் பயன்படுத்துகிறது. தேவையான புலம் ஒரு வரைபடமாக இருந்தால், பிக் வரைபடத்திற்கு பிக் ஸ்கிரிப்ட்களுக்குத் தேவையான விசைகளின் பட்டியலைக் கொண்டிருக்கும் ‘requiredField.subFields’ ஐ அனுப்பும்.



  • லோட்காஸ்டர்:

பைட் வரிசைகளை குறிப்பிட்ட வகைகளாக மாற்றுவதற்கான நுட்பங்களை லோட்காஸ்டர் கொண்டுள்ளது. டேட்டாபைட்அரே புலங்களிலிருந்து பிற வகைகளுக்கு மறைமுகமான அல்லது வெளிப்படையான காஸ்ட்களை ஆதரிக்க வேண்டியிருக்கும் போது ஒரு ஏற்றி செயல்படுத்தல் இதை செயல்படுத்த வேண்டும்.

ஒரு ஏற்றி செயல்படுத்துவதற்கு நீட்டிக்க வேண்டிய முக்கிய வகுப்பு LoadFunc சுருக்கம் வகுப்பு. மீறப்பட வேண்டிய முறைகள் கீழே விளக்கப்பட்டுள்ளன:

  • getInputFormat ():

    ஏற்றி பயன்படுத்தும் InputFormat ஐப் பெற இந்த முறையை பிக் அழைக்கிறது. InputFormat இல் உள்ள முறைகள் ஒரு MapReduce ஜாவா நிரலில் ஹடூப் போன்ற பாணியில் பிக் அழைக்கப்படுகின்றன. InputFormat ஒரு ஹடூப் தொகுக்கப்பட்ட ஒன்றாகும் என்றால், செயல்படுத்தல் org.apache.hadoop.mapreduce இன் கீழ் புதிய API அடிப்படையிலான ஒன்றைப் பயன்படுத்த வேண்டும். இது தனிப்பயன் உள்ளீட்டு வடிவமாக இருந்தால், org.apache.hadoop.mapreduce இல் புதிய API ஐப் பயன்படுத்தி செயல்படுத்தப்படுவது நல்லது.

  • setLocation ():

    சுமை இருப்பிடத்தை ஏற்றித் தொடர்புகொள்வதற்கு இந்த முறையை பிக் அழைக்கிறது. அதே தகவலை மைய உள்ளீட்டு வடிவத்துடன் தொடர்பு கொள்ள ஏற்றி இந்த முறையைப் பயன்படுத்த வேண்டும். இந்த முறை பன்றியால் பல முறை அழைக்கப்படுகிறது.

  • தயார் டோட் ():

    இந்த முறையில், LoadFunc வழங்கிய InputFormat தொடர்பான RecordReader LoadFunc க்கு அனுப்பப்படுகிறது. GetNext () இல் செயல்படுத்துவதன் மூலம் ரெக்கார்ட் ரீடரைப் பயன்படுத்தலாம், இது தரவுகளின் பதிவைக் குறிக்கும் பருப்பை மீண்டும் பன்றிக்குத் தருகிறது.

  • getNext ():

    GetNext () இன் பொருள் மாறவில்லை, மேலும் தரவுகளில் அடுத்த டூப்பிளைப் பெற பிக் இயக்க நேரத்தால் அழைக்கப்படுகிறது. இந்த முறையில், செயல்படுத்தல் அடிப்படை ரெக்கார்ட் ரீடரைப் பயன்படுத்த வேண்டும் மற்றும் திரும்புவதற்கு டப்பிள் கட்டமைக்க வேண்டும்.

LoadFunc இல் இயல்புநிலை நடைமுறைகள்:

LoadFunc இல் இயல்புநிலை செயலாக்கங்கள் தேவைப்படும்போது மட்டுமே மேலெழுதப்பட வேண்டும் என்பதை நினைவில் கொள்க.

  • setUdfContextSignature ():

    ஏற்றி ஒரு தனிப்பட்ட கையொப்பத்தை அனுப்ப முன் மற்றும் பின் இறுதியில் இந்த முறை பிக் அழைக்கப்படும். எந்தவொரு தகவலையும் UDFContext இல் சேமிக்க கையொப்பத்தைப் பயன்படுத்தலாம், இது ஏற்றி முன் மற்றும் பின் இறுதியில் பல்வேறு முறை அழைப்புகளுக்கு இடையில் சேமிக்க வேண்டும். GetNext () இல் டுபில்களைத் திருப்பித் தருவதற்கு முன், பின் இறுதியில் பயன்படுத்த, LoadPushDown.pushProjection (RequiredFieldList) இல் அனுப்பப்பட்ட RequiredFieldList ஐ சேமிப்பது ஒரு பயன்பாட்டு வழக்கு. LoadFunc இல் இயல்புநிலை செயல்படுத்தல் வெற்று உடலைக் கொண்டுள்ளது. இந்த முறை மற்ற முறைகளுக்கு முன் அழைக்கப்படும்.

  • relativeToAbsolutePath ():

    ஒரு சுமை இருப்பிடத்தை ஒரு முழுமையான இடத்திற்கு மாற்றுவதற்கு ஏற்றி அனுமதிக்க பிக் இயக்க நேரம் இந்த முறையை அழைக்கும். LoadFunc இல் வழங்கப்பட்ட இயல்புநிலை செயல்படுத்தல் இதை கோப்பு முறைமை இருப்பிடங்களுக்கு கையாளுகிறது. சுமை மூலமானது வேறு ஏதாவது இருந்தால், ஏற்றி செயல்படுத்தல் இதை மீற தேர்வு செய்யலாம்.

எடுத்துக்காட்டில் ஏற்றி செயல்படுத்தல் என்பது வரி டிலிமிட்டருடன் உரை தரவிற்கான ஏற்றி ‘
பிக் இல் தற்போதைய பிக்ஸ்டோரேஜ் ஏற்றிக்கு ஒத்த இயல்புநிலை புலம் டிலிமிட்டராக ‘மற்றும்‘ ‘. செயலாக்கம் ஏற்கனவே உள்ள ஹடூப் ஆதரவு உள்ளீட்டு வடிவமைப்பை - டெக்ஸ்ட்இன்புட்ஃபார்மேட் - அடிப்படை உள்ளீட்டு வடிவமாக பயன்படுத்துகிறது.

பொது வகுப்பு சிம்பிள் டெக்ஸ்ட்லோடர் = பூஜ்ய தனியார் பைட் புலத்தில் லோட்ஃபங்க் {பாதுகாக்கப்பட்ட ரெக்கார்ட் ரீடரை நீட்டிக்கிறது புலம் ஏற்றி குறிப்பிட்ட எழுத்துக்குறியை புலம் டிலிமிட்டராகப் பயன்படுத்துகிறது. * * m பரம் டிலிமிட்டர் * புலங்களை பிரிக்கப் பயன்படும் ஒற்றை பைட் எழுத்து. * ('' இயல்புநிலை.) * / பொது சிம்பிள் டெக்ஸ்ட்லோடர் (சரம் டிலிமிட்டர்) {இது () if (delimiter.length () == 1) {this.fieldDel = (byte) delimiter.charAt (0)} else என்றால் ( delimiter.length ()> 1 & & delimiter.charAt (0) == '') {சுவிட்ச் (delimiter.charAt (1)) {case 't': this.fieldDel = (byte) '' break case 'x' : fieldDel = Integer.valueOf (delimiter.substring (2), 16) .byteValue () பிரேக் கேஸ் 'u': this.fieldDel = Integer.valueOf (delimiter.substring (2)). இயக்கநேர எக்ஸ்செப்சன் ('அறியப்படாத டிலிமிட்டர்' + டிலிமிட்டர்)}} else new புதிய இயக்கநேர எக்ஸ்செப்ஷனை எறியுங்கள் ('பிக்ஸ்டோரேஜ் டிலிமீட்டர் ஒரு எழுமாக இருக்க வேண்டும்') (notDone) {பூஜ்யமாகத் திரும்புக} உரை மதிப்பு = (உரை) in.getCurrentValue () பைட் [] buf = value.getBytes () int len ​​= value.getLength () int start = 0 for (int i = 0 iஎங்களுக்கு ஒரு கேள்வி கிடைத்ததா? கருத்துகள் பிரிவில் இதைக் குறிப்பிடவும், நாங்கள் உங்களைத் தொடர்புகொள்வோம். 

தொடர்புடைய இடுகைகள்: