paint-brush
Có thể di chuyển từ Hadoop mà không cần Rip và Thay thế - Đây là cách thực hiệntừ tác giả@minio
3,801 lượt đọc
3,801 lượt đọc

Có thể di chuyển từ Hadoop mà không cần Rip và Thay thế - Đây là cách thực hiện

từ tác giả MinIO7m2024/05/31
Read on Terminal Reader

dài quá đọc không nổi

MinIO là phiên bản hiện đại của Hadoop tích hợp với Spark và Hive. MinIO mã hóa tất cả dữ liệu bằng cách sử dụng khóa cho mỗi đối tượng, đảm bảo khả năng bảo vệ mạnh mẽ chống lại sự truy cập trái phép. S3a là một điều cần thiết. điểm cuối cho các ứng dụng đang tìm cách chuyển đổi khỏi Hado.op, mang lại khả năng tương thích với nhiều ứng dụng.
featured image - Có thể di chuyển từ Hadoop mà không cần Rip và Thay thế - Đây là cách thực hiện
MinIO HackerNoon profile picture
0-item
1-item


Chúng tôi vẫn ngạc nhiên về số lượng khách hàng đến với chúng tôi muốn chuyển từ HDFS sang bộ lưu trữ đối tượng hiện đại như MinIO. Đến bây giờ chúng tôi nghĩ rằng mọi người đã thực hiện quá trình chuyển đổi, nhưng hàng tuần, chúng tôi đều nói chuyện với một tổ chức lớn, có kỹ thuật cao đã quyết định thực hiện quá trình chuyển đổi.


Thông thường, trong các cuộc thảo luận đó, có những yếu tố cơ sở hạ tầng mà họ muốn duy trì sau khi di chuyển. Có những khung và phần mềm xuất phát từ hệ sinh thái HDFS được nhiều nhà phát triển mua và vẫn có một vị trí trong ngăn xếp dữ liệu hiện đại. Thật vậy, chúng tôi thường nói rằng hệ sinh thái HDFS đã mang lại rất nhiều điều tốt đẹp. Vấn đề cơ bản là việc lưu trữ và tính toán được kết hợp chặt chẽ không nhất thiết phải có các công cụ và dịch vụ xuất phát từ kỷ nguyên Dữ liệu lớn.


Bài đăng trên blog này sẽ tập trung vào cách bạn có thể thực hiện quá trình di chuyển đó mà không cần trích xuất và thay thế các công cụ và dịch vụ có giá trị. Thực tế là nếu bạn không hiện đại hóa cơ sở hạ tầng của mình, bạn không thể đạt được những tiến bộ về AI/ML mà tổ chức của bạn yêu cầu, nhưng bạn không cần phải vứt bỏ mọi thứ để đạt được điều đó.

Phân chia bộ nhớ và tính toán với Spark và Hive

Chúng tôi đã trải qua một số chiến lược để tách hoàn toàn và thay thế di chuyển , trong một số trường hợp là con đường phía trước. Tuy nhiên, chúng ta hãy xem xét một cách khác để hiện đại hóa việc triển khai HDFS.


Cái này kiến trúc liên quan đến việc quản lý Kubernetes Apache Spark và các thùng chứa Apache Hive để xử lý dữ liệu; Spark tích hợp nguyên bản với MinIO trong khi Hive sử dụng YARN. MinIO xử lý việc lưu trữ đối tượng trong các vùng chứa có trạng thái và trong kiến trúc này dựa trên cấu hình nhiều bên thuê để tách biệt dữ liệu.


Tổng quan về kiến trúc:

  • Nút điện toán: Kubernetes quản lý hiệu quả các thùng chứa Apache Spark và Apache Hive không trạng thái trên các nút điện toán, đảm bảo sử dụng tài nguyên tối ưu và mở rộng quy mô linh hoạt.


  • Lớp lưu trữ: MinIO Mã hóa xóa và BitRot Protection có nghĩa là bạn có thể mất tới một nửa số ổ đĩa mà vẫn có thể khôi phục mà không cần phải duy trì ba bản sao của mỗi khối dữ liệu mà Hadoop yêu cầu.


  • Lớp truy cập: Tất cả quyền truy cập vào bộ lưu trữ đối tượng MinIO được thống nhất thông qua API S3, cung cấp giao diện liền mạch để tương tác với dữ liệu được lưu trữ.


  • Lớp bảo mật: Bảo mật dữ liệu là điều tối quan trọng. MinIO mã hóa tất cả dữ liệu bằng cách sử dụng khóa cho mỗi đối tượng, đảm bảo khả năng bảo vệ mạnh mẽ chống lại sự truy cập trái phép.


  • Quản lý danh tính: MinIO Enterprise tích hợp đầy đủ với các nhà cung cấp danh tính như WSO2, Keycloak, Okta, Ping Identity để cho phép ứng dụng hoặc người dùng xác thực.


