সাক্ষাৎকার প্রশ্ন

শীর্ষ 100 হাইভ ইন্টারভিউ প্রশ্ন এবং উত্তর

30 অক্টোবর, 2021

হাইভ সাক্ষাত্কারের সময় সাধারণত কী ধরনের প্রশ্ন করা হয় তা জানার জন্য এটি একটি সহায়ক। হওয়ার জন্য উন্মুখ a হাডুপ বিকাশকারী? এখানে কিছু Hive ইন্টারভিউ প্রশ্ন আছে. আসুন আশা করি এই সেরা 100টি হাইভ ইন্টারভিউ প্রশ্ন এবং উত্তর আপনাকে আপনার পরবর্তী হ্যাডুপ ইন্টারভিউয়ের জন্য প্রস্তুত করবে। নীচে Apache Hive সাক্ষাত্কারের প্রশ্নগুলির তালিকা রয়েছে যা Apache Hive ব্রেনস্টমারদের জন্য তৈরি করা হয়েছে।

শীর্ষ হাইভ ইন্টারভিউ প্রশ্ন এবং উত্তর

সুচিপত্র

1. হাইভের জন্য কোন ধরনের ডেটা গুদাম অ্যাপ্লিকেশন উপযুক্ত? Hive এর টেবিলের ধরন কি কি?

হাইভ একটি সম্পূর্ণ ডাটাবেস হিসাবে বিবেচিত হয় না। Hadoop এবং HDFS-এর ডিজাইনের নিয়ম ও প্রবিধানগুলি হাইভ কী করতে পারে তার উপর বিধিনিষেধ আরোপ করেছে। যাইহোক, Hive গুদাম অ্যাপ্লিকেশনগুলিতে ডেটা স্ট্রাকচারের জন্য সবচেয়ে উপযুক্ত কারণ এটি:

  • তুলনামূলকভাবে স্ট্যাটিক ডেটা বিশ্লেষণ করে।
  • কম প্রতিক্রিয়াশীল সময় আছে.
  • ডেটাতে দ্রুত পরিবর্তন করে না।

যদিও Hive অনলাইন লেনদেন প্রক্রিয়াকরণ (OLTP) এর জন্য প্রয়োজনীয় মৌলিক বৈশিষ্ট্যগুলি প্রদান করে না, এটি বড় ডেটাসেটে ডেটা গুদাম কাঠামোর জন্য উপযুক্ত।

Hive-এ দুটি ধরণের টেবিল ডেটা উপস্থিত রয়েছে:

  • পরিচালিত টেবিল
  • বাহ্যিক টেবিল

2. SMB Join in Hive ব্যাখ্যা কর?

এসএমবি জয়েন ইন হাইভে, প্রতিটি ম্যাপার প্রথম টেবিল থেকে একটি বালতি এবং দ্বিতীয় টেবিল থেকে সম্পর্কিত বালতি অনুসরণ করে এবং এর পরে, একটি মার্জ সর্ট জয়েন করা হয়। সর্ট মার্জ বাকেট (এসএমবি) হাইভের যোগদানগুলি সবচেয়ে বেশি ব্যবহার করা হয় কারণ ফাইল বা সেগমেন্ট বা টেবিল যোগদানে কোনও বিধিনিষেধ নেই৷

সংরক্ষিত টেবিল ডেটা বিশাল হলে SMB যোগদান সবচেয়ে ভালোভাবে ব্যবহার করা যেতে পারে। এসএমবি-তে যোগদানের বিভাগগুলিকে বালতিতে রাখা হয় এবং যোগদানের অংশগুলিকে ব্যবহার করার জন্য সাজানো হয়। টেবিল ডিরেক্টরিতে SMB যোগদানে একই সংখ্যক বালতি থাকা উচিত।

3. HIVE কিভাবে RDBMS থেকে আলাদা?

  • RDBMS রাইটে স্কিমা সমর্থন করে যেখানে Hive রিডে স্কিমা প্রদান করে।
  • হাইভে, আমরা একবার লিখতে পারি কিন্তু RDBMS-এ আমরা যতবার চাই ততবার লিখতে পারি।
  • হাইভ বড় ডেটাসেট পরিচালনা করতে পারে যেখানে RDBMS 10TB এর বেশি পরিচালনা করতে পারে না।
  • হাইভ অত্যন্ত স্কেলযোগ্য কিন্তু RDBMS-এ স্কেলেবিলিটির ক্ষতি হয়।
  • হাইভের বাকেটিংয়ের একটি বৈশিষ্ট্য রয়েছে যা RDBMS-এ নেই।

4. হাইভ কোন ধরনের ডাটাবেস সমর্থন করে?

একক-ব্যবহারকারীর মেটাডেটা স্টোরেজের জন্য, হাইভ ডাটাবেস সিস্টেম একটি ডার্বি ডাটাবেস ব্যবহার করে এবং একাধিক ব্যবহারকারীর মেটাডেটা বা ভাগ করা মেটাডেটা ক্ষেত্রে Hive ব্যবহার করে মাইএসকিউএল .

5. Apache Hive-এ, আপনি কিভাবে বালতি সক্রিয় করতে পারেন?

Hive-এ, আপনি নিম্নলিখিত কমান্ড ব্যবহার করে বালতি সক্রিয় করতে পারেন: set.hive.enforce.bucketing=true;

আরো দেখুন শীর্ষ 100 উত্তরযোগ্য ইন্টারভিউ প্রশ্ন এবং উত্তর

6. Apache Hive কি OLTP সিস্টেমের জন্য ব্যবহার করা উপযুক্ত? কেন?

না, এটি OLTP সিস্টেমের জন্য উপযুক্ত নয় কারণ এটি সারি স্তরে সন্নিবেশ এবং আপডেট অফার করে না।

7. Apache Hive-এ অবজেক্ট ইন্সপেক্টর কার্যকারিতা কি?

Hive-এ অবজেক্ট ইন্সপেক্টর কার্যকারিতা ব্যবহার করে সেগমেন্ট, কলাম এবং জটিল আইটেমগুলির অভ্যন্তরীণ কাঠামোর বিশ্লেষণ শেষ হয়। প্রশ্ন পরিদর্শক কার্যকারিতা অভ্যন্তরীণ ক্ষেত্রগুলিতে উপলব্ধ করে, যা বস্তুর ভিতরে উপস্থিত থাকে।

8. Apache Hive এর সীমাবদ্ধতা কি কি?

  • আমরা Hive এর সাথে রিয়েল-টাইম প্রশ্নগুলি সম্পাদন করতে পারি না।
  • এটি সারি-স্তরের আপডেট অফার করে না।
  • ইন্টারেক্টিভ ডেটা ব্রাউজিংয়ের জন্য হাইভ গ্রহণযোগ্য লেটেন্সি অফার করে।
  • Hive অনলাইন লেনদেন প্রক্রিয়াকরণের জন্য সঠিক পছন্দ নয়।

9. Apache Hive এর বিভিন্ন মোড কি কি?

কখনও কখনও হাইভ ইন্টারভিউ প্রশ্নে, সাক্ষাত্কারকারীরা এই মৌলিক প্রশ্নগুলি জিজ্ঞাসা করতে পছন্দ করে যাতে আপনার হাইভ জ্ঞানের ক্ষেত্রে আপনি কতটা আত্মবিশ্বাসী হন। এই বলে উত্তর দিন যে Hive কখনও কখনও দুটি মোডে কাজ করতে পারে, যা MapReduce মোড এবং স্থানীয় মোড। ব্যাখ্যা করুন যে এটি Hadoop-এ DataNodes আকারের উপর নির্ভর করে।

10. Hive Bucketing কি?

অ্যাপাচি হাইভের বড় ডেটাসেটে প্রশ্ন করার সময়, বাকেটিং হাইভ টেবিলে আরও ভাল কাঠামো দিতে পারে। উদাহরণস্বরূপ, রেকর্ড রাখার ক্ষেত্রে বাকেটিং প্রোগ্রামারদের আরও নমনীয়তা দিতে পারে এবং প্রয়োজনে বড় ডেটাসেটগুলি ডিবাগ করা সহজ করে তুলতে পারে।

