আধুনিক ডেটা ল্যান্ডস্কেপ অবকাঠামোর একটি নতুন প্রজাতির দাবি করে – যা নির্বিঘ্নে কাঠামোগত এবং অসংগঠিত ডেটাকে একীভূত করে, অনায়াসে স্কেল করে এবং দক্ষ AI/ML কাজের চাপকে শক্তিশালী করে। এই হল যেখানে
এই ব্লগ পোস্টটি তিনটি শক্তিশালী টুলের গভীরে ডুব দেয় যা আপনার বর্তমান পদ্ধতিকে অপ্টিমাইজ করতে পারে:
ট্যাবুলার হল একটি ডেটা প্ল্যাটফর্ম যা অ্যাপাচি আইসবার্গের মূল নির্মাতাদের দ্বারা তৈরি করা হয়েছে। এটি একটি স্বাধীন, সার্বজনীন স্টোরেজ প্ল্যাটফর্ম প্রদান করার জন্য ডিজাইন করা হয়েছে যা যেকোনো কম্পিউট লেয়ারের সাথে সংযোগ করে, ডেটা ভেন্ডর লক-ইন দূর করে। এই বৈশিষ্ট্যটি আধুনিক ডেটা স্ট্যাকের জন্য গুরুত্বপূর্ণ, এটি ব্যবহারকারীদের একটি নির্দিষ্ট বিক্রেতার বয়সী এবং বা অমিল টুল সেটে বাধ্য না করে সেরা-ইন-ক্লাস কম্পিউট এবং স্টোরেজ টুল বাছাই করতে দেয়।
একটি মধ্যে
এই বাস্তবায়ন আইসবার্গের S3FileIO সুবিধা দেয়। S3FileIO বিভিন্ন কারণে Hadoop এর ফাইল-io থেকে ভাল বলে বিবেচিত হয়। যার মধ্যে কিছু আমরা ইতিমধ্যে আলোচনা করেছি
ক্লাউড স্টোরেজের জন্য অপ্টিমাইজ করা হয়েছে : আইসবার্গের S3FileIO ক্লাউড-নেটিভ স্টোরেজের সাথে কাজ করার জন্য ডিজাইন করা হয়েছে।
উন্নত থ্রুপুট এবং মিনিমাইজড থ্রটলিং: আইসবার্গ একটি ব্যবহার করে
কঠোর ধারাবাহিকতা: আইসবার্গ হয়েছে
প্রগতিশীল মাল্টিপার্ট আপলোড: আইসবার্গের S3FileIO একটি প্রয়োগ করে
চেকসাম যাচাইকরণ: আইসবার্গ অনুমতি দেয়
কাস্টম ট্যাগ: আইসবার্গ যোগ সমর্থন করে
নেতিবাচক ক্যাশিং এড়ানো: আইসবার্গের ফাইলআইও ইন্টারফেসের জন্য হ্যাডুপ-সামঞ্জস্যপূর্ণ ফাইল সিস্টেমের মতো কঠোর গ্যারান্টির প্রয়োজন হয় না, যা এটিকে অনুমতি দেয়
বিপরীতে, Hadoop এর S3A ফাইলসিস্টেম, যা S3FileIO এর আগে ব্যবহার করা হয়েছিল, ক্লাউড স্টোরেজের জন্য একই স্তরের অপ্টিমাইজেশন অফার করে না। এই সব বলার জন্য: অতীতের ফাঁদ দিয়ে আপনার ভবিষ্যত-মুখী ডেটা লেকের পরিকাঠামোকে আটকে রাখবেন না।
আপনি শুরু করার আগে, নিশ্চিত করুন যে আপনার সিস্টেম নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করে:
আপনি স্ক্র্যাচ থেকে শুরু করছেন, আপনি উভয় ব্যবহার করে ইনস্টল করতে পারেন
docker-compose --version
শুরু করতে, ট্যাবুলারের YAML ফাইলটি ক্লোন বা অনুলিপি করুন
প্রদত্ত YAML ফাইলটি একটি ডকার কম্পোজ কনফিগারেশন ফাইল। এটি একটি মাল্টি-কন্টেইনার ডকার অ্যাপ্লিকেশনের জন্য পরিষেবাগুলির একটি সেট এবং তাদের কনফিগারেশনকে সংজ্ঞায়িত করে। এই ক্ষেত্রে, দুটি পরিষেবা রয়েছে: স্পার্ক-আইসবার্গ এবং মিনিও। আসুন প্রতিটি বিভাগ ভাঙ্গুন:
1. স্পার্ক-আইসবার্গ পরিষেবা:
spark-iceberg: image: tabulario/spark-iceberg container_name: spark-iceberg build: spark/ networks: iceberg_net: depends_on: - rest - minio volumes: - ./warehouse:/home/iceberg/warehouse - ./notebooks:/home/iceberg/notebooks/notebooks environment: - AWS_ACCESS_KEY_ID=admin - AWS_SECRET_ACCESS_KEY=password - AWS_REGION=us-east-1 ports: - 8888:8888 - 8080:8080 - 10000:10000 - 10001:10001 rest: image: tabulario/iceberg-rest container_name: iceberg-rest networks: iceberg_net: ports: - 8181:8181 environment: - AWS_ACCESS_KEY_ID=admin - AWS_SECRET_ACCESS_KEY=password - AWS_REGION=us-east-1 - CATALOG_WAREHOUSE=s3://warehouse/ - CATALOG_IO__IMPL=org.apache.iceberg.aws.s3.S3FileIO - CATALOG_S3_ENDPOINT=http://minio:9000
চিত্র: স্পার্ক-আইসবার্গ পরিষেবার জন্য ব্যবহার করার জন্য ডকার চিত্রটি নির্দিষ্ট করে। এই ক্ষেত্রে, এটি ট্যাবুলারিও/স্পার্ক-আইসবার্গ: সাম্প্রতিক চিত্র ব্যবহার করে।
depends_on: নির্দিষ্ট করে যে স্পার্ক-আইসবার্গ পরিষেবা বাকি এবং মিনিও পরিষেবাগুলির উপর নির্ভর করে৷
ধারক_নাম: ধারকটিতে একটি নির্দিষ্ট নাম (স্পার্ক-আইসবার্গ) বরাদ্দ করে।
পরিবেশ: স্পার্ক এবং AWS শংসাপত্র সহ কন্টেইনারের জন্য পরিবেশের ভেরিয়েবল সেট করে।
ভলিউম: কন্টেইনারের ভিতরে ভলিউম হিসাবে স্থানীয় ডিরেক্টরি (./গুদাম এবং ./নোটবুক) মাউন্ট করে।
পোর্ট: স্পার্ক UI এবং অন্যান্য পরিষেবাগুলি অ্যাক্সেস করার জন্য পোর্টগুলি হোস্ট করার জন্য মানচিত্র কন্টেইনার পোর্ট।
2. মিনিও পরিষেবা:
minio: image: minio/minio container_name: minio environment: - MINIO_ROOT_USER=admin - MINIO_ROOT_PASSWORD=password - MINIO_DOMAIN=minio networks: iceberg_net: aliases: - warehouse.minio ports: - 9001:9001 - 9000:9000 command: ["server", "/data", "--console-address", ":9001"]
চিত্র: MinIO পরিষেবার জন্য ডকার ইমেজ নির্দিষ্ট করে।
ধারক_নাম: কন্টেইনারে একটি নির্দিষ্ট নাম (MinIO) বরাদ্দ করে।
পরিবেশ: রুট ব্যবহারকারীর শংসাপত্র সহ MinIO কনফিগার করার জন্য পরিবেশ ভেরিয়েবল সেট করে।
পোর্ট: MinIO UI অ্যাক্সেস করার জন্য পোর্ট হোস্ট করতে মানচিত্র কন্টেইনার পোর্ট।
কমান্ড: নির্দিষ্ট পরামিতি সহ MinIO সার্ভার শুরু করার কমান্ডটি নির্দিষ্ট করে।
MinIO পরিষেবার আরেকটি দিক হল
mc: depends_on: - minio image: minio/mc container_name: mc networks: iceberg_net: environment: - AWS_ACCESS_KEY_ID=admin - AWS_SECRET_ACCESS_KEY=password - AWS_REGION=us-east-1 entrypoint: > /bin/sh -c " until (/usr/bin/mc config host add minio http://minio:9000 admin password) do echo '...waiting...' && sleep 1; done; /usr/bin/mc rm -r --force minio/warehouse; /usr/bin/mc mb minio/warehouse; /usr/bin/mc policy set public minio/warehouse; tail -f /dev/null "
depends_on: উল্লেখ করে যে mc পরিষেবা MinIO পরিষেবার উপর নির্ভর করে।
চিত্র: mc পরিষেবার জন্য ডকার ইমেজ নির্দিষ্ট করে।
कंटेनर_নাম: কন্টেইনারে একটি নির্দিষ্ট নাম (mc) বরাদ্দ করে।
পরিবেশ: MinIO ক্লায়েন্ট কনফিগার করার জন্য পরিবেশ ভেরিয়েবল সেট করে।
এন্ট্রিপয়েন্ট: MinIO ক্লায়েন্টের জন্য সেটআপ পদক্ষেপ সহ কন্টেইনারের জন্য এন্ট্রি পয়েন্ট কমান্ড সংজ্ঞায়িত করে।
/usr/bin/mc rm -r --force minio/warehouse; /usr/bin/mc mb minio/warehouse; /usr/bin/mc policy set public minio/warehouse; tail -f /dev/null "
কমান্ডের এই ক্রমটি মূলত নিম্নলিখিত কাজগুলি সম্পাদন করে:
MinIO সার্ভার থেকে বিদ্যমান গুদাম ডিরেক্টরি এবং এর বিষয়বস্তু সরিয়ে দেয়।
গুদাম নামে একটি নতুন বালতি তৈরি করে।
গুদাম বাকেটের অ্যাক্সেস নীতি জনসাধারণের জন্য সেট করে।
এই ডকার কম্পোজ ফাইলটি স্পার্ক, পোস্টগ্রেএসকিউএল, মিনিও-এর পরিষেবা সহ একটি মাল্টি-কন্টেইনার পরিবেশ অর্কেস্ট্রেট করে। এটি নির্ভরতা, পরিবেশ ভেরিয়েবল এবং পরিষেবাগুলি একসাথে চালানোর জন্য প্রয়োজনীয় কমান্ডগুলি সেট আপ করে। অবজেক্ট স্টোরেজ ব্যাকএন্ড হিসাবে MinIO এর সাথে স্পার্ক এবং আইসবার্গ ব্যবহার করে ডেটা প্রক্রিয়াকরণের জন্য একটি উন্নয়ন পরিবেশ তৈরি করতে পরিষেবাগুলি একসাথে কাজ করে।
একটি টার্মিনাল উইন্ডোতে, সংগ্রহস্থলের ট্যাবুলার-স্পার্ক-সেটআপ ডিরেক্টরিতে cd এবং নিম্নলিখিত কমান্ডটি চালান:
docker-compose up
গুদাম বালতি তৈরি হয়েছে তা দেখতে শংসাপত্রের admin:password
দিয়ে http://127.0.0.1:9001
এ MinIO-তে লগইন করুন।
সব কন্টেইনার চালু হয়ে গেলে, আপনি http://localhost:8888
এ নেভিগেট করে আপনার Jupyter Notebook সার্ভার অ্যাক্সেস করতে পারবেন
একটি নমুনা নোটবুক চালান এবং আপনার গুদামটি ডেটাতে ভরপুর দেখতে http://127.0.0.1:9001
এ MinIO-তে ফিরে যান।
আইসবার্গ, ট্যাবুলার, এবং মিনিও সহ একটি আধুনিক ডেটালেক তৈরির এই টিউটোরিয়ালটি মাত্র শুরু। এই শক্তিশালী ত্রয়ী সম্ভাবনার জগতের দরজা খুলে দেয়। এই টুলগুলির সাহায্যে, আপনি নিখুঁতভাবে আপনার সমস্ত ডেটা সংহত এবং বিশ্লেষণ করতে পারেন, কাঠামোগত এবং অসংগঠিত, লুকানো নিদর্শনগুলি উন্মোচন করতে এবং ডেটা-চালিত সিদ্ধান্তগুলিকে চালিত করতে যা উদ্ভাবনকে উত্সাহিত করে৷ আপনার AI/ML উদ্যোগগুলিকে ত্বরান্বিত করতে এবং আপনার মেশিন লার্নিং মডেলগুলির সত্যিকারের সম্ভাবনাকে আনলক করতে উত্পাদনে এই আর্কিটেকচারের দক্ষতা এবং নমনীয়তা ব্যবহার করুন, যুগান্তকারী আবিষ্কারের পথে আপনার পথকে ত্বরান্বিত করুন। এ আমাদের সাথে যোগাযোগ করুন