Một sự thay thế được hiện đại hóa hoàn toàn cho Hadoop, cho phép tổ chức của bạn giữ Hive, YARN và bất kỳ sản phẩm dữ liệu hệ sinh thái Hadoop nào khác có thể tích hợp với bộ lưu trữ đối tượng, hầu hết mọi thứ trong ngăn xếp dữ liệu hiện đại.

Khả năng tương tác trong lớp truy cập

S3a là điểm cuối thiết yếu cho các ứng dụng muốn chuyển đổi khỏi Hadoop, mang lại khả năng tương thích với nhiều ứng dụng trong hệ sinh thái Hadoop. Kể từ năm 2006, các chương trình phụ trợ lưu trữ đối tượng tương thích với S3 đã được tích hợp liền mạch vào nhiều nền tảng dữ liệu trong hệ sinh thái Hadoop như một tính năng mặc định. Sự tích hợp này bắt nguồn từ việc kết hợp triển khai ứng dụng khách S3 trong các công nghệ mới nổi.


Trên tất cả các nền tảng liên quan đến Hadoop, việc áp dụng mô- hadoop-awsaws-java-sdk-bundle là thông lệ tiêu chuẩn, đảm bảo hỗ trợ mạnh mẽ cho API S3. Cách tiếp cận được tiêu chuẩn hóa này tạo điều kiện thuận lợi cho việc chuyển đổi suôn sẻ các ứng dụng từ phần phụ trợ lưu trữ HDFS và S3. Chỉ cần chỉ định giao thức phù hợp, các nhà phát triển có thể dễ dàng chuyển đổi ứng dụng từ Hadoop sang bộ lưu trữ đối tượng hiện đại. Sơ đồ giao thức cho S3 được biểu thị bằng s3a://, trong khi đối với HDFS, nó được ký hiệu là hdfs://.

Lợi ích của việc di chuyển

Có thể nói dài dòng về lợi ích của việc di chuyển khỏi Hadoop sang bộ lưu trữ đối tượng hiện đại. Nếu bạn đang đọc điều này, thì phần lớn bạn đã biết rằng nếu không di chuyển khỏi các nền tảng cũ như Hadoop thì những tiến bộ trong AI và các sản phẩm dữ liệu hiện đại khác có thể sẽ không còn nữa. Lý do chắt lọc từ hiệu suất và quy mô.


Hoàn toàn không nghi ngờ gì rằng khối lượng công việc hiện đại đòi hỏi hiệu suất vượt trội để cạnh tranh với khối lượng dữ liệu đang được xử lý và độ phức tạp của các nhiệm vụ hiện đang được yêu cầu. Khi hiệu suất không chỉ là điểm chuẩn phù phiếm mà còn là một yêu cầu khắt khe, thì sẽ có nhiều đối thủ cạnh tranh để thay thế Hadoop giảm đi đáng kể .


Yếu tố khác thúc đẩy quá trình di chuyển về phía trước là quy mô gốc của đám mây. Khi khái niệm đám mây ít thiên về vị trí vật lý mà thiên về mô hình hoạt động có thể thực hiện những việc như triển khai toàn bộ ngăn xếp dữ liệu trong vài phút từ một tệp .yaml. Việc triển khai nhanh đến mức có thể khiến bất kỳ kỹ sư Hadoop nào ngã khỏi ghế.


Một phần của khái niệm này là lợi ích kinh tế đến từ việc giải phóng khỏi sự khóa chặt của nhà cung cấp, cho phép tổ chức lựa chọn các tùy chọn tốt nhất cho khối lượng công việc cụ thể. Chưa kể, việc phát hành ba bản sao dữ liệu riêng biệt để bảo vệ nó, đã là quá khứ với sao chép tích cực tích cực và xóa mã hóa. Đầu tư vào công nghệ phù hợp với tương lai cũng có nghĩa là việc tìm kiếm và tuyển dụng các chuyên gia tài năng để làm việc trên cơ sở hạ tầng của bạn sẽ dễ dàng hơn. Mọi người muốn làm những việc thúc đẩy doanh nghiệp phát triển và hầu như không có gì làm được điều đó tốt hơn dữ liệu . Cùng với nhau, những yếu tố này góp phần tạo nên một kho dữ liệu không chỉ nhanh hơn và rẻ hơn mà còn phù hợp hơn với nhu cầu dựa trên dữ liệu của ngày hôm nay và ngày mai.