শীর্ষ হাইভ ইন্টারভিউ প্রশ্ন এবং উত্তর

11. পার্টিশন এবং বাকেটিংয়ের মধ্যে পার্থক্য কী?

পার্টিশন এবং বাকেটিং উভয়েরই মূল লক্ষ্য হল কোয়েরিটি আরও দক্ষতার সাথে চালানো। আপনি যখন একটি টেবিল ডেটা তৈরি করছেন তখন টেবিলের পার্টিশনে স্লাইসগুলি স্থির করা হয়।

12. Hive-এ টেবিলের ডেটা কোথায় সংরক্ষণ করা হয়?

একটি HDFS ডিরেক্টরিতে - /user/hive/warehouse, টেবিলের ডেটা সংরক্ষণ করা হয়, শুধুমাত্র ডিফল্টরূপে। তাছাড়া, hive-site.xml-এ উপস্থিত hive.metastore.warehouse.dir কনফিগারেশন প্যারামিটারে পছন্দসই ডিরেক্টরি উল্লেখ করে, কেউ এটি পরিবর্তন করতে পারে।

13. কিভাবে HDFS থেকে Hive-এ ডেটা ট্রান্সফার হয়?

যদি ইতিমধ্যেই HDFS-এ ডেটা উপস্থিত থাকে তাহলে ব্যবহারকারীর এমন ডেটা লোড করার দরকার নেই যা ফাইলগুলিকে /user/hive/warehouse/-এ নিয়ে যায়। সুতরাং ব্যবহারকারীকে কেবলমাত্র বহিরাগত শব্দটি ব্যবহার করে টেবিলটি সংজ্ঞায়িত করতে হবে যা হাইভ মেটাস্টোরে টেবিলের সংজ্ঞা তৈরি করে।

14. Hive ক্যোয়ারী প্রসেসর কি করে?

হাইভ ক্যোয়ারী প্রসেসর ম্যাপরিডুস কাজের গ্রাফগুলিকে এক্সিকিউশন টাইম ফ্রেমওয়ার্কের সাথে রূপান্তর করে যাতে কাজগুলি নির্ভরতার ক্রমে কার্যকর করা যায়।

15. Hive-এ SORT BY, ORDER BY, DISTRIBUTE BY এবং CLUSTER BY সম্পর্কে ব্যাখ্যা কর।

বাছাই করুন - প্রতিটি 'N' রিডুসারে ডেটা অর্ডার করা হয় যেখানে রিডিউসারগুলির ডেটার ওভারল্যাপিং পরিসীমা থাকতে পারে।

ORDER BY- এটি এসকিউএল ক্যোয়ারীতে ORDER BY-এর মতো যেখানে ডেটার মোট অর্ডারিং একটি একক রিডুসারে পাঠানো হয়।

ডিস্ট্রিবিউট বাই - এটি সারিগুলিকে হ্রাসকারীদের মধ্যে বিতরণ করতে ব্যবহৃত হয়। যে সারিগুলি কলাম দ্বারা একই বন্টন আছে সেগুলি একই রিডুসারে যাবে৷

CLUSTER BY- এটি DISTRIBUTE BY এবং SORT BY এর সংমিশ্রণ যেখানে প্রতিটি N রিডিউসার একটি অ-ওভারল্যাপিং ডেটার পরিসীমা পায় যা পরবর্তীতে সংশ্লিষ্ট রিডুসারে সেই ব্যাপ্তি অনুসারে সাজানো হয়।

16. স্থানীয় এবং দূরবর্তী মেটাস্টোরের মধ্যে পার্থক্য কী?

স্থানীয় মেটাস্টোর: এটি এমবেডেড মেটাস্টোর কনফিগারেশন পরিষেবা যা একই JVM-এ চলে যেখানে Hive পরিষেবা চলছে এবং একটি পৃথক JVM-এ চলমান একটি ডাটাবেসের সাথে সংযোগ করে।

রিমোট মেটাস্টোর: এই কনফিগারেশনে, মেটাস্টোর পরিষেবাটি হাইভ পরিষেবা JVM-তে নয় বরং নিজস্ব পৃথক JVM-এ চলে।

17. HDFS ফাইল পড়তে ও লিখতে Hive-এ কোন ক্লাস ব্যবহার করা হয়?

এইচডিএফএস ফাইলগুলি পড়তে এবং লিখতে হাইভ দ্বারা নিম্নলিখিত ক্লাসগুলি ব্যবহার করা হয়:

  • TextInputFormat/HiveIgnoreKeyTextOutputFormat: এই 2টি ক্লাস প্লেইন টেক্সট ফাইল ফরম্যাটে ডেটা রিড/রাইট করে।
  • SequenceFileInputFormat/SequenceFileOutputFormat: এই 2টি ক্লাস হ্যাডুপ সিকোয়েন্সফাইল ফরম্যাটে ডেটা রিড/রাইট করে।

18. অবজেক্ট ইন্সপেক্টরের কার্যকারিতা ব্যাখ্যা কর।

অবজেক্ট ইন্সপেক্টর সারি অবজেক্টের অভ্যন্তরীণ গঠন এবং হাইভের কলামের স্বতন্ত্র কাঠামো বিশ্লেষণ করতে সহায়তা করে। এটি জটিল বস্তুগুলি অ্যাক্সেস করার জন্য একটি অভিন্ন উপায়ও প্রদান করে যা মেমরিতে একাধিক ফর্ম্যাটে সংরক্ষণ করা যেতে পারে।

  • জাভা ক্লাসের একটি উদাহরণ।
  • একটি আদর্শ জাভা অবজেক্ট।
  • একটি অলসভাবে শুরু করা বস্তু

অবজেক্ট ইন্সপেক্টর অবজেক্টের গঠন এবং অবজেক্টের অভ্যন্তরীণ ক্ষেত্রগুলি অ্যাক্সেস করার উপায়ও বলে।

19. Hive-এ ObjectInspector কার্যকারিতা কি?

Hive সারি এবং কলাম ডেটা টাইপের অভ্যন্তরীণ গঠন বিশ্লেষণ করতে ObjectInspector ব্যবহার করে। অতিরিক্তভাবে আমাদের অবজেক্টের অভ্যন্তরীণ ক্ষেত্রগুলি অ্যাক্সেস করার উপায় দেয়। এটি শুধুমাত্র int, bigint, STRING এর মতো সাধারণ ডেটা-টাইপগুলি প্রক্রিয়া করে না, বরং অ্যারে, মানচিত্র, স্ট্রাকট এবং ইউনিয়নের মতো জটিল ডেটা-টাইপগুলিকেও প্রক্রিয়া করে৷

20. প্রশ্নগুলি দ্রুত সম্পাদনে কীভাবে বালতি সাহায্য করে?

এই ধরনের হাইভ ইন্টারভিউ প্রশ্ন ও উত্তর হল প্রার্থীকে অত্যাবশ্যক হাইভ সাপোর্ট, হাইভ কোয়েরি ল্যাঙ্গুয়েজ এবং হাইভ ইনডেক্সের সাথে পরিচিত করা।

আপনি যদি দুটি বড় টেবিল যোগদান করতে হয়, আপনি একটি কম সাইড যোগদানের জন্য যেতে পারেন. কিন্তু যদি উভয় টেবিলে একই সংখ্যক বালতি বা বালতিগুলির একই গুণিতক থাকে এবং একই কলামে বাছাই করা হয় তবে SMBMJ এর একটি সম্ভাবনা রয়েছে যেখানে সমস্ত যোগ সংশ্লিষ্ট বালতিগুলিকে মেলানোর মাধ্যমে মানচিত্র পর্বেই ঘটে।

বিভিন্ন বৈশিষ্ট্য রয়েছে যা আপনাকে বালতি মানচিত্র যোগদানের জন্য সেট করতে হবে এবং সেগুলি নিম্নরূপ:

