2012-11-01 19 views
6

Gần đây tôi đã gặp trường hợp Cassandra phù hợp để lưu trữ các sự kiện dựa trên thời gian với ttls tùy chỉnh cho mỗi loại sự kiện (giải pháp khác là lưu nó trong hadoop và tự động lưu sổ sách thủ công (ttls và nội dung) IMHO một ý tưởng rất phức tạp) hoặc chuyển sang HBase). Câu hỏi đặt ra là làm thế nào tốt các bản đồ cassandra MapReduce hỗ trợ hoạt động ra khỏi hộp mà không có phiên bản Datastax Enterprise.Cassandras Map Giảm hỗ trợ

Có vẻ như họ đầu tư rất nhiều vào CassandraFS nhưng tôi tự hỏi nếu Pig bình thường CassandraLoader được chủ động duy trì và thực sự cân (vì nó dường như không làm gì hơn là lặp qua các hàng trong lát). Điều này có hiệu quả với 100 trong số hàng triệu hàng không?

Trả lời

-2

Tại sao không phải cơ sở? HBase là phù hợp hơn cho dữ liệu timeseries. Bạn có thể dễ dàng đặt hàng tỷ hàng trên cụm rất nhỏ và nhận tối đa 500 nghìn hàng mỗi giây trên cụm 3node nhỏ (tối đa 50MB/s) khi bật WAL. Cassandra có một số sai sót:

  1. Trong cassandra bạn thực sự bị hạn chế bởi số lượng khóa (tưởng tượng hàng tỉ hàng sửa chữa của bạn sẽ hoạt động mãi mãi). Vì vậy, bạn sẽ thiết kế lược đồ, mà sẽ 'shard' bạn thời gian bằng, nói, 1 giờ, và dấu thời gian thực tế sẽ được đặt dưới dạng cột. Nhưng kế hoạch như vậy không quy mô tốt do nguy cơ cao của 'cột lớn'.
  2. Vấn đề khác - bạn không thể lập bản đồ hóa phạm vi dữ liệu trong cassandra, ngoại trừ bạn sử dụng trình phân vùng đã sắp xếp, không phải là tùy chọn, do không có khả năng cân bằng tốt.
+0

Đó là vì tôi đã sử dụng cassandra trong dự án và không thực sự muốn giới thiệu công nghệ mới ... – Tobias

+0

Điểm tốt. Nếu việc xử lý tất cả dữ liệu mọi lúc mọi lúc - Điều này sẽ hiệu quả, nhưng nếu dữ liệu phát triển, tôi khuyên bạn nên xem xét lại để sử dụng thích nghi hơn cho việc lưu trữ tải bản đồ. – octo

+0

Điều gì là vô nghĩa này? Nhiều (hầu hết?) Cụm Cassandra hỗ trợ hàng tỷ hàng khá tốt. Bạn đề cập đến sửa chữa nhưng đó là tất nhiên phân phối là tốt. – jbellis

1

Bạn có thể ánh xạ/giảm bằng cách sử dụng trình phân vùng ngẫu nhiên nhưng tất nhiên các phím bạn nhận được theo thứ tự ngẫu nhiên. bạn có thể muốn sử dụng CL = 1 trong cassandra vì vậy bạn không ahve để đọc từ 2 nút mỗi lần trong khi làm bản đồ/giảm mặc dù và nó nên đọc dữ liệu địa phương. Tôi đã không sử dụng Pig mặc dù.

+0

Hỗ trợ Pig cho Cassandra sử dụng ColumnFamilyInputFormat và -OutputFormat. Vì vậy, bất cứ điều gì bạn có thể hoặc không thể làm trong bản đồ hadoop khá tốt với những gì bạn cna và không thể làm với Cassandra và Pig. –

+0

và có thực sự nhanh bằng trình phân vùng ngẫu nhiên không? Tôi đoán nó chỉ làm một cái gì đó như thế này? http://stackoverflow.com/questions/8418448/cassandra-hector-how-to-retrieve-all-rows-of-a-column-family - Tôi cố gắng lặp lại một hàng 100 mio CF một cách thủ công một lần và nó chưa bao giờ thực sự bắt đầu sau khi nó gửi dãy đầu tiên. – Tobias

+0

liên kết đó không giống như bản đồ/giảm vì bản đồ/giảm thực hiện một Mapper and Reducer hoặc một cái gì đó ... Tôi cần phải thiết lập lại sớm và không có mã từ dự án trước của tôi ... có nó là nhanh vì tất cả chúng chạy song song ... bắt đầu chậm giống như hadoop vì nó cung cấp mã cho mỗi công cụ theo dõi. –