Bắt đầu

Trước khi đi sâu vào chi tiết cụ thể về kiến trúc của chúng tôi, bạn sẽ cần thiết lập và chạy một số thành phần. Để di chuyển khỏi Hadoop, rõ ràng bạn phải cài đặt nó ngay từ đầu. Nếu muốn mô phỏng trải nghiệm này, bạn có thể bắt đầu hướng dẫn này bằng cách thiết lập Phân phối Hortonworks của Hadoop tại đây .


Nếu không, bạn có thể bắt đầu với các bước cài đặt sau:


  1. Thiết lập Ambari: Tiếp theo, cài đặt Ambari , điều này sẽ đơn giản hóa việc quản lý dịch vụ của bạn bằng cách tự động định cấu hình YARN cho bạn. Ambari cung cấp bảng điều khiển thân thiện với người dùng để quản lý các dịch vụ trong hệ sinh thái Hadoop và giữ cho mọi thứ hoạt động trơn tru.


  2. Cài đặt Apache Spark: Spark rất cần thiết để xử lý dữ liệu quy mô lớn. Theo cài đặt chuẩn các thủ tục để thiết lập và chạy Spark.


  3. Cài đặt MinIO : Tùy thuộc vào môi trường của bạn, bạn có thể chọn giữa hai phương pháp cài đặt: Kubernetes hoặc Biểu đồ mũ bảo hiểm .


Sau khi cài đặt thành công các phần tử này, bạn có thể định cấu hình Spark và Hive để sử dụng MinIO thay vì HDFS. Điều hướng đến Giao diện người dùng Ambari http://<ambari-server>:8080/ và đăng nhập bằng thông tin xác thực mặc định: username: admin, password: admin ,



Trong Ambari, điều hướng đến các dịch vụ, sau đó là HDFS, sau đó đến bảng Cấu hình như trong ảnh chụp màn hình bên dưới. Trong phần này, bạn đang định cấu hình Ambari để sử dụng S3a với MinIO thay vì HDFS.



Cuộn xuống và điều hướng đến Custom core-site . Đây là nơi bạn sẽ cấu hình S3a.



 sudo pip install yq alias kv-pairify='yq ".configuration[]" | jq ".[]" | jq -r ".name + \"=\" + .value"'


Từ đây, cấu hình của bạn sẽ phụ thuộc vào cơ sở hạ tầng của bạn. Tuy nhiên, phần dưới đây có thể là một cách để core-site.xml định cấu hình S3a với MinIO chạy trên 12 nút và 1,2TiB bộ nhớ.


 cat ${HADOOP_CONF_DIR}/core-site.xml | kv-pairify | grep "mapred" mapred.maxthreads.generate.mapoutput=2 # Num threads to write map outputs mapred.maxthreads.partition.closer=0 # Asynchronous map flushers mapreduce.fileoutputcommitter.algorithm.version=2 # Use the latest committer version mapreduce.job.reduce.slowstart.completedmaps=0.99 # 99% map, then reduce mapreduce.reduce.shuffle.input.buffer.percent=0.9 # Min % buffer in RAM mapreduce.reduce.shuffle.merge.percent=0.9 # Minimum % merges in RAM mapreduce.reduce.speculative=false # Disable speculation for reducing mapreduce.task.io.sort.factor=999 # Threshold before writing to drive mapreduce.task.sort.spill.percent=0.9 # Minimum % before spilling to drive


Có khá nhiều cách tối ưu hóa có thể được khám phá bằng cách xem tài liệu về mẫu di chuyển này đây và cả trong tài liệu của Hadoop về S3 đây đây .


Khởi động lại tất cả khi bạn hài lòng với cấu hình.



Bạn cũng cần điều hướng đến bảng cấu hình Spark2.



