نمایش نتایج 1 تا 5 از 5

نام تاپیک: SequenceFile

  1. #1

    SequenceFile

    سلام معنی دقیق SequenceFile را کسی میدونه ؟ و این که چ کاربردهای داره؟؟

  2. #2
    کاربر دائمی آواتار vahid-p
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران
    پست
    1,140

    نقل قول: SequenceFile

    تو جاوا استاندارد همچین چیزی نشنیدم

  3. #3
    کاربر دائمی آواتار -سیّد-
    تاریخ عضویت
    فروردین 1393
    محل زندگی
    تهران
    پست
    233

    نقل قول: SequenceFile

    نقل قول نوشته شده توسط starparham مشاهده تاپیک
    سلام معنی دقیق SequenceFile را کسی میدونه ؟ و این که چ کاربردهای داره؟؟
    SequenceFile یک ساختار ذخیره‌سازی داده توی فایل هست که متعلق به hadoop هست (برای همین اون برادرمون چیزی درباره‌اش توی جاوا استاندارد نشنیده! چون مال Java SE نیست، بلکه مال یه کتابخونهٔ شخص ثالث هست).
    خیلی هم چیز پیچیده‌ای نیست، توش یه تعداد (معمولاً تعداد زیاد) از کلید-مقدار (Key-Value) ذخیره می‌شه. اولش یه header داره که توش مشخص می‌کنه نوع کلید و مقدارش چیه، و از چه فشرده‌سازی‌ای استفاده می‌کنه. بعدش هم همینجوری پشت سر هم دوتایی‌های کلید-مقدار رو ردیف می‌کنه.
    کاربرد اصلیش هم توی خود چارچوب hadoop هست. مثلاً وقتی می‌خواین از یه map-reduce خروجی توی فایل بگیرین، یه گزینه اینه که از TextOutputFormat استفاده کنین که در نتیجه خروجی به صورت خط به خط توی فایل نوشته می‌شه. این روش خیلی ساده هست، فقط مشکلش اینه که همه جور داده‌ای رو نمی‌شه باهاش خروجی گرفت. مثلاً اگه توی دادهٔ شما کاراکتر newline (یعنی n\) وجود داشته باشه، کارتون خراب می‌شه، چون توی TextOutputFormat فرض بر اینه که هر رکورد توی یه خط قرار می‌گیره، ولی اینجا یه رکورد شما توی ۲ خط قرار گرفته. یا مثلاً فرض توی TextOutputFormat بر اینه که دادهٔ شما متنی هست، بنابراین اگه دادهٔ binary بخواین خروجی بگیرین دیگه نمی‌تونین از TextOutputFormat استفاده کنین. راه حل جایگزینش چیه؟ احسنتم! استفاده از SequenceFileOutputFormat. توی این نوع ذخیره‌سازی، هر جور داده‌ای که دلتون بخواد رو می‌تونین ذخیره کنین، و کاملاً دادهٔ binary رو پشتیبانی می‌کنه. تازه! نون اضافه هم بهتون می‌ده! می‌تونین علاوه بر این که یه مشت مقدار (value) رو پشت هم ذخیره کنین، به هر کدوم یه کلید (key) هم اختصاص بدین. مثلاً کاربردش چیه؟ وقتی که شما از یه جدول HBase می‌خواین export بگیرین، خروجی رو در قالب SequenceFile ذخیره می‌کنه، که کلیدش هست row key شما (در قالب ImmutableBytesWritable که در واقع همون []byte خودمون هست، به یه زبون دیگه!)، و مقدارش هست دادهٔ توی اون سطر (در قالب Result). اگه دوست داشته باشین براتون فشرده هم می‌کنه (مثلاً با GZip یا Snappy یا Lz4 که شناخته‌شده‌ترین قالب‌های فشرده‌سازی توی hadoop هستن).

    در نهایت هم بگم که سؤالی که پرسیدین متعلق به دنیای big data هست و جاش اینجا نیست! خوب بود توی انجمن مربوطه می‌پرسیدید.

  4. #4

    نقل قول: SequenceFile

    ممنون از پاسختون

  5. #5

    نقل قول: SequenceFile

    نقل قول نوشته شده توسط -سیّد- مشاهده تاپیک
    SequenceFile یک ساختار ذخیره‌سازی داده توی فایل هست که متعلق به hadoop هست (برای همین اون برادرمون چیزی درباره‌اش توی جاوا استاندارد نشنیده! چون مال Java SE نیست، بلکه مال یه کتابخونهٔ شخص ثالث هست).
    خیلی هم چیز پیچیده‌ای نیست، توش یه تعداد (معمولاً تعداد زیاد) از کلید-مقدار (Key-Value) ذخیره می‌شه. اولش یه header داره که توش مشخص می‌کنه نوع کلید و مقدارش چیه، و از چه فشرده‌سازی‌ای استفاده می‌کنه. بعدش هم همینجوری پشت سر هم دوتایی‌های کلید-مقدار رو ردیف می‌کنه.
    کاربرد اصلیش هم توی خود چارچوب hadoop هست. مثلاً وقتی می‌خواین از یه map-reduce خروجی توی فایل بگیرین، یه گزینه اینه که از TextOutputFormat استفاده کنین که در نتیجه خروجی به صورت خط به خط توی فایل نوشته می‌شه. این روش خیلی ساده هست، فقط مشکلش اینه که همه جور داده‌ای رو نمی‌شه باهاش خروجی گرفت. مثلاً اگه توی دادهٔ شما کاراکتر newline (یعنی n\) وجود داشته باشه، کارتون خراب می‌شه، چون توی TextOutputFormat فرض بر اینه که هر رکورد توی یه خط قرار می‌گیره، ولی اینجا یه رکورد شما توی ۲ خط قرار گرفته. یا مثلاً فرض توی TextOutputFormat بر اینه که دادهٔ شما متنی هست، بنابراین اگه دادهٔ binary بخواین خروجی بگیرین دیگه نمی‌تونین از TextOutputFormat استفاده کنین. راه حل جایگزینش چیه؟ احسنتم! استفاده از SequenceFileOutputFormat. توی این نوع ذخیره‌سازی، هر جور داده‌ای که دلتون بخواد رو می‌تونین ذخیره کنین، و کاملاً دادهٔ binary رو پشتیبانی می‌کنه. تازه! نون اضافه هم بهتون می‌ده! می‌تونین علاوه بر این که یه مشت مقدار (value) رو پشت هم ذخیره کنین، به هر کدوم یه کلید (key) هم اختصاص بدین. مثلاً کاربردش چیه؟ وقتی که شما از یه جدول HBase می‌خواین export بگیرین، خروجی رو در قالب SequenceFile ذخیره می‌کنه، که کلیدش هست row key شما (در قالب ImmutableBytesWritable که در واقع همون []byte خودمون هست، به یه زبون دیگه!)، و مقدارش هست دادهٔ توی اون سطر (در قالب Result). اگه دوست داشته باشین براتون فشرده هم می‌کنه (مثلاً با GZip یا Snappy یا Lz4 که شناخته‌شده‌ترین قالب‌های فشرده‌سازی توی hadoop هستن).

    در نهایت هم بگم که سؤالی که پرسیدین متعلق به دنیای big data هست و جاش اینجا نیست! خوب بود توی انجمن مربوطه می‌پرسیدید.


    ممنون از پاسختون

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •