Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

Một số tính năng quan trọng của FLUMEVideo Hướng dẫn Apache Flume : Ví dụ về cấu trúc và Hadoop là gìApache Flume trong Hadoop là gì ?

Apache Flume trong Hadoop là gì?

Apache Flume là một hệ thống phân tán và đáng tin cậy để thu thập, tổng hợp và di chuyển một lượng lớn dữ liệu nhật ký. Nó có một kiến ​​trúc đơn giản nhưng linh hoạt dựa trên luồng dữ liệu trực tuyến.

==>> Full khóa học miễn phí tại đây

Video Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

Apache Flume được sử dụng để thu thập dữ liệu nhật ký có trong tệp nhật ký từ sever web và tổng hợp thành HDFS để nghiên cứu và phân tích. Flume trong Hadoop tương hỗ nhiều source như

  • ‘Tail’ (dẫn dữ liệu từ một tệp cục bộ và ghi vào HDFS thông qua Flume, tương tự như lệnh Unix ‘tail’)
  • Nhật ký hệ thống
  • Apache log4j (cho phép các ứng dụng Java ghi sự kiện vào tệp trong HDFS thông qua Flume).

Cấu trúc Flume

Tác nhân Flume là một quy trình JVM có 3 thành phần – source Flume, Kênh FlumeFlume Sink – thông qua đó các sự kiện lan truyền sau khi bắt đầu tại một source bên ngoài.

Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì cấu trúc Flume

  1. Trong sơ đồ trên, các sự kiện được tạo bởi source bên ngoài (WebServer) được sử dụng bởi source dữ liệu Flume. source bên ngoài gửi các sự kiện đến source Flume ở định dạng được source đích nhận ra.
  2. source Flume nhận một sự kiện và lưu trữ nó vào một hoặc nhiều kênh. Kênh hoạt động như một kho lưu giữ sự kiện cho đến khi nó được tiêu thụ bởi sink. Kênh này có thể sử dụng hệ thống tệp cục bộ để lưu trữ các sự kiện này.
  3. flume sink loại bỏ sự kiện flume một kênh và lưu trữ nó vào một kho lưu trữ bên ngoài, chẳng hạn như HDFS. Có thể có nhiều tác nhân tạo flume, trong trường hợp đó flume sink chuyển tiếp sự kiện đến flume source của tác nhân tạo flume tiếp theo trong dòng chảy.

Một số tính năng quan trọng của FLUME

  • Flume có thiết kế linh hoạt dựa trên luồng dữ liệu trực tuyến. Nó có khả năng chịu lỗi và mạnh mẽ với nhiều cơ chế flume phục và chuyển đổi dự phòng. Flume Dữ liệu lớn có các mức độ tin cậy khác nhau để cung cấp, bao gồm  best-effort delivery  và  end-to-end delivery. Best-effort delivery  không chịu đựng bất kỳ lỗi nút Flume nào trong khi   chế độ end-to-end delivery’ đảm bảo phân phối ngay cả trong trường hợp có nhiều lỗi nút.
  • Flume mang dữ liệu giữa các source và sink. Việc thu thập dữ liệu này có thể được lên lịch hoặc theo hướng sự kiện. Flume có công cụ xử lý truy vấn riêng giúp dễ dàng chuyển đổi từng lô dữ liệu mới trước khi nó được chuyển đến sink dự kiến.
  • Các sink có thể có  Flume  bao gồm  HDFS  và  HBase. Flume Hadoop cũng có thể được sử dụng để vận chuyển dữ liệu sự kiện bao gồm nhưng không giới hạn ở dữ liệu lưu lượng mạng, dữ liệu được tạo bởi các trang web truyền thông xã hội và tin nhắn email.
See also  EMER là gì? -định nghĩa EMER

Flume, thư viện và thiết lập mã nguồn

Trước khi chúng tôi khởi đầu với quy trình tiến độ thực tiễn, hãy bảo vệ bạn đã setup Hadoop. Thay đổi người dùng thành ‘ hduser ’ ( id được sử dụng trong khi thông số kỹ thuật Hadoop, bạn hoàn toàn có thể chuyển sang userid được sử dụng trong quy trình thông số kỹ thuật Hadoop của mình ) Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