সেট hive.enforce.sort মার্জ বালতি মানচিত্র যোগদান = মিথ্যা; সেট hive.auto.convert.sortmerge.join = মিথ্যা; সেট hive.optimize.bucketmapjoin = সত্য; সেট hive.optimize.bucketmapjoin.sortedmerge = সত্য

শীর্ষ হাইভ ইন্টারভিউ প্রশ্ন এবং উত্তর

21. মৌচাকের টেবিল থেকে * নির্বাচন চালালে ম্যাপরিডুস কেন চলবে না?

আপনি যখন থেকে * একটি নির্বাচন করেন, তখন Hive একটি ম্যাপপ্রেডুস টাস্কের পরিবর্তে একটি FetchTask হিসাবে ফাইল থেকে পুরো ডেটা নিয়ে আসে যা এটিতে কিছু না করেই ডেটা ডাম্প করে। এটি hadoop dfs -text এর অনুরূপ। যাইহোক, সিলেক্ট ফ্রম ব্যবহার করার সময়, Hive-এর একটি ম্যাপ-রিডুস কাজ প্রয়োজন কারণ এটি লোড করা ফাইল থেকে পার্স করে প্রতিটি সারি থেকে 'কলাম' বের করতে হবে।

22. হাইভ মেটাস্টোর কি?

Hive MetaStore হল Hive-এর একটি কেন্দ্রীয় সংগ্রহস্থল, যা বহিরাগত ডাটাবেসে মেটাডেটা সংরক্ষণ করতে দেয়। Hive স্টোরের ডিফল্ট অবস্থান একটি এমবেডেড ডার্বি ডাটাবেস উদাহরণে মেটাডেটা, তবে আপনি এটি MySql-এ সংরক্ষণ করতে পারেন, ওরাকল প্রকল্পের উপর নির্ভর করে।

23. তিনটি ভিন্ন মোড কি কি যাতে আমবাত চালানো যায়?

  • স্থানীয় মোড
  • বিতরণ মোড
  • ছদ্ম বিতরণ মোড

24. কিভাবে আপনি একটি বড় কাজ দীর্ঘ সময়ের জন্য চালানো থেকে প্রতিরোধ করতে পারেন?

এটি কঠোর মোডে চালানোর জন্য MapReduce কাজ সেট করে hive.mapred.mode=strict সেট করে অর্জন করা যেতে পারে। কঠোর মোড নিশ্চিত করে যে নির্দিষ্ট পার্টিশন টেবিলের প্রশ্নগুলি, WHERE ক্লজ সংজ্ঞায়িত না করে চালানো যাবে না।

25. কখন আমরা Hive-এ explode ব্যবহার করি?

Hadoop বিকাশকারীরা কখনও কখনও ইনপুট হিসাবে একটি অ্যারে নেয় এবং একটি পৃথক টেবিল সারিতে রূপান্তর করে। জটিল ডেটা টাইপকে পছন্দসই টেবিল ফরম্যাটে রূপান্তর করতে, হাইভ এক্সপ্লোড ব্যবহার করে।

26. হাইভ আর্কিটেকচারের বিভিন্ন উপাদান কি কি?

হাইভ আর্কিটেকচার একটি নিয়ে গঠিত:

  • ইউজার ইন্টারফেস – হাইভ আর্কিটেকচারের UI উপাদান ড্রাইভারকে এক্সিকিউট ইন্টারফেস কল করে।
  • ড্রাইভার - ড্রাইভার ক্যোয়ারীতে একটি সেশন হ্যান্ডেল তৈরি করে এবং এটির জন্য একটি এক্সিকিউশন প্ল্যান তৈরি করতে কম্পাইলারের কাছে ক্যোয়ারী পাঠায়।
  • মেটাস্টোর - মেটাডেটা রিকোয়েস্ট প্রাপ্ত করার জন্য ক্যোয়ারী চালানোর জন্য কম্পাইলারের কাছে মেটাডেটা পাঠায়।
  • কম্পাইলার- কম্পাইলার এক্সিকিউশন প্ল্যান তৈরি করে যা পর্যায়গুলির একটি DAG যেখানে প্রতিটি স্টেজ হয় একটি মেটাডেটা অপারেশন, একটি ম্যাপ বা কম কাজ বা HDFS-এ একটি অপারেশন।
  • এক্সিকিউট ইঞ্জিন- এক্সিকিউশন ইঞ্জিন কম্পাইলার দ্বারা উত্পন্ন এক্সিকিউশন প্ল্যানের বিভিন্ন পর্যায়ের মধ্যে নির্ভরতা পরিচালনা করে প্রাসঙ্গিক উপাদানগুলিতে এই প্রতিটি ধাপ জমা দেওয়ার জন্য দায়ী।

27. যদি আপনি Hive একটি সার্ভার হিসাবে চালান তাহলে আপনি কিভাবে একটি অ্যাপ্লিকেশন সংযোগ করতে পারেন?

একটি সার্ভার হিসাবে Hive চালানোর সময়, অ্যাপ্লিকেশনটি 3টির মধ্যে একটি উপায়ে সংযুক্ত করা যেতে পারে-

  • ODBC ড্রাইভার-এটি ODBC প্রোটোকল সমর্থন করে
  • JDBC ড্রাইভার- এটি JDBC প্রোটোকল সমর্থন করে
  • থ্রিফট ক্লায়েন্ট- এই ক্লায়েন্টটি পিএইচপি, পাইথন, জাভা, সি++ এবং রুবি-র মতো বিভিন্ন প্রোগ্রামিং ভাষা ব্যবহার করে সমস্ত হাইভ কমান্ডে কল করতে ব্যবহার করা যেতে পারে।

28. আমরা কি একটি ভিউতে ডেটা লোড করতে পারি?

না। একটি ভিউ একটি INSERT বা LOAD স্টেটমেন্টের লক্ষ্য হতে পারে না।

29. হাইভে 100টি নোড থাকলে কি 100টি নোড যোগ করা সম্ভব? যদি হ্যাঁ, কিভাবে?

হ্যাঁ, আমরা নিচের ধাপগুলো অনুসরণ করে নোড যোগ করতে পারি:

  • ধাপ 1: একটি নতুন সিস্টেম নিন; একটি নতুন ব্যবহারকারীর নাম এবং পাসওয়ার্ড তৈরি করুন
  • ধাপ 2: SSH ইনস্টল করুন এবং মাস্টার নোড সেটআপের সাথে SSH সংযোগগুলি
  • ধাপ 3: অনুমোদিত_কি ফাইলে ssh public_rsa id কী যোগ করুন
  • ধাপ 4: /etc/hosts স্লেভ ফাইলে নতুন DataNode হোস্টনেম, IP ঠিকানা এবং অন্যান্য বিবরণ যোগ করুন: 192.168.1.102 slave3.in slave3
  • ধাপ 5: একটি নতুন নোডে DataNode শুরু করুন
  • ধাপ 6: নতুন নোডে লগইন করুন যেমন suhadoop বা: ssh -X hadoop@192.168.1.103
  • ধাপ 7: নিম্নলিখিত কমান্ডটি ব্যবহার করে নতুন যোগ করা স্লেভ নোডের HDFS শুরু করুন: ./bin/hadoop-daemon.sh start data node
  • ধাপ 8: নতুন নোডে jps কমান্ডের আউটপুট পরীক্ষা করুন

30. Hive কোন ধরনের ডেটা ফরম্যাট প্রক্রিয়া করতে পারে?

এটি সাধারণ মৌচাকের সাক্ষাত্কারের প্রশ্নগুলির মধ্যে একটি।

হ্যাঁ, Hive IO অপারেশনের জন্য SerDe ইন্টারফেস ব্যবহার করে। বিভিন্ন SerDe ইন্টারফেস যেকোনো ধরনের ডেটা পড়তে এবং লিখতে পারে। যদি স্বাভাবিক সরাসরি ডেটা প্রক্রিয়া করে যেখানে বিভিন্ন ধরনের ডেটা Hadoop-এ থাকে, Hive এই ধরনের ডেটা প্রক্রিয়া করার জন্য একটি ভিন্ন SerDe ইন্টারফেস ব্যবহার করে।

