जब मैंने अपने संबंधित स्कीमा के साथ डेटा पर Kafka Consumer with Avro चलाने का प्रयास किया, तो यह "AvroRuntimeException: विकृत डेटा। लंबाई ऋणात्मक है: -40" की त्रुटि देता है। मुझे लगता है कि दूसरों के पास समान समस्याएं हैं coverting byte array to json, Avro write and read, और Kafka Avro Binary *coder। मैं भी इस Consumer Group Example है, जो सभी सहायक रहे संदर्भित किया है, फिर भी इस त्रुटि के साथ कोई मदद नहीं अब तक .. यह कोड (लाइन 73)डिकोडर मुद्दों के साथ काफ्का एवरो उपभोक्ता
डिकोडर विकोडक के इस हिस्से तक काम करता है = DecoderFactory.get()। BinaryDecoder (byteArrayInputStream, शून्य);
मैंने अन्य डिकोडर्स की कोशिश की है और बाइटएरेइन इनपुटस्ट्रीम वैरिएबल की सामग्री को मुद्रित किया है, जो दिखता है कि मुझे लगता है कि आप क्या मानते हैं कि आप धारावाहिक एरो डेटा देखने की उम्मीद करेंगे (संदेश में मैं स्कीमा और कुछ डेटा और कुछ विकृत डेटा देख सकता हूं) मेरे पास है .available() विधि का उपयोग करके उपलब्ध बाइट्स मुद्रित, जो 594 लौटाता है। मुझे यह समझने में परेशानी हो रही है कि यह त्रुटि क्यों हो रही है। अपाचे निफ़ी का उपयोग एचडीएफएस से उसी स्कीमा के साथ काफ्का स्ट्रीम का उत्पादन करने के लिए किया जाता है। किसी भी सहायता के लिए धन्यवाद।
धन्यवाद @ miguno यह बिल्कुल था! मैं डेटाफ़ाइल रीडर को दो लाइन परिवर्तनों के साथ डीकोडर का उपयोग करके रॉकिंग और रोलिंग कर रहा हूं। DatumReader डेटामडर = नया विशिष्ट डेटामडर <जेनेरिक रिकॉर्डर> (स्कीमा); डेटाफाइलस्ट्रीम <जेनेरिक रेकॉर्ड> डेटाफाइल रीडर = नया डेटाफाइलस्ट्रीम <जेनेरिक रिकॉर्डर> (इनपुटस्ट्रीम, डाटाम रीडर); –
SparkleGoat
सुधार * मैं अब रॉकिंग और रोलिंग कर रहा हूं कि मैं डेटाफाइल रीडर में दो पंक्ति परिवर्तनों के साथ बदल गया। आप सही बाइनरी हैं डिकोडर नौकरी के लिए सही विकल्प नहीं था। – SparkleGoat
खुशी हुई यह काम किया! –