Bước 1) Tạo một thư mục mới với tên ‘FlumeTutorial’

sudo mkdir FlumeTutorial

  1. Cấp quyền  đọc, ghi và thực thi
    sudo chmod -R 777 FlumeTutorial
  2. Sao chép các tệp  MyTwitterSource.java  và  MyTwitterSourceForFlume.java  trong thư mục này.

Tải xuống tệp đầu vào từ đây

Kiểm tra quyền tệp của tổng thể những tệp này và nếu quyền ‘ đọc ’ bị thiếu thì hãy cấp quyền tương tự như – Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

Bước 2) Tải xuống ‘Apache Flume’ từ một trang web- https://flume.apache.org/download.html 

Apache Flume 1.4.0 đã được sử dụng trong hướng dẫn Flume này. Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì Nhấp chuột tiếp theo Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

Bước 3)  Sao chép tarball đã tải xuống trong thư mục bạn chọn và trích xuất nội dung bằng lệnh sau

sudo tar – xvf apache-flume-1.4.0-bin.tar.gz Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

Lệnh này sẽ tạo một thư mục mới có tên  apache-flume-1.4.0-bin  và giải nén các tập tin vào đó. Thư mục này sẽ được gọi là   trong phần còn lại của bài viết.

Bước 4)  Thiết lập thư viện Flume

Sao chép  twitter4j-core-4.0.1.jar, flume-ng-configuration-1.4.0.jar, flume-ng-core-1.4.0.jar, flume-ng-sdk-1.4.0.jar  vào

/lib/

Có thể một trong hai hoặc tổng thể JAR được sao chép sẽ phải thực thi quyền. Điều này hoàn toàn có thể gây ra sự cố với việc biên dịch mã. Vì vậy, tịch thu quyền thực thi trên JAR đó.

Trong trường hợp của tôi,  twitter4j-core-4.0.1.jar đang  phải thực thi quyền. Tôi đã thu hồi nó như bên dưới-

sudo chmod – x twitter4j-core-4.0.1.jar Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

Sau khi lệnh này cấp quyền ‘đọc’ trên  twitter4j-core-4.0.1.jar  cho tất cả.

sudo chmod + rrr / usr / local / apache-flume-1. 4.0 – bin / lib / twitter4j-core-4.0.1.jar Xin chú ý quan tâm rằng tôi đã tải xuống –

– twitter4j-core-4.0.1.jar  từ  https://mvnrepository.com/artifact/org.twitter4j/twitter4j-core

 Tất cả các JAR ngọn lửa tức là  flume-ng – * – 1.4.0.jar  từ  http://mvnrepository.com/artifact/org.apache.flume

See also  Số Nhận Diện Người Đóng Thuế (Taxpayer Identification Numbers, hay TIN)

Tải dữ liệu từ Twitter bằng Flume

Bước 1)  Vào thư mục chứa các tệp mã nguồn trong đó.