আরো দেখুন শীর্ষ 100 জাভাস্ক্রিপ্ট ইন্টারভিউ প্রশ্ন এবং উত্তর

31. আপনি কিভাবে একটি পার্টিশনকে জিজ্ঞাসা করা থেকে থামাতে পারেন?

আপনি ALTER TABLE স্টেটমেন্টের সাথে ENABLE অফলাইন ক্লজ ব্যবহার করে প্রশ্ন করা থেকে পার্টিশনকে থামাতে পারেন।

32. Hive ভেরিয়েবল কি? আমরা এটা কি জন্য ব্যবহার করব?

Hive ভেরিয়েবলগুলি মূলত Hive পরিবেশে তৈরি করা হয় যা Hive স্ক্রিপ্টিং ভাষা দ্বারা উল্লেখ করা হয়। ক্যোয়ারী কার্যকর করা শুরু হলে তারা হাইভ কোয়েরিতে কিছু মান পাস করার অনুমতি দেয়। তারা সোর্স কমান্ড ব্যবহার করে।

33. Apache Hive-এ SerDe কি?

একটি SerDe একটি সিরিয়ালাইজার Deserializer জন্য একটি সংক্ষিপ্ত নাম. Hive বাহ্যিক টেবিল থেকে ডেটা পড়তে এবং লিখতে Hive ব্যবহার করে SerDe। Hive এর পিছনে একটি গুরুত্বপূর্ণ ধারণা হল যে এটি Hadoop ফাইল সিস্টেম ফর্ম্যাটের মালিক নয় যেটিতে ডেটা সংরক্ষণ করা হয়৷ ব্যবহারকারীরা তাদের অভিনব যে কোনও সরঞ্জাম/প্রণালী দিয়ে HDFS-এ ফাইলগুলি লিখতে সক্ষম হয় (বহিরাগত টেবিল তৈরি করুন বা ডেটা ইনপ্যাথ লোড করুন,) এবং ব্যবহার করুন৷ Hive সঠিকভাবে সেই ফাইল ফরম্যাটটিকে এমনভাবে পার্স করতে যা Hive ব্যবহার করতে পারে।

34. যখনই আমরা একটি Hive কোয়েরি চালাই, একটি নতুন metastore_db তৈরি হয়। কেন?

একটি স্থানীয় মেটাস্টোর তৈরি হয় যখন আমরা একটি এমবেডেড মোডে Hive চালাই। তৈরি করার আগে, এটি মেটাস্টোরটি বিদ্যমান কিনা তা পরীক্ষা করে এবং এই মেটাস্টোর বৈশিষ্ট্যটি কনফিগারেশন ফাইল, hive-site.xml-এ সংজ্ঞায়িত করা হয়েছে।

প্রপার্টি হল: javax.jdo.option.ConnectionURL ডিফল্ট মান সহ: jdbc:derby:;databaseName=metastore_db;create=true।

অতএব, আমাদের অবস্থানের আচরণকে একটি পরম পথে পরিবর্তন করতে হবে যাতে সেই অবস্থান থেকে মেটাস্টোর ব্যবহার করা যায়।

35. আমরা কি একটি হাইভ টেবিলে একটি কলামের ডিফল্ট অবস্থান ডেটা টাইপ পরিবর্তন করতে পারি?

REPLACE কলাম বিকল্প ব্যবহার করে: ALTER TABLE table_name REPLACE COLUMNS

36. হাইভ কেন HDFS-এ মেটাডেটা তথ্য সংরক্ষণ করে না?

Hive HDFS এর পরিবর্তে RDBMS ব্যবহার করে মেটাস্টোরে মেটাডেটা তথ্য সঞ্চয় করে। RDBMS বেছে নেওয়ার প্রধান কারণ হল কম লেটেন্সি অর্জন করা কারণ HDFS রিড/রাইট অপারেশনগুলি সময়সাপেক্ষ প্রক্রিয়া।

37. Hive কিভাবে ডেটাকে ডিসিরিয়ালাইজ করে এবং সিরিয়ালাইজ করে?

সাধারণত, ডেটা পড়ার/লেখার সময়, ব্যবহারকারী প্রথমে ইনপুটফরম্যাটের সাথে যোগাযোগ করে। তারপর এটি রেকর্ড রিডারের সাথে রেকর্ড পড়তে/লিখতে সংযোগ করে। ডেটা সিরিয়ালাইজ করতে, ডেটা একটি সারিতে যায়। এখানে ক্ষেত্রগুলিতে ডেটা ডিসিরিয়ালাইজ করতে কাস্টম ব্যবহার অবজেক্ট ইন্সপেক্টরকে ডিসিরিয়ালাইজ করা হয়েছে।

38. RegexSerDe কি?

Regex একটি রেগুলার এক্সপ্রেশন বোঝায়। যখনই আপনি প্যাটার্ন ম্যাচিং এর উপর ভিত্তি করে এক ধরণের প্যাটার্ন ম্যাচিং করতে চান, আপনাকে ক্ষেত্রগুলি সংরক্ষণ করতে হবে। RegexSerDe org.apache.hadoop.hive.contrib.serde2.RegexSerDe-এ উপস্থিত।

SerDeproperties-এ, আপনাকে আপনার ইনপুট প্যাটার্ন এবং আউটপুট ক্ষেত্রগুলি সংজ্ঞায়িত করতে হবে। উদাহরণস্বরূপ, আপনি যদি xyz, pq এবং def আলাদাভাবে নিতে চান তাহলে xyz/pq@def লাইন থেকে আপনাকে কলামের মান পেতে হবে।

39. LOAD DATA ক্লজ ব্যবহার করে একটি হাইভ টেবিলে ডেটা লোড করার সময়, আপনি কীভাবে নির্দিষ্ট করবেন যে এটি একটি hdfs ফাইল এবং স্থানীয় ফাইল নয়?

LOAD DATA বিবৃতিতে স্থানীয় ক্লজ বাদ দিয়ে।

40. Hive-এ বিভিন্ন ধরনের পার্টিশন সম্পর্কে ব্যাখ্যা কর?

Hive-এ বিভাজন প্রক্রিয়াকরণের গতি বাড়ানোর জন্য প্রশ্নগুলি চালানোর সময় ডেটা ছাঁটাই করতে সাহায্য করে। স্ট্যাটিক পার্টিশনে, পার্টিশনের নাম সন্নিবেশ বিবৃতিতে হার্ডকোড করা হয় যেখানে, একটি গতিশীল পার্টিশনে, Hive স্বয়ংক্রিয়ভাবে পার্টিশন ক্ষেত্রের মানের উপর ভিত্তি করে পার্টিশনটিকে চিহ্নিত করে।

শীর্ষ হাইভ ইন্টারভিউ প্রশ্ন এবং উত্তর

41. টেবিল নামানোর সময় ‘IF EXISTS clause’-এর তাৎপর্য কী?

আমরা যখন DROP TABLE IF EXISTS table_name কমান্ডটি জারি করি, তখন Hive একটি ত্রুটি ছুড়ে দেয় যদি ড্রপ করা টেবিলটি প্রথম স্থানে না থাকে।

42. কিভাবে হাইভ ম্যাপরিডুস এড়াতে পারে?

যদি আমরা প্রপার্টি hive.exec.mode.local.auto ট্রুতে সেট করি তাহলে hive ক্যোয়ারী ফলাফল আনতে ম্যাপরিডুস এড়াবে।

43. MapReduce এবং Hive এর মধ্যে সম্পর্ক কি? বা কিভাবে Mapreduce চাকরি ক্লাস্টারে জমা হয়?

হাইভ MapReduce-এ কোন অতিরিক্ত ক্ষমতা প্রদান করে না। প্রোগ্রামগুলি দোভাষীর মাধ্যমে MapReduce কাজ হিসাবে সম্পাদিত হয়। ইন্টারপ্রেটার একটি ক্লায়েন্ট মেশিনে চলে যা HiveQL প্রশ্নগুলিকে MapReduce চাকরিতে পরিণত করে। ফ্রেমওয়ার্ক সেই কাজগুলিকে ক্লাস্টারে জমা দেয়।

