5. Phƣơng pháp nghiên cứu
2.2.2. Các gói thƣ viện hỗ trợ mô hình lập trình MapReduce trê nR
Gói rhdfs: HDFS là hệ thống quản lý tập tin có kích thƣớc lớn sử dụng mô hình phân tán của Hadoop, là nơi lƣu trữ tập dữ liệu đầu vào để lập trình theo mô hình MapReduce. Gói rhdfs cung cấp các kết nối cơ bản từ R đến HDFS, có thể xem, đọc, viết, sửa chữa các tập tin lƣu trữ trong HDFS của Hadoop.
Các thao tác cơ bản của rhdfs (chi tiết xem trong [19]):
Bảng 2.2. Các thao tác cơ bản của thƣ viện rhdfs
Phƣơng thức Chức năng
hdfs.copy, hdfs.move, hdfs.rename, hdfs.delete,
hdfs.rm, hdfs.del, hdfs.chown, hdfs.put, hdfs.get Thao tác với tập tin hdfs.file, hdfs.write, hdfs.close, hdfs.flush, hdfs.read,
hdfs.seek, hdfs.tell, hdfs.line.reader, hdfs.read.text.file Đọc, ghi tập tin
hdfs.dircreate, hdfs.mkdir Thao tác với thƣ
mục
hdfs.ls, hdfs.list.files, hdfs.file.info, hdfs.exists Thao tác tiện ích
Gói rmr2: Giúp lập trình viên sử dụng Hadoop MapReduce trên R.
Phƣơng thức mapreduce: Tạo một công việc (Job) và thực hiện nó trên Hadoop.
54
Mapreduce (input, output, map, reduce, vectorized.reduce, combine, in.memory.combine, input.format, output.format, backend.parameters, verbose)
Bảng 2.3. Các tham số hàm MapReduce của thƣ viện rmr2
Đối số Chức năng
Input Đƣờng dẫn thƣ mục chứa tệp tin đầu vào (lƣu trong hdfs) Output Đƣờng dẫn thƣ mục chứa kết quả đầu ra (sẽ lƣu trong
hdfs) Map
Hàm Map của mô hình MapReduce đƣợc cụ thể trong R, giá trị trả về là chứa cặp key, value.Các kiểu dữ liệu có thể lƣu trong key và value: list, vector, matrix, datframe và NULL đối với key.
Reduce
Hàm Reduce của mô hình MapReduce đƣợc cụ thể trong R, nhận tham số là key và một cấu trúc dữ liệu chứa các value cùng key. Giá trị trả về là NULL hoặc keyval. Nếu không có hàm reduce, kết quả trả về của MapReduce là ouput của hàm Map.
vectorized.reduce
Đầu vào của Reduce là các key và tập các value của key đó. Tùy chọn cho phép key giống nhau liên tiếp nhóm lại cùng với các key xuất hiện một lần để giảm bớt số hàm Reduce trong các tập dữ liệu nhỏ để tiết kiệm máy con trong node.
Combine Thực hiện hàm kết hợp với Reduce khi combine. NULL là không có hàm kết hợp.
in.memory.combine
Áp dụng combine sau khi gọi hàm Map, trƣớc khi trả về kết quả cho Hadoop. Nhằm giảm số lƣợng I / O sắp xếp, phân phối kết quả đầu vào cho Reduce.
input.format Định dạng tập tin đầu vào output.format Định dạng tập tin đầu ra
backend.parameters Danh sách các tùy chọn để thay đổi ngữ nghĩa MapReduce, khuyến nghị không nên sử dụng
Verbose
Chạy Hadoop trong chế độ verbose. Khi giá trị bằng FALSE, Job và YARN trả về id ứng dụng nhƣ là thuộc tính. Không có tác dụng trên backend địa phƣơng.
55
Phƣơng thức keyval: Tạo một cặp giá trị key-value từ R, là kết quả của hàm Map hoặc Reduce.
keyval(key, value)
Bảng 2.4. Các tham số hàm keyval của thƣ viện rmr2
Đối số Chức năng
Key key của cặp key-value cần tạo Value value của cặp key-value cần tạo
Phƣơng thức to.dfs và from.dfs: Đọc một tập tin từ hệ thống đƣa vào R hoặc ghi một đối tƣợng từ R vào hệ thống.
to.dfs(kv, output = dfs.tempfile(), format = "native")
from.dfs(input, format = "native")
Bảng 2.5. Các tham số hàm to.dfs và from.dfs của thƣ viện rmr2
Đối số Chức năng
Kv Một cặp khóa giá trị hoặc đối tƣợng bất kỳ trong R (với key = NULL)
Output Đƣờng dẫn thƣ mục nơi cần ghi kv Input Đƣờng dẫn thƣ mục nơi cần đọc dữ liệu
Format
Chuỗi xác định các thiết lập IO (gồm: "text", "json", "csv", "native","sequence.typedbytes", "hbase", "pig.hive"). Đối với format đọc dữ liệu, thiết lập IO chấp nhận kiểu dữ liệu của tệp tin cần đọc. Đối với format ghi dữ liệu, thiết lập IO cần thiết để ghi dữ liệu vào hệ thống theo định dạng đã thiết lập.
Phƣơng thức to.map và to.reduce: Một tiện ích giúp chuyển đổi hàm bình thƣờng thành một phần của hàm map hoặc reduce mà không cần phải viết lại hàm.
56
to.reduce(fun1, fun2 = identity)
Bảng 2.6. Các tham số hàm to.map và to.reduce của thƣ viện rmr2
Đối số Chức năng
fun1 Hàm dùng để sinh key hoặc cặp key-value nếu không có đối số 2 fun2 Hàm dùng để sinh value