Cuộn xuống Mặc Custom spark-defaults và thêm Thuộc tính sau để định cấu hình với MinIO:



 spark.hadoop.fs.s3a.access.key minio spark.hadoop.fs.s3a.secret.key minio123 spark.hadoop.fs.s3a.path.style.access true spark.hadoop.fs.s3a.block.size 512M spark.hadoop.fs.s3a.buffer.dir ${hadoop.tmp.dir}/s3a spark.hadoop.fs.s3a.committer.magic.enabled false spark.hadoop.fs.s3a.committer.name directory spark.hadoop.fs.s3a.committer.staging.abort.pending.uploads true spark.hadoop.fs.s3a.committer.staging.conflict-mode append spark.hadoop.fs.s3a.committer.staging.tmp.path /tmp/staging spark.hadoop.fs.s3a.committer.staging.unique-filenames true spark.hadoop.fs.s3a.committer.threads 2048 # number of threads writing to MinIO spark.hadoop.fs.s3a.connection.establish.timeout 5000 spark.hadoop.fs.s3a.connection.maximum 8192 # maximum number of concurrent conns spark.hadoop.fs.s3a.connection.ssl.enabled false spark.hadoop.fs.s3a.connection.timeout 200000 spark.hadoop.fs.s3a.endpoint http://minio:9000 spark.hadoop.fs.s3a.fast.upload.active.blocks 2048 # number of parallel uploads spark.hadoop.fs.s3a.fast.upload.buffer disk # use disk as the buffer for uploads spark.hadoop.fs.s3a.fast.upload true # turn on fast upload mode spark.hadoop.fs.s3a.impl org.apache.hadoop.spark.hadoop.fs.s3a.S3AFileSystem spark.hadoop.fs.s3a.max.total.tasks 2048 # maximum number of parallel tasks spark.hadoop.fs.s3a.multipart.size 512M # size of each multipart chunk spark.hadoop.fs.s3a.multipart.threshold 512M # size before using multipart uploads spark.hadoop.fs.s3a.socket.recv.buffer 65536 # read socket buffer hint spark.hadoop.fs.s3a.socket.send.buffer 65536 # write socket buffer hint spark.hadoop.fs.s3a.threads.max 2048 # maximum number of threads for S3A


Khởi động lại tất cả sau khi thay đổi cấu hình đã được áp dụng.



Điều hướng đến bảng Hive để hoàn tất cấu hình.



Cuộn xuống Custom hive-site và thêm Thuộc tính sau:




 hive.blobstore.use.blobstore.as.scratchdir=true hive.exec.input.listing.max.threads=50 hive.load.dynamic.partitions.thread=25 hive.metastore.fshandler.threads=50 hive.mv.files.threads=40 mapreduce.input.fileinputformat.list-status.num-threads=50


Bạn có thể tìm thêm thông tin cấu hình tinh chỉnh đây . Khởi động lại tất cả sau khi thay đổi cấu hình đã được thực hiện.



Thế là xong, bây giờ bạn có thể kiểm tra sự tích hợp của mình.

Tự mình khám phá

Bài đăng trên blog này đã phác thảo một cách tiếp cận hiện đại để di chuyển từ Hadoop mà không cần phải đại tu hoàn toàn các hệ thống hiện có của bạn. Bằng cách tận dụng Kubernetes để quản lý Apache Spark và Apache Hive, đồng thời tích hợp MinIO để lưu trữ đối tượng trạng thái, các tổ chức có thể đạt được kiến trúc cân bằng hỗ trợ mở rộng quy mô linh hoạt và sử dụng tài nguyên hiệu quả. Thiết lập này không chỉ giữ lại mà còn nâng cao khả năng của môi trường xử lý dữ liệu của bạn, làm cho chúng trở nên mạnh mẽ hơn và phù hợp với tương lai.


Với MinIO, bạn được hưởng lợi từ giải pháp lưu trữ mang lại hiệu suất cao trên phần cứng phổ thông, giảm chi phí thông qua mã hóa xóa (loại bỏ sự dư thừa trong quá trình sao chép dữ liệu của Hadoop) và bỏ qua các hạn chế như khóa nhà cung cấp và nhu cầu lưu trữ siêu dữ liệu dựa trên Cassandra. Những lợi thế này rất quan trọng đối với các tổ chức đang tìm cách tận dụng khối lượng công việc AI/ML nâng cao mà không loại bỏ các yếu tố cốt lõi của hệ thống dữ liệu hiện có của họ.


Vui lòng liên hệ để thảo luận chi tiết hơn hoặc hướng dẫn cụ thể về cách bạn có thể điều chỉnh chiến lược di chuyển này để đáp ứng nhu cầu riêng của tổ chức mình. Cho dù qua email tại [email protected] hoặc trên cộng đồng của chúng tôi chùng xuống kênh, chúng tôi sẵn sàng giúp bạn tận dụng tối đa khoản đầu tư vào cơ sở hạ tầng dữ liệu của mình.

L O A D I N G
. . . comments & more!

About Author

MinIO HackerNoon profile picture
MinIO@minio
MinIO is a high-performance, cloud-native object store that runs anywhere (public cloud, private cloud, colo, onprem).

chuyên mục

BÀI VIẾT NÀY CŨNG CÓ MẶT TẠI...