44. অবজেক্ট ইন্সপেক্টর কার্যকারিতা কি?

Hive সারি অবজেক্টের অভ্যন্তরীণ গঠন এবং পৃথক কলামের গঠন বিশ্লেষণ করতে ObjectInspector ব্যবহার করে। অবজেক্ট ইন্সপেক্টর জটিল বস্তুগুলি অ্যাক্সেস করার জন্য একটি অভিন্ন উপায় প্রদান করে যা মেমরিতে একাধিক ফর্ম্যাটে সংরক্ষণ করা যেতে পারে, যার মধ্যে রয়েছে:

একটি জাভা ক্লাসের উদাহরণ (থ্রিফট বা নেটিভ জাভা):

  • একটি স্ট্যান্ডার্ড জাভা অবজেক্ট (আমরা স্ট্রাকট এবং অ্যারে প্রতিনিধিত্ব করতে java.util.List ব্যবহার করি এবং মানচিত্র উপস্থাপন করতে java.util.Map ব্যবহার করি)।
  • একটি অলসভাবে শুরু করা অবজেক্ট (উদাহরণস্বরূপ, প্রতিটি ক্ষেত্রের জন্য অফসেট শুরু করার সাথে একটি একক জাভা স্ট্রিং অবজেক্টে সঞ্চিত স্ট্রিং ক্ষেত্রগুলির একটি কাঠামো) একটি জটিল বস্তুকে অবজেক্ট ইন্সপেক্টর এবং জাভা অবজেক্টের জোড়া দ্বারা উপস্থাপন করা যেতে পারে। অবজেক্ট ইন্সপেক্টর আমাদেরকে শুধুমাত্র অবজেক্টের গঠনই বলে না, কিন্তু আমাদের অবজেক্টের অভ্যন্তরীণ ক্ষেত্রগুলি অ্যাক্সেস করার উপায়ও দেয়।

45. ধরুন যে আমি লেনদেন আইডি এবং লেনদেনের অবস্থা সহ সিস্টেমে সমস্ত খোলা এবং বাতিল লেনদেন নিরীক্ষণ করতে চাই। এই Apache Hive ব্যবহার করে অর্জন করা যেতে পারে?

Hive 0.13.0 এবং তার উপরে সংস্করণ সমর্থন SHOW TRANSACTIONS কমান্ড যা প্রশাসকদের বিভিন্ন হাইভ লেনদেন নিরীক্ষণ করতে সাহায্য করে।

46. ​​একটি পার্টিশন আর্কাইভ করা যেতে পারে? সুবিধা এবং অসুবিধা সমূহ কি কি?

হ্যাঁ. একটি পার্টিশন আর্কাইভ করা যেতে পারে। সুবিধা হল এটি নামনোডে সংরক্ষিত ফাইলের সংখ্যা হ্রাস করে এবং হাইভ ব্যবহার করে সংরক্ষণাগারভুক্ত ফাইলটি জিজ্ঞাসা করা যেতে পারে। অসুবিধা হল এটি কম দক্ষ প্রশ্নের কারণ হবে এবং কোন স্থান সঞ্চয় অফার করে না।

47. Hive টেবিলের সংরক্ষণাগার কি HDFS-এ স্থান বাঁচায়?

না। এটি শুধুমাত্র ফাইলের সংখ্যা কমিয়ে দেয় যা নাম নোড পরিচালনা করা সহজ হয়ে যায়।

48. হাইভ কি রেকর্ড লেভেল সন্নিবেশ, মুছে বা আপডেট সমর্থন করে?

Hive রেকর্ড-স্তরের আপডেট, সন্নিবেশ বা মুছে দেয় না। এখন থেকে, Hive লেনদেন প্রদান করে না। যাইহোক, ব্যবহারকারীরা উপরের DML ক্রিয়াকলাপগুলিকে সন্তুষ্ট করতে Hive-এর বিল্ট-ইন ফাংশন CASE স্টেটমেন্টের সাথে যেতে পারেন। সুতরাং, একটি RDBMS-এ একটি জটিল আপডেট কোয়েরির জন্য Hive-এ কোডের অনেক লাইনের প্রয়োজন হতে পারে।

49. হাইভ টেক্সট ফাইলের জন্য ডিফল্ট রেকর্ড এবং ফিল্ড ডিলিমিটার কি ব্যবহার করা হয়?

এটি বিরল মৌচাকের সাক্ষাৎকারের প্রশ্নগুলির মধ্যে একটি। ডিফল্ট রেকর্ড ডিলিমিটার হল − । এবং ক্ষেত্রের সীমানা হল − 01,02,03।

50. একটি টেবিলের স্ট্যাটিক এবং ডাইনামিক পার্টিশনের মধ্যে পার্থক্য কী?

ফ্রেশারদের জন্য এই ধরনের হাইভ ইন্টারভিউ প্রশ্ন স্যুট।

একটি প্রশ্নের সময় ডেটা ছাঁটাই করতে, একটি পার্টিশন ক্যোয়ারী সময় কমিয়ে দিতে পারে। টেবিলে ডেটা ঢোকানো হলে পার্টিশন তৈরি হয়। একটি স্ট্যাটিক পার্টিশন পৃথক সারি সন্নিবেশ করতে পারে যেখানে একটি গতিশীল পার্টিশন একটি নির্দিষ্ট কলামের উপর ভিত্তি করে পুরো টেবিলটি প্রক্রিয়া করতে পারে। যেকোনো (স্ট্যাটিক, ডাইনামিক) পার্টিশন তৈরি করতে অন্তত একটি স্ট্যাটিক পার্টিশন প্রয়োজন। আপনি যদি একটি বড় ডেটাসেট পার্টিশন করছেন, তাহলে একটি ETL ফ্লো ডায়নামিক পার্টিশন করার পরামর্শ দেওয়া হয়।

51. কেন আমরা হাইভে পার্টিশন করি?

একটি Hive টেবিলে, পার্টিশন গ্রানুলারিটি প্রদান করে। তাই, পুরো ডেটাসেটের পরিবর্তে শুধুমাত্র প্রাসঙ্গিক বিভাজিত ডেটা স্ক্যান করার মাধ্যমে এটি ক্যোয়ারী লেটেন্সি কমিয়ে দেয়।

52. কীভাবে পার্টিশনিং প্রশ্নগুলির দ্রুত সম্পাদনে সাহায্য করে?

পার্টিশনের সাহায্যে, পার্টিশন করা কলামের নামে একটি সাব-ডিরেক্টরি তৈরি করা হবে এবং যখন আপনি WHERE ক্লজ ব্যবহার করে একটি ক্যোয়ারী করবেন, তখন পুরো টেবিলটি স্ক্যান করার পরিবর্তে শুধুমাত্র নির্দিষ্ট সাবডিরেক্টরিটি স্ক্যান করা হবে। এটি আপনাকে কোয়েরি দ্রুত সম্পাদন করে।

53. আপনি কিছু সাধারণভাবে ব্যবহৃত Hive পরিষেবার তালিকা করতে পারেন?

  • কমান্ড লাইন ইন্টারফেস (cli)
  • হাইভ ওয়েব ইন্টারফেস (hwi)
  • HiveServer (হাইভসার্ভার)
  • rcfilecat টুল ব্যবহার করে একটি RC ফাইলের বিষয়বস্তু মুদ্রণ করা।
  • জার
  • মেটাস্টোর

54. ডিফল্ট সর্বোচ্চ গতিশীল পার্টিশন কি যা একটি ম্যাপার/রিডুসার দ্বারা তৈরি করা যেতে পারে? আপনি কিভাবে এটি পরিবর্তন করতে পারেন?

ডিফল্টরূপে, একটি ম্যাপার বা রিডিউসার দ্বারা তৈরি করা যেতে পারে এমন সর্বাধিক পার্টিশনের সংখ্যা 100 এ সেট করা হয়েছে। নিম্নলিখিত কমান্ডটি জারি করে কেউ এটি পরিবর্তন করতে পারে:

সেট hive.exec.max.dynamic.partitions.pernode = .