Bước 2)  Đặt  CLASSPATH  để chứa  /lib/* và  ~ / FlumeTutorial / flume / mytwittersource / *

export CLASSPATH = “ / usr / local / apache-flume-1. 4.0 – bin / lib / * : ~ / FlumeTutorial / flume / mytwittersource / * ” Tạo chương trình FLUME đầu tiên của bạn - Hướng dẫn cho người mới bắt đầu

Bước 3)  Biên dịch mã nguồn bằng lệnh-

javac – d. MyTwitterSourceForFlume. java MyTwitterSource. java Tạo chương trình FLUME đầu tiên của bạn - Hướng dẫn cho người mới bắt đầu

Bước 4) Tạo jar

Đầu tiên, tạo   tệp Manifest.txt bằng trình soạn thảo văn bản mà bạn chọn và thêm dòng bên dưới vào đó-

Main-Class : flume. mytwittersource. MyTwitterSourceForFlume

.. ở đây  flume.mytwittersource.MyTwitterSourceForFlume  là tên của lớp chính. Xin lưu ý rằng bạn phải nhấn phím enter ở cuối dòng này.

Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

Bây giờ, hãy tạo JAR ‘ MyTwitterSourceForFlume.jar’  as-

jar cfm MyTwitterSourceForFlume. jar Manifest. txt flume / mytwittersource / *. class Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

Bước 5)  Sao chép jar này vào  /lib/

sudo cp MyTwitterSourceForFlume.jar /lib/

Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

Bước 6)  Đi tới thư mục cấu hình của Flume,  / conf

Nếu flume.conf không sống sót, hãy sao chép flume-conf.properties.template và đổi tên nó thành flume.conf sudo cp flume-conf.properties.template flume.conf Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

Nếu  flume-env.sh  không tồn tại, hãy sao chép  flume-env.sh.template  và đổi tên nó thành  flume-env.sh

sudo cp flume-env.sh.template flume-env.sh Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

Tạo ứng dụng Twitter

Bước 1) Tạo ứng dụng Twitter bằng cách đăng nhập vào  https://developer.twitter.com/

Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

Bước 2)  Đi tới  ‘Ứng dụng của tôi’  (Tùy chọn này được thả xuống khi  nhấp vào nút ‘Quả trứng’ ở góc trên cùng bên phải)

Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

Bước 3) Tạo ứng dụng mới bằng cách nhấp vào  ‘Tạo ứng dụng mới’

Bước 4)  Điền thông tin chi tiết về ứng dụng bằng cách chỉ định tên ứng dụng, mô tả và trang web. Bạn có thể tham khảo các ghi chú được đưa ra bên dưới mỗi hộp nhập liệu.

Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

Bước 5) Cuộn xuống trang và chấp nhận các điều khoản bằng cách đánh dấu  ‘Có, tôi đồng ý’  và nhấp vào nút ‘Tạo ứng dụng Twitter của bạn’

Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

Bước 6)  Trên cửa sổ của một ứng dụng mới được tạo, hãy chuyển đến tab,  ‘Khóa API’  cuộn xuống trang và nhấp vào nút  ‘Tạo mã thông báo truy cập của tôi’

Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

Bước 7)  Làm mới trang.

Bước 8)  Nhấp vào  ‘Kiểm tra OAuth’. Thao tác này sẽ hiển thị   cài đặt ‘OAuth’ của ứng dụng.

Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

Bước 9)  Sửa đổi  ‘flume.conf’ bằng cách sử dụng các cài đặt OAuth này . Các bước để sửa đổi  ‘flume.conf’  được đưa ra bên dưới.

Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì Chúng tôi cần sao chép Khóa người tiêu dùng, Bí mật người tiêu dùng, Mã thông tin truy vấn và Bí mật mã thông tin truy vấn để update ‘ flume.conf ’.

Lưu ý: Những giá trị này thuộc về người dùng và do đó là bí mật, vì vậy không nên chia sẻ.

See also  Chuyển đổi MP4 sang GIF trực tuyến, miễn phí chuyển đổi .MP4 sang .GIF

Sửa đổi tệp ‘flume.conf’

Bước 1)  Mở  ‘flume.conf’  ở chế độ ghi và đặt giá trị cho các tham số bên dưới-

sudo gedit flume.conf Sao chép nội dung bên dưới – MyTwitAgent. sources = Twitter MyTwitAgent. channels = MemChannel MyTwitAgent. sinks = HDFS MyTwitAgent. sources. Twitter. type = flume. mytwittersource. MyTwitterSourceForFlume MyTwitAgent. sources. Twitter. channels = MemChannel

MyTwitAgent.sources.Twitter.consumerKey =

MyTwitAgent.sources.Twitter.consumerSecret =

MyTwitAgent.sources.Twitter.accessToken =

MyTwitAgent.sources.Twitter.accessTokenSecret =

MyTwitAgent. sources. Twitter. keywords = guru99 MyTwitAgent. sinks. HDFS.channel = MemChannel MyTwitAgent. sinks. HDFS.type = hdfs MyTwitAgent. sinks. HDFS.hdfs.path = hdfs : / / localhost : 54310 / user / hduser / flume / tweets / MyTwitAgent. sinks. HDFS.hdfs.fileType = DataStream MyTwitAgent. sinks. HDFS.hdfs.writeFormat = Text MyTwitAgent. sinks. HDFS.hdfs.batchSize = 1000 MyTwitAgent. sinks. HDFS.hdfs.rollSize = 0 MyTwitAgent. sinks. HDFS.hdfs.rollCount = 10000 MyTwitAgent. channels. MemChannel. type = memory MyTwitAgent. channels. MemChannel. capacity = 10000 MyTwitAgent. channels. MemChannel. transactionCapacity = 1000 Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

Bước 2) Ngoài ra, hãy đặt  TwitterAgent.sinks.HDFS.hdfs.path  như bên dưới,

TwitterAgent.sinks.HDFS.hdfs.path = hdfs://://flume/tweets/

Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

Để biết   , , hãy xem giá trị của tham số  ‘fs.defaultFS’  được đặt trong  $ HADOOP_HOME / etc / hadoop / core-site.xml

Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

Bước 3) Để chuyển dữ liệu sang HDFS, khi nó đến, hãy xóa mục nhập bên dưới nếu nó tồn tại,

TwitterAgent.sinks.HDFS.hdfs.rollInterval = 600

Ví dụ: Truyền dữ liệu Twitter bằng Flume

Bước 1)  Mở  ‘flume-env.sh’  ở chế độ ghi và đặt giá trị cho các tham số bên dưới,

JAVA_HOME=

FLUME_CLASSPATH=”/lib/MyTwitterSourceForFlume.jar”

Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

Bước 2) flume động Hadoop

USD HADOOP_HOME / sbin / start-dfs.sh USD HADOOP_HOME / sbin / start-yarn.sh

Bước 3)  Hai trong số các tệp JAR từ tarball Flume không tương thích với Hadoop 2.2.0. Vì vậy, chúng ta sẽ cần làm theo các bước dưới đây trong ví dụ Apache Flume này để làm cho Flume tương thích với Hadoop 2.2.0.

một.  Di chuyển  protobuf-java-2.4.1.jar  ra flume  /lib’.

Đi tới /lib’

cd /lib

sudo mv protobuf-java-2.4.1.jar ~ / Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

NS.  Tìm tệp JAR ‘ổi’ như bên dưới

find. – name “ guava * ” Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

Di chuyển  guava-10.0.1.jar ra flume  /lib’.

sudo mv guava-10.0.1.jar ~ / Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

C. Tải xuống guava-17.0.jar  từ  http://mvnrepository.com/artifact/com.google.guava/guava/17.0

Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

Bây giờ, hãy sao chép tệp jar đã tải xuống này vào  /lib’.

Bước 4)  Đi tới  / bin’  và bắt đầu Flume as-

./flume-ng agent -n MyTwitAgent -c conf -f /conf/flume.conf

Tạo chương trình FLUME đầu tiên của bạn - Hướng dẫn cho người mới bắt đầu Command prompt window nơi flume đang tìm nạp Tweets – Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì

Từ thông báo window command, chúng ta có thể thấy rằng đầu ra được ghi vào thư mục  / user / hduser / flume / tweets /  .

Bây giờ, hãy mở thư mục này bằng trình duyệt web.

Bước 5)  Để xem kết quả tải dữ liệu, sử dụng trình duyệt mở  http: // localhost: 50070 /  và duyệt qua hệ thống tệp, sau đó chuyển đến thư mục nơi dữ liệu đã được tải, đó là-

/flume/tweets/

Hướng dẫn Apache Flume: Ví dụ về cấu trúc & Hadoop là gì Từ khóa tìm kiếm : flume hadoop, apache flume, flume là gì, twitter4j, hadoop du, is flume gay, guru99 hadoop, manh cfm,

Source: https://gauday.com
Category: Blog

Related Posts