55. কেন আমাদের বালতি দরকার?

মূলত, একটি পার্টিশনে বাকেটিং করার জন্য দুটি প্রধান কারণ রয়েছে:

  • একটি মানচিত্র সাইড যোগদানের জন্য একই পার্টিশনে উপস্থিত থাকার জন্য একটি অনন্য যোগ কী-এর ডেটা প্রয়োজন।
  • এটা আমাদের ক্যোয়ারী সময় কমাতে অনুমতি দেয়. এছাড়াও, নমুনা প্রক্রিয়া আরও দক্ষ করে তোলে।

56. আমরা কি ভিউগুলিকে হাইভ টেবিলের নামের মতো নাম দিতে পারি?

না। একটি ভিউয়ের নাম অবশ্যই অন্য সব টেবিলের তুলনায় অনন্য হতে হবে এবং একই ডাটাবেসে উপস্থিত ভিউ হিসেবে।

57. হাইভ সার্ভারে অ্যাপ্লিকেশন সংযুক্ত করার ক্ষেত্রে কোন বিকল্পগুলি উপলব্ধ?

তিনটি ভিন্ন উপায় ব্যাখ্যা করুন (থ্রিফট ক্লায়েন্ট, জেডিবিসি ড্রাইভার এবং ওডিবিসি ড্রাইভার) আপনি হাইভ সার্ভারে অ্যাপ্লিকেশনগুলিকে সংযুক্ত করতে পারেন। আপনি প্রতিটি বিকল্পের উদ্দেশ্য ব্যাখ্যা করতে চাইবেন: উদাহরণস্বরূপ, JDBC ব্যবহার করে JDBC প্রোটোকল সমর্থন করবে।

58. কখন আমাদের ORDER BY এর পরিবর্তে SORT BY ব্যবহার করা উচিত?

ORDER BY সত্ত্বেও আমাদের SORT BY ব্যবহার করা উচিত। বিশেষ করে যখন আমাদের বিশাল ডেটাসেট বাছাই করতে হবে। কারণ হল যে SORT BY ধারা একাধিক রিডুসার ব্যবহার করে ডেটা সাজায়। একটি একক রিডুসার ব্যবহার করে সমস্ত ডেটা একসাথে সাজানোর জন্য অর্ডার করুন৷ তাই, ORDER BY ব্যবহার করে প্রচুর সংখ্যক ইনপুট কার্যকর করতে অনেক সময় লাগবে।

59. Hive Explode এর ব্যবহার কি কি?

Hadoop বিকাশকারীরা একটি অ্যারেকে তাদের ইনপুট হিসাবে বিবেচনা করে এবং এটিকে একটি পৃথক টেবিল সারিতে রূপান্তর করে। জটিল ডেটা প্রকারগুলিকে পছন্দসই টেবিল বিন্যাসে রূপান্তর করতে, হাইভ এক্সপ্লোড ব্যবহার করে।

60. আমরা কি Hive থেকে UNIX শেল কমান্ড চালাতে পারি? হাইভ প্রশ্ন স্ক্রিপ্ট ফাইল থেকে নির্বাহ করা যেতে পারে? যদি হ্যাঁ, কিভাবে?

এই ধরনের হাইভ ইন্টারভিউ প্রশ্ন ও উত্তরগুলি মাঝারি গুরুত্বের। হ্যাঁ, আমরা কমান্ডের আগে একটি '!' চিহ্ন ব্যবহার করে Hive থেকে UNIX শেল কমান্ড চালাতে পারি। উদাহরণস্বরূপ, Hive প্রম্পটে !pwd বর্তমান ডিরেক্টরি প্রদর্শন করবে। আমরা সোর্স কমান্ড ব্যবহার করে স্ক্রিপ্ট ফাইল থেকে Hive প্রশ্নগুলি চালাতে পারি।

আরো দেখুন শীর্ষ 100 উত্তরযোগ্য ইন্টারভিউ প্রশ্ন এবং উত্তর

শীর্ষ হাইভ ইন্টারভিউ প্রশ্ন এবং উত্তর

61. কিভাবে ORC ফাইল ফরম্যাট ডেটা স্টোরেজ এবং বিশ্লেষণের জন্য অপ্টিমাইজ করা হয়?

ORC সারিগুলির সংগ্রহ একটি ফাইলে সংরক্ষণ করে এবং সংগ্রহের মধ্যে সারি ডেটা একটি কলামার বিন্যাসে সংরক্ষণ করা হবে। কলামার বিন্যাসের সাথে, এটি সংকুচিত করা খুব সহজ, এইভাবে অনেক স্টোরেজ খরচ কমিয়ে দেয়। এছাড়াও অনুসন্ধান করার সময়, এটি পুরো সারিটি অনুসন্ধান করার পরিবর্তে নির্দিষ্ট কলামটি অনুসন্ধান করে কারণ রেকর্ডগুলি কলামার বিন্যাসে সংরক্ষণ করা হয়। ORC পরিসংখ্যান ন্যূনতম, সর্বোচ্চ, যোগফল, কলামের গণনার উপর ভিত্তি করে প্রতিটি ব্লকে সূচী করেছে তাই আপনি যখন প্রশ্ন করবেন তখন এটি সূচীকরণের উপর ভিত্তি করে ব্লকগুলি এড়িয়ে যাবে।

62. অভ্যন্তরীণ এবং বহিরাগত টেবিলের মধ্যে পার্থক্য কি?

  • অভ্যন্তরীণ টেবিল: মেটাস্টোর এবং প্রকৃত ডেটা উভয়ই স্থানীয় সিস্টেমে সংরক্ষিত। যেকোনো পরিস্থিতিতে, ডেটা হারিয়ে যাবে, প্রকৃত ডেটা এবং মেটা স্টোরেজ উভয়ই হারিয়ে যাবে।
  • বাহ্যিক টেবিল: স্কিমা ডাটাবেসে সংরক্ষণ করা হয়। Hive টেবিলে সংরক্ষিত প্রকৃত তথ্য। যদি বহিরাগত টেবিলে ডেটা হারিয়ে যায়, তবে এটি শুধুমাত্র মেটাস্টোর হারায়, কিন্তু প্রকৃত ডেটা নয়।

63. Hive-এ বিভিন্ন প্রকার যোগদান ব্যাখ্যা কর।

HiveQL এর 4 টি বিভিন্ন ধরণের যোগ রয়েছে -

  • JOIN- আউটার জয়েন-এর মতো এসকিউএল
  • সম্পূর্ণ বাইরের যোগদান - বাম এবং ডান উভয় বাইরের টেবিলের রেকর্ড একত্রিত করে যা যোগদানের শর্ত পূরণ করে।
  • বাম বাইরের যোগদান- ডান টেবিলে কোনো মিল না থাকলেও বাম টেবিল থেকে সমস্ত সারি ফেরত দেওয়া হয়।
  • ডান বাইরের যোগদান- বাম টেবিলে কোনো মিল না থাকলেও ডান টেবিলের সমস্ত সারি ফেরত দেওয়া হয়।

64. হাইভের মেটাস্টোর কি?

এটি একটি রিলেশনাল ডাটাবেস যা হাইভ টেবিল, পার্টিশন, হাইভ ডাটাবেস ইত্যাদির মেটাডেটা সংরক্ষণ করে।

65. Apache Hive-এ কোয়েরি প্রসেসরের কার্যকারিতা কী?

এই উপাদানটি রূপান্তরের জন্য প্রক্রিয়াকরণ কাঠামো বাস্তবায়ন করে এসকিউএল ম্যাপ/কমানোর কাজের গ্রাফ এবং নির্ভরতার ক্রমে সেই কাজগুলি চালানোর জন্য কার্যকর করার সময় কাঠামোতে।

66. Hcatalog এর ব্যবহার কি?

বাহ্যিক সিস্টেমের সাথে তথ্য কাঠামো ভাগ করার জন্য Hcatalog ব্যবহার করা যেতে পারে। Hcatalog হ্যাডুপে অন্যান্য ডিভাইসের ক্লায়েন্টদের হাইভ মেটা-স্টোরে অ্যাক্সেস দেয় এই লক্ষ্যে যে তারা হাইভ ডেটা গুদামে তথ্য পড়তে এবং রচনা করতে পারে।

67. আপনি কিভাবে Hive কর্মক্ষমতা অপ্টিমাইজ করবেন?

হাইভ কোয়েরিগুলি দ্রুত চালানোর বিভিন্ন উপায় রয়েছে -

  • Apache Tez এক্সিকিউশন ইঞ্জিন ব্যবহার করা হচ্ছে
  • ভেক্টরাইজেশন ব্যবহার করে
  • ORCFILE ব্যবহার করে
  • খরচ ভিত্তিক ক্যোয়ারী অপ্টিমাইজেশান না.

68. এমবেডেড হাইভের ক্ষেত্রে, একই মেটাস্টোর কি একাধিক ব্যবহারকারী ব্যবহার করতে পারে?

আমরা শেয়ারিং মোডে মেটাস্টোর ব্যবহার করতে পারি না। পোস্টগ্রেএসকিউএল এবং মাইএসকিউএল-এর মতো স্বতন্ত্র বাস্তব ডেটাবেস ব্যবহার করার পরামর্শ দেওয়া হচ্ছে।

69. কখন মানচিত্র হ্রাস মোড ব্যবহার করবেন?

ম্যাপ-রিডুস মোড ব্যবহার করা হয় যখন: – এটি প্রচুর পরিমাণে ডেটা সেট এবং ক্যোয়ারী একটি সমান্তরাল উপায়ে সঞ্চালন করবে – Hadoop এর একাধিক ডেটা নোড রয়েছে এবং ডেটা বিভিন্ন নোড জুড়ে বিতরণ করা হয় যা আমরা এই মোডে Hive ব্যবহার করি – প্রক্রিয়াকরণ ভাল কর্মক্ষমতা সহ বড় ডেটা সেট অর্জন করা প্রয়োজন

70. Hive-এ থ্রিফ্ট সার্ভার এবং ক্লায়েন্ট, JDBC এবং ODBC ড্রাইভারের গুরুত্ব কী?

থ্রিফট হল একটি ক্রস-ল্যাঙ্গুয়েজ RPC ফ্রেমওয়ার্ক যা কোড তৈরি করে এবং একটি সফ্টওয়্যার স্ট্যাককে একত্রিত করে অবশেষে একটি দূরবর্তী সার্ভারে থ্রিফ্ট কোড চালানো। থ্রিফ্ট কম্পাইলার সার্ভার এবং ক্লায়েন্টের মধ্যে একটি দোভাষী হিসাবে কাজ করে। থ্রিফ্ট সার্ভার একটি দূরবর্তী ক্লায়েন্টকে পাইথন, রুবি এবং স্কালার মতো বিভিন্ন প্রোগ্রামিং ভাষা ব্যবহার করে হাইভের কাছে একটি অনুরোধ জমা দেওয়ার অনুমতি দেয়।

JDBC ড্রাইভার: একটি JDBC ড্রাইভার হল একটি সফ্টওয়্যার উপাদান যা একটি জাভা অ্যাপ্লিকেশনকে একটি ডাটাবেসের সাথে ইন্টারঅ্যাক্ট করতে সক্ষম করে।

ODBC ড্রাইভার: ODBC অ্যাপ্লিকেশন এবং DBMS-এর মধ্যে অনুবাদ স্তর হিসাবে একটি ODBC ড্রাইভার ব্যবহার করে DBMS স্বাধীনতা অর্জন করে।

71. Hive এর মেটাডেটা সংরক্ষণের জন্য ডিফল্ট ডাটাবেস কি?

ডার্বি হল ডিফল্ট ডাটাবেস। এটি হাইভের একটি এমবেডেড মেটাস্টোর। আমরা মেটাস্টোরের জন্য যেকোনো ডিফল্ট ডাটাবেস ব্যবহার করার জন্য এটি কনফিগার করতে পারি।

72. Hive-এ ডিফল্ট এক্সিকিউশন ইঞ্জিন কি?

Map Reduce হল ডিফল্ট এক্সিকিউশন ইঞ্জিন।

73. হাইভে এক্সিকিউশন ইঞ্জিন কিভাবে পরিবর্তন করবেন?

  • SET hive.execution.engine = tez

74. Hive-এর কোন উপাদানটি প্রশ্ন সম্পাদনের জন্য Hadoop ক্লাস্টারের সাথে সংযোগ করে?

এক্সিকিউশন ইঞ্জিন

75. Hive এর কোন কম্পোনেন্ট এসকিউএল ক্যোয়ারীকে জার ফাইলে রূপান্তরিত করে?

এক্সিকিউশন ইঞ্জিন

76. ক্যোয়ারীটির জন্য এক্সিকিউশন প্ল্যানকে আপনি কিভাবে দেখেন?

ব্যাখ্যা ব্যবহার করুন

|_+_|

77. আপনি বর্তমানে যে ডাটাবেসে কাজ করছেন সেটিকে কীভাবে দেখবেন?

hive.cli.print.current.db = সত্য সেট করুন

|_+_|

78. Hive টেবিলের ডিফল্ট স্টোরেজ অবস্থান কি?

  • /ব্যবহারকারী/হাইভ/গুদাম

79. শুধুমাত্র সেই নির্দিষ্ট হাইভ সেশনের জন্য থাকা উচিত এমন একটি টেবিলের জন্য আপনি কী করবেন?

  • অস্থায়ী টেবিল তৈরি করুন
hive> অস্থায়ী টেবিল t3 তৈরি করুন (col int, col2 স্ট্রিং); ওকেটাইম নেওয়া হয়েছে: 0.047 সেকেন্ড
  • Hive 0.14 পরবর্তী অস্থায়ী টেবিল সমর্থন করে। আপনি একটি ব্যবহারকারী অধিবেশন মধ্যে একটি সাধারণ টেবিল হিসাবে তাদের ব্যবহার করতে পারেন. অবস্থান হবে /tmp/hive//*।

80. Hive অস্থায়ী টেবিলের সীমাবদ্ধতা কি কি?

  • এটি শুধুমাত্র সেই অধিবেশনে উপলব্ধ যেখানে এটি তৈরি করা হয়েছে৷
  • সেশন শেষ হলে স্বয়ংক্রিয়ভাবে সরানো হয়।
  • পার্টিশন কলাম বিকল্পটি অস্থায়ী টেবিলে সমর্থিত নয়।
  • অস্থায়ী টেবিলে সূচী তৈরি করা অনুমোদিত নয়।
  • ব্যবহারকারী অস্থায়ী টেবিলের নাম পরিবর্তন না করে সেই সেশনের সময় অস্থায়ী টেবিলের মতো একই নামের সাথে স্থায়ী টেবিল অ্যাক্সেস করতে পারবেন না।

শীর্ষ হাইভ ইন্টারভিউ প্রশ্ন এবং উত্তর

81. Hive এর বিভিন্ন ধরনের টেবিল কি কি?

  • অস্থায়ী টেবিল
  • পরিচালিত টেবিল
  • বাহ্যিক টেবিল

82. দৃশ্যকল্প: আমাদের একটি ফিড ডেটা Hive টেবিলে সংরক্ষণ করতে হবে এবং এটি ব্যবহারের জন্য প্রকাশ করতে হবে। আপনি কি পদক্ষেপ নিতে হবে?

  • সোর্স টিমের সাথে কথা বলুন এবং ফিড ডেটার স্কিমা তথ্য পান যেমন ডেটা টাইপ, ডেটা সাইজ, ডেটার ভলিউম ইত্যাদি।
  • ব্যবসায়িক দলের সাথে কথা বলুন যারা ডেটা ব্যবহার করতে যাচ্ছে এবং তারা যে অনুসন্ধানের মানদণ্ড ব্যবহার করবে তা খুঁজে বের করুন।
  • উপরের দুটির উপর ভিত্তি করে পার্টিশনিং/বাকেটিং/ইনডেক্সিং ইত্যাদি সহ টেবিল তৈরি করুন।

83. Hive এর ডিফল্ট টার্মিনেটর কি?

  • ফিল্ড টার্মিনেটর -ctrl + A
  • লাইন টার্মিনেটর -

84. আপনি কিভাবে Hive এ টেবিলের স্কিমা তথ্য পাবেন?

বিন্যাস বর্ণনা করুন

85. আমরা কি বিস্তারিত দেখতে ডাটাবেসের জন্য DESCRIBE ব্যবহার করতে পারি?

না, এটা শুধুমাত্র টেবিলের জন্য।

86. কিভাবে আপনি Hive স্ক্রিপ্ট ব্যবহার করে লিনাক্স অবস্থান থেকে Hive টেবিল অবস্থানে ডেটা লোড করবেন?

  • টেবিল txnrecords এ ডেটা স্থানীয় ইনপাথ ‘ /home/hduser/hive/data/txns’ লোড করুন;
  • স্থানীয় ইনপাথ ‘/home/hduser/hive/data/txns’ টেবিল txnrecords এ ওভাররাইট ডেটা লোড করুন;

এটি লিনাক্স থেকে Hive টেবিল অবস্থানে বিষয়বস্তু অনুলিপি করে।

87. Hive স্ক্রিপ্ট ব্যবহার করে আপনি কিভাবে HDFS অবস্থান থেকে Hive টেবিল অবস্থানে ডেটা লোড করবেন?

  • টেবিল txnrecords এ ডেটা ইনপাথ ‘/user/hduser/txns 1’ লোড করুন;
  • টেবিল txnrecords এ ওভাররাইট ইনপাথ ‘/user/hduser/txns 1’ ডেটা লোড করুন;

এটি HDFS অবস্থান থেকে Hive টেবিল অবস্থানে ডেটা স্থানান্তর করে।

88. Hive-এ আপনি কীভাবে রেকর্ডের সারিকে একটি একক বস্তুতে রূপান্তর করবেন?

  • Collect_Set() বা Collect_List() ব্যবহার করুন
  • Collect_Set() সদৃশ অপসারণ করে

89. আপনি কীভাবে ডেটার অ্যারেকে পৃথক সারিতে রূপান্তর করবেন?

  • এক্সপ্লোড অন্য কলামের সাথে ব্যবহার করা যাবে না
  • পার্শ্বীয় দৃশ্য বিস্ফোরিত - অন্যান্য কলাম ব্যবহার করতে পারেন
  • PosExplode - সূচক সহ বিস্ফোরণ

90. Hive এ উপলব্ধ বিভিন্ন ধরনের সূচক কি কি?

  • কমপ্যাক্ট সূচক - উচ্চ কার্ডিনাল কলামে ব্যবহার করুন
  • বিটম্যাপ - নিম্ন কার্ডিনাল কলামে ব্যবহার করুন

91. Hive এ উপলব্ধ বিভিন্ন ধরনের পার্টিশন কি কি?

  • স্ট্যাটিক: কিছু বাহ্যিক কারণের উপর ভিত্তি করে
  • টেবিল স্টুডেন্ট পার্টিশনে স্থানীয় ইনপাথ '/home/hduser/hive/student_details2' ডেটা লোড করুন (কোর্স = হ্যাডুপ)
  • ডাইনামিক: ডেটার উপর ভিত্তি করে
  • hive.exec.dynamic.partition=true সেট করুন;
  • hive.exec.dynamic.partition.mode=nonstrict সেট করুন;
  • টেবিল স্টুড_ডেমোতে ডেটা স্থানীয় ইনপাথ ‘/home/hduser/hive/student_details’ লোড করুন;
  • স্টুডেন্ট_পার্ট পার্টিশনে সন্নিবেশ করুন(কোর্স) স্টুড_ডেমো থেকে আইডি, নাম, বয়স, ইনস্টিটিউট, কোর্স নির্বাচন করুন;

92. পার্টিশনের ক্ষেত্রে Null এবং Empty মানগুলি কোথায় সংরক্ষণ করা হবে?

  • _HIVE_DEFAULT_PARTITIONS dir.

93. পার্টিশন মান কি কেস সংবেদনশীল?

হ্যাঁ

94. আমরা কি LOAD DATA কমান্ড ব্যবহার করে ডাইনামিক পার্টিশন করতে পারি?

না

95. LOAD DATA কমান্ড ব্যবহার করে পার্টিশন ডেটা লোড করলে মেটাডেটা আপডেট করা হবে কিনা?

হ্যাঁ

  • টেবিল স্টুডেন্ট পার্টিশনে ডেটা স্থানীয় ইনপাথ ‘/home/hduser/hive/student_details2’ লোড করুন (course=hadoop);

96. আমরা কি Hive টেবিলে আপডেট এবং মুছে ফেলতে পারি?

  • ডিফল্টরূপে, না.
  • হ্যাঁ যদি লেনদেন সক্ষম করা থাকে এবং টেবিলটি ORC বিন্যাসে এবং বালতিতে থাকে।
  • TBLPROPERTIES ('লেনদেনমূলক' = 'সত্য')
  • hive.enforce.bucketing = সত্য সেট করুন,

সীমাবদ্ধতা:

  • বাহ্যিক টেবিল সমর্থিত নয়
  • শুধুমাত্র ORC বিন্যাস সমর্থিত
  • ACID অনুবাদ টেবিলে লোড সমর্থিত নয়। তাই ইনসার্ট ব্যবহার করুন.
  • লেনদেনমূলক সেশনে, সমস্ত ক্রিয়াকলাপ স্বয়ংক্রিয়ভাবে কমিট হয় কারণ BEGIN, COMMIT এবং ROLLBACK এখনও সমর্থিত নয়৷

97. পার্টিশন কিভাবে ডেটা পরিচালনায় সাহায্য করে?

  • আমরা পার্টিশনটি মুছে দিয়ে সহজেই টেবিল থেকে অংশের ডেটা মুছে ফেলতে পারি।
  • আমরা শুধুমাত্র পার্টিশন ফোল্ডার ডেটা ওভাররাইট করে আপডেট করা মান সহ ডেটার অংশ আপডেট করতে পারি।

98. আপনি কিভাবে একটি ফাইল থেকে মাত্র কয়েকটি ফিল্ড লোড করবেন?

এটি একটি দ্বি-পদক্ষেপ প্রক্রিয়া

  • পরিচালিত টেবিলে সমস্ত ডেটা লোড করুন - ডেটা স্থানীয় ইনপ্যাথ লোড করুন
  • পরিচালিত থেকে বাহ্যিক টেবিলে প্রয়োজনীয় ক্ষেত্র সহ নির্বাচন সন্নিবেশ করুন

99. দৃশ্যকল্প: আমি নিজে একটি পার্টিশন ফোল্ডার তৈরি করেছি এবং এর ভিতরে ডেটা রেখেছি। কিন্তু যখন আমি সেই পার্টিশন মানের জন্য হাইভ টেবিল থেকে প্রশ্ন করি, আমি ডেটা পাচ্ছি না। আমার কি করা উচিৎ?

  • msck মেরামত চালান বা ম্যানুয়ালি পার্টিশন যোগ করুন।
  • এটি হাইভের মেটাস্টোর সামঞ্জস্য পরীক্ষা।

100. দৃশ্যকল্প: আমি পার্টিশন ফোল্ডারের কিছু ম্যানুয়ালি মুছে ফেলেছি এবং তারপর msck মেরামত কার্যকর করেছি, এটি কি মেটাডেটা থেকে পার্টিশনটি সরিয়ে দেবে?

না, আমাদের পার্টিশনটি ম্যানুয়ালি ড্রপ করতে হবে।

হাইভের সাক্ষাত্কারের এই শীর্ষস্থানীয় প্রশ্নগুলি বিশেষভাবে ডিজাইন করা হয়েছে যাতে আপনি হাইভের বিষয়ের জন্য আপনার সাক্ষাত্কারের সময় যে প্রশ্নগুলির মুখোমুখি হতে পারেন তার প্রকৃতির সাথে আপনাকে পরিচিত করতে।