1.1 Giới thiệu
Ngày nay, các hệ thông thông tin ngày càng lưu trữ một khối lượng lớn dữ liệu về hoạt động hằng ngày của chúng. Từ khối dữ liệu này, các kĩ thuật trong khai phá dữ liệu và máy học có thể dùng để trích xuất những thông tin hữu ích mà chúng ta chưa biết. Các tri thức vừa học được có thể vận dụng để phân tích hoạt động và cải thiện hiện quả của hệ thống thông tin ban đầu.
Tuy nhiên, việc áp dụng các giải thuật về khai phá dữ liệu trên khối lượng dữ liệu thực tế lớn sẽ đòi hỏi thời gian xử lý rất dài và không hiệu quả. Đã có một số nỗ lực song song và phân bố hóa các giải thuật để chạy trên các hệ thống tính toán mạnh.
Tuy nhiên, nếu dữ liệu cần khai phá là rất lớn thì chúng vẫn đòi hỏi một lượng tài nguyên tính toán lớn và điều này gây ra rất nhiều khó khăn trong việc triển khai và áp dụng các ứng dụng khai phá dữ liệu trong thực tế. Trong khi đó, môi trường tính toán lưới hứa hẹn sẽ giải quyết rất tốt bài toán về tài nguyên tính toán với chi phí thấp.
Do đó, cách tiếp cận của chúng tôi là tìm hiểu chọn lọc, và đề xuất giải thuật khai phá dữ liệu có mô hình thích hợp với việc phát triển các phiên bản chạy trên nền tính toán phân bố. Để phù hợp với tính chất của môi trường tính toán lưới, các giải thuật này phải có khả năng thực hiện phân tán trên các nút tính toán không đồng nhất về khả năng tính toán và có kết nối lỏng lẻo. Để hiện thực ý tưởng này trên GRID, hệ thống về cơ bản sẽ cần có hai thành phần quan trọng cần phải nghiên cứu và hiện thực là: (1) Quản lý dữ liệu trên lưới; và (2) Khai phá dữ liệu trên lưới.
63 trang |
Chia sẻ: banmai | Lượt xem: 2085 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Quản lý và khai phá dữ liệu trên lưới, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
vào bảng, không cần phải thông qua quá trình xin ticket và thực thi ticket. Tuy nhiên, khi tính phí thì GDM xem mỗi lần client load data cũng như là một lần thực thi ticket, và cũng được liệt kê trong chi tiết tính phí.
Xin một ticket drop table để xóa bảng
public String getTicketDropTable(String table_name, String check_sum) throws Exception;
Client sử dụng chức năng này để xin một ticket xóa bảng trong data source.
Thực thi xóa bảng
public boolean dropTable(Token token) throws Exception;
Client sử dụng chức năng này để thực thi ticket xóa bảng.
Các chức năng hỗ trợ cho GDM administrator
Thêm một data source
public boolean addDataSource(String datasource_id, String datasource_name, String desc) throws Exception;
Aministrator sử dụng chức năng này để thêm vào một data source với các thông tin: mã số data source, tên data source, và mô tả về data source.
Thêm một data resource
public boolean addDataResource(String data_resource_id, String data_source_id, String handle, String host_name, String data_service_resource) throws Exception;
Aministrator sử dụng chức năng này để thêm một data resource cho một data source.
Thêm một ứng dụng sẽ sử dụng các data source quản lý bởi GDM
public boolean addApplication(String app_name, String app_desc) throws Exception ;
Aministrator sử dụng chức năng này để đăng kí một ứng dụng mới muốn truy xuất các dữ liệu do GDM quản lý.
Thêm một user đăng kí sử dụng GDM
public String addUser(String user_name, String app_name, String role, String data_source_id) throws Exception;
Aministrator sử dụng chức năng này để thêm mới một user cho một ứng dụng có tên là app_name, user này có thể truy xuất dữ liệu trong data source có mã là data_source_id, chi phí của các hành động truy xuất dữ liệu này sẽ được tính cho ứng dụng app_name. Phương thức này trả ra password ban đầu mà hệ thống sinh ngẫu nhiên cho user.
Xóa một user đã đăng kí sử dụng GDM
public boolean deleteUser(String user_name, String app_name) throws Exception;
Aministrator sử dụng chức năng này để xóa một user của ứng dụng app_name.
Tính phí cho một ứng dụng
public double computeFee(String app_name, String from_date, String to_date) throws Exception;
Aministrator sử dụng chức năng này để tính phí cho ứng dụng app_name. Thời gian tính phí từ ngày from_date đến ngày to_date. Định dạng ngày tháng được sử dụng là “yyyy-mm-dd”.
Lấy chi tiết tính phí cho một ứng dụng
public Vector[] getFeeDetails(String app_name, String from_date, String to_date) throws Exception;
Aministrator sử dụng chức năng này để lấy các thông tin chi tiết khi tính phí cho ứng dụng app_name từ ngày from_date đến ngày to_date. Thông tin chi tiết gồm các ticket được tính phí, số record tiket truy xuất, phí thu ứng với ticket này.
Thiết lập lại giá cho một loại ticket
public boolean setTicketPrice(String ticket_type, double unit_price) throws Exception;
Aministrator sử dụng chức năng này để điều chỉnh lại mức phí đơn vị cho một loại ticket_type.
Đặc tả các lớp hiện thực hệ thống
GDM Client
Tên lớp
Chức năng
Token
Chứa ticket_id và check_sum
ColumnInfo
Chứa thông tin một cột trong table: name và sql_type
Schema
Chứa schema của một table
Partition
Chứa thông tin về một partition: partition_id, host_name, n_record
Utility
Chuyển đổi qua lại giữa string và các lớp trên
IGDMClient
Định nghĩa interface để client và admin làm việc với GDM.
GDM_Client
Hiện thực interface IGDMClient.
Lớp này có sử dụng Utility để chuyển đổi qua lại giữa string và các kết quả trả về cho client.
Lớp này sẽ gọi các hàm của lớp GDM_Interface bên dưới.
TestClient
Các ví dụ về cách sử dụng interface cung cấp cho client.
TestAdmin
Các ví dụ về cách sử dụng interface cung cấp cho Admin.
Lớp Token
Các field dữ liệu
public String ticket_id: định danh của ticket.
public String check_sum: để kiểm tra tính hợp lệ của ticket, ví dụ thông tin về người thực thi ticket.
public String executer: người được cấp quyền thực thi ticket này, khi nào executer và check_sum phù hợp nhau thì mới cho phép thực thi ticket.
Các phương thức
public Token(String ticket_id, String check_sum, String executer): hàm khởi tạo
Lớp ColumnInfo
Các field dữ liệu
public String name: tên cột.
public String sql_type: kiểu dữ liệu của cột.
Các phương thức
public ColumnInfo(String name, String sql_type): hàm khởi tạo.
Lớp Schema
Các field dữ liệu
public ColumnInfo[] columns: danh sách thông tin của các cột trong một bảng.
Các phương thức
không có
Lớp Partition
Các field dữ liệu
public String partition_id: định danh của partition.
public String host_name: địa chỉ IP của máy chứa partition.
public long n_record: số lượng record trong partition.
Các phương thức
không có
Lớp Utility
Các field dữ liệu
không có
Các phương thức
public static String[] getDataSources(String sql_result): trả ra danh sách các data_source từ kết quả dạng string của câu truy vấn.
public static String[] getTables(String sql_result): trả ra danh sách các bảng trong data_source từ kết quả dạng string của câu truy vấn.
public static Partition[] lockTable(String sql_result): trả ra danh sách các đối tượng thuộc lớp Partition từ kết quả dạng string của câu truy vấn.
public static Vector[] getData(String sql_result): trả ra vector hàng và cột từ kết quả dạng string của câu truy vấn.
public static String prepare_columns_insert(String[] column_names): chuyển danh sách các cột cần insert dữ liệu thành một string.
public static String prepare_data_insert(Vector[] record_set): chuyển dữ liệu cần insert ở dạng Vector sang dạng string.
public static Schema getTableSchema(String sql_result): trả ra đối tượng lớp Schema từ kết quả dạng string câu truy vấn.
public static String getTableStructure(Schema schema): chuyển đối tượng Schema thành dạng String.
public static String getTokenString(Token token): chuyển một token thành một chuỗi.
Lớp GDM_Client
Các field dữ liệu
GDM_Interface gdm: đối tượng GDM cung cấp interface cho client.
Các phương thức
Các phương thức trong interface đã trình bày trong mục 1.(Interface giao tiếp của hệ thống)
GDM Core
Tên lớp
Chức năng
GDM_Core
Cung cấp các chức năng cơ bản của GDM
GDM_Interface
Đóng gói các chức năng public của lớp GDM_Core
DaiBasicActivity
Cung cấp các hàm làm việc với OGSA_DAI
GDM_Exception
Hiện thực các exception để GDM sinh ra trong trường hợp thao tác xử lý bị lỗi
MyDate
Hiện thực lớp MyDate để biểu diễn lớp các đối tượng chứa ngày, tháng, năm
Constants
Định nghĩa các hằng số được sử dụng trong hiện thực GDM Client và GDM Core
Lớp DaiBasicActivity
Các field dữ liệu
private static String column_seperator: dùng để ngăn cách các cột của một hàng trong dữ liệu trả về bởi câu truy vấn.
private static String record_seperator: dùng để ngăn cách các hàng trong dữ liệu trả về bởi câu truy vấn.
Các phương thức
public static DataService connectResource(String handle, String id): kết nối vào một service của OGSA-DAI để có thể truy xuất dữ liệu bên dưới.
public static Object executeSelectQuery(DataService service, String sql, int output_type): thực thi một câu select sql lên database quản lý bởi một service của OGSA-DAI.
public static int executeUpdateQuery(DataService service, String sql): thực thi một câu update sql lên database quản lý bởi một service của OGSA-DAI.
public static Object getDatabaseSchema(DataService service, int output_type): lấy thông tin về schema của database quản lý bởi một service của OGSA-DAI.
private static Vector translateSchemaToVector(DatabaseSchemaMetaData schema): chuyển database schema từ dữ liệu lớp DatabaseSchemaMetaData thành dữ liệu kiểu vector.
private static String translateVectorSchemaToString(Vector vector_schema): chuyển database schema từ dữ liệu kiểu vector thành dữ liệu kiểu string.
Lớp GDM_Exception
Các field dữ liệu
Không có
Các phương thức
public GDM_Exception(String message): hàm khởi tạo để tạo ra một đối tượng Exception với thông tin là message.
public String toString(): trả ra chuỗi thông tin cần thông báo cho người sử dụng khi có exception xảy ra.
Lớp GDM_Core
Các field dữ liệu
private static final DataService gdmDataService: service dùng để tương tác với OGSA-DAI nhằm truy xuất và cập nhật metadata của GDM.
private boolean connected: client đã connect vào GDM hay chưa.
private String data_source: chứa data_source mà client đang connect vào.
private String data_resource_ids: những data_resource trong data_source đang connect.
private String database_schema: schema của data_source mà client đang connect.
private boolean credential_sent: client đã sent credential hay chưa.
private String credential: credential của client.
private String user_role: role của client đang connect vào.
private String user_name: user name của client đang connect vào.
Các phương thức
public String getDataSources(): trả ra các data_source mà GDM đang quản lý.
public boolean connect(String dataSource, String user, String password): một client xin kết nối với GDM.
public void disconnect(): client ngưng kết nối với hệ thống.
public String getTables(): trả ra danh sách các table có trong data_source.
private String getDataResourceId(int index): trả ra định danh của data_resource có chỉ số index trong các data_resource của data_source mà client dang connect.
private int getNumberResourceId(): trả ra số lượng data_resource trong data_source hiện client đang connect.
private String executeSelectQuery(DataService service, String sql): thực thi một câu cập nhật select sql thông qua một service của OGSA-DAI.
private int executeUpdateQuery(DataService service, String sql): thực thi một câu truy vấn update sql thông qua một service của OGSA-DAI.
private String generateTicketId(): sinh ra một ticket_id mới để cấp cho client, đảm bảo ticket_id không bị trùng lắp với các id cũ đã sinh trước đó.
private String getDatabaseSchema(DataService service): trả ra schema của data_source, gồm những bảng nào, cấu trúc mỗi bảng.
private String[] getHandleAndResourceId(String data_resource_id): trả ra handle và resource id dùng để liên kết vói OGSA-DAI.
private String doGetTableSchema(String table_name): lấy thông tin từ metadata để trả ra schema của một table.
public String getTableSchema(String table_name): trả ra cho client thông tin về schema của một table.
public int getNumberOfRow(String table_name): trả ra số lượng hàng của một bảng trên tất cả các data_source.
public boolean sendCredential(String credential): client gửi credential cho GDM.
public String lockTable(String table_name): client xin lock một table, trả ra thông tin về các partition của table đó trên các data_resource.
public boolean unlockTable(String table_name): client xin unlock một table.
public String getTicketInsertRecords(String table_name, String column_names, String check_sum): client xin một ticket insert record.
private String getDataResoureWithSmallestData(String table_name): trả ra partition trên data_resource nào chứa số hàng ít nhất trong các partition của một table.
public boolean insertRecords(String token_string, String data_insert): client thực thi ticket insert record.
public boolean loadData(String table_name, String data_insert): client load dữ liệu vào bảng.
public String getTicketData(String table_name, String partition, int start_index, int stop_index, String check_sum): client xin ticket lấy dữ liệu trên một partition.
public String getTicketData(String table_name,String check_sum): client xin ticket lấy dữ liệu toàn bộ bảng.
public String getData(String token_string): client lấy data ứng với ticket_id trong token.
private String getTransactimeString(): trả ra thời gian của hệ thống khi một ticket vừa được thực thi.
public String getTicketDropTable(String table_name, String check_sum): client xin ticket xóa một bảng.
public boolean dropTable(String token_string): client thực thi xóa một bảng.
public String getTicketCreateTable(String table_name, String schema, String check_sum): client xin ticket tạo bảng.
public boolean createTable(String token_string): client thực thi tạo bảng.
private String generateUserPass(): sinh ra password ban đầu khi tạo mới một user.
public boolean addDataSource(String datasource_id, String datasource_name, String desc): admin thêm một data_source.
public boolean addDataResource(String data_resource_id, String data_source_id, String handle, String host_name, String data_service_resource): admin thêm một data_resource.
public String addUser(String user_name, String app_name, String role, String data_source_id): admin thêm một user của một ứng dụng có đăng kí sử dụng dữ liệu cung cấp bởi GDM.
public boolean deleteUser(String user_name, String app_name): admin xóa một user của một ứng dụng có đăng kí sử dụng dữ liệu cung cấp bởi GDM.
public boolean addApplication(String app_name, String app_desc): admin thêm vào metadata thông tin về ứng dụng mà GDM sẽ hỗ trợ việc truy xuất dữ liệu.
public double computeFee(String app_name, String start_date, String end_date): tính phí cho một ứng dụng trong một khoảng thời gian giữa 2 thời điểm.
public String getFeeDetails(String app_name, String start_date, String end_date): trả ra chi tiết tính phí cho một ứng dụng trong một khoảng thời gian giữa 2 thời điểm.
public boolean setTicketPrice(String ticket_type, double unit_price): thiết lập giá đơn vị khi tính phí cho một loại ticket.
Siêu dữ liệu của hệ thống
Tạo bảng chứa thông tin về các data source:
create table Data_Source (data_source_id varchar(20) not null, data_source_name varchar(50) not null, description varchar(200), primary key(data_source_id));
Tên column
Kiểu dữ liệu
Ý nghĩa
data_source_id
varchar(20)
Mã số của data source
data_source_name
varchar(50)
Tên của data source
description
varchar(200)
Mô tả về data source
Tạo bảng chứa thông tin về các data resource của các datasource:
create table Data_Resource(data_resource_id varchar(20) not null, data_source_id varchar(20) not null, handle varchar(200) not null, host_name varchar(50) not null, data_service_resource_id varchar(50) not null, primary key(data_resource_id), foreign key (data_source_id) references Data_Source(data_source_id));
Tên column
Kiểu dữ liệu
Ý nghĩa
data_resource_id
varchar(20)
Mã số của data resource
data_source_id
varchar(20)
Mã số của data source chứa data resource
handle
varchar(200)
Handle dùng để truy xuất đến data resource khi dùng Ogsa-dai
host_name
varchar(50)
Địa chỉ IP của node mà data resource được lưu trữ
data_service_resource_id
varchar(50)
Service resource id dùng để truy xuất đến data resource khi dùng Ogsa-dai
Tạo bảng chứa thông tin về các bảng trong các data resource:
create table Data_Item (data_item_name varchar(20) not null, data_resource_id varchar(20) not null, primary key(data_item_name, data_resource_id), foreign key (data_resource_id) references Data_Resource(data_resource_id));
Tên column
Kiểu dữ liệu
Ý nghĩa
data_item_name
varchar(20)
Tên của bảng dữ liệu
data_resource_id
varchar(20)
Mã số của data resource chứa bảng dữ liệu
Tạo bảng chứa thông tin về các ứng dụng đăng kí sử dụng GDM:
create table Application(credential varchar(50) not null, description varchar(200), primary key(credential));
Tên column
Kiểu dữ liệu
Ý nghĩa
credential
varchar(50)
Tên của ứng dụng
description
varchar(200)
Mô tả về ứng dụng
Tạo bảng chứa thông tin về các user:
create table User (user_name varchar(50) not null, password varchar(20) not null, credential varchar(50) not null, role varchar(50) not null, data_source_id varchar(20) not null, primary key(User_name,credential), foreign key(credential)references Application(credential), foreign key (data_source_id) references Data_Source(data_source_id));
Tên column
Kiểu dữ liệu
Ý nghĩa
user_name
varchar(50)
Tên user
password
varchar(20)
password
credential
varchar(50)
Tên ứng dụng
role
varchar(50)
Các quyền của user
data_source_id
varchar(20)
Mã số của data source mà user có thể truy xuất
Tạo bảng chứa thông tin về các ticket:
create table Ticket (ticket_id varchar(20) not null, ticket_type varchar(20)not null, valid_time datetime not null, credential varchar(50) not null, check_sum varchar(30) not null, executed varchar(1) not null default 'n', date_completed datetime default '0000-00-00 00:00:00', num_row int default 0, num_col int default 0, primary key(ticket_id));
Tên column
Kiểu dữ liệu
Ý nghĩa
ticket_id
varchar(20)
Mã số của ticket
ticket_type
varchar(20)
Loại ticket
valid_time
datetime
Thời gian ticket còn hiệu lực
credential
varchar(50)
Tên của ứng dụng xin ticket
check_sum
varchar(30)
Thông tin để xác thực người có quyền hợp pháp khi thực thi ticket
executed
varchar(1)
Có 2 trị ‘y’ hoặc ‘n’, cho biết ticket đã được thực thi hay chưa
date_completed
datetime
Ngày ticket được thực thi
num_row
int
Số lượng record mà ticket truy xuất đến
num_col
int
Số lượng column mà ticket truy xuất đến
Tạo bảng chứa thông tin về giá đơn vị của các loại ticket:
create table Ticket_Price(ticket_type varchar(20)not null, unit_price double not null default 0, primary key(ticket_type));
Tên column
Kiểu dữ liệu
Ý nghĩa
ticket_type
varchar(20)
Loại ticket
unit_price
double
Giá đơn vị của loại ticket
Tạo bảng chứa thông tin về các ticket data:
create table Ticket_Data(ticket_id varchar(20) not null, data_item_name varchar(20) not null, data_resource_id varchar(20) not null, startIndex integer not null, stopIndex integer not null, primary key (ticket_id), foreign key (data_item_name) references Data_Item(data_item_name), foreign key (data_resource_id) references Data_Resource(data_resource_id));
Tên column
Kiểu dữ liệu
Ý nghĩa
ticket_id
varchar(20)
Mã số ticket
data_item_name
varchar(20)
Tên bảng mà ticket truy xuất đến
data_resource_id
varchar(20)
Mã số data resource mà ticket truy xuất đến, nếu thông tin này là null thì ticket truy xuất đến mọi data resource có chứa bảng có tên ở trên
startIndex
integer
Chỉ số của record bắt đầu truy xuất
stopIndex
integer
Chỉ số của record cuối khi truy xuất, các record được truy xuất có chỉ số từ startIndex đến stopIndex.
Tạo bảng chứa thông tin về các ticket create table:
create table Ticket_Create_Table(ticket_id varchar(20) not null, data_item_name varchar(20) not null, data_resource_id varchar(20), table_structure varchar(500) not null,primary key (ticket_id), foreign key (data_item_name) references Data_Item(data_item_name), foreign key (data_resource_id) references Data_Resource(data_resource_id) );
Tên column
Kiểu dữ liệu
Ý nghĩa
ticket_id
varchar(20)
Mã số ticket
data_item_name
varchar(20)
Tên bảng mà ticket sẽ tạo
data_resource_id
varchar(20)
Mã số data resource nơi mà ticket sẽ tạo bảng, nếu thông tin này là null thì ticket sẽ tạo bảng trên mọi data resource của data source mà user đang kết nối
table_structure
varchar(500)
Cấu trúc của bảng sẽ được tạo
Tạo bảng chứa thông tin về các ticket insert record:
create table Ticket_Insert_Record(ticket_id varchar(20) not null, data_item_name varchar(20) not null, data_resource_id varchar(20), column_names varchar(300) not null, primary key (ticket_id), foreign key (data_item_name) references Data_Item(data_item_name), foreign key (data_resource_id) references Data_Resource(data_resource_id) );
Tên column
Kiểu dữ liệu
Ý nghĩa
ticket_id
varchar(20)
Mã số ticket
data_item_name
varchar(20)
Tên bảng mà ticket sẽ insert dữ liệu vào
data_resource_id
varchar(20)
Mã số data resource mà ticket sẽ insert dữ liệu vào, nếu thông tin này là null thì ticket sẽ insert dữ liệu vào data resource đang có số lượng record ít nhất
column_names
varchar(300)
Các cột dữ liệu sẽ được insert dữ liệu
Tạo bảng chứa thông tin về các ticket drop table:
create table Ticket_Drop_Table(ticket_id varchar(20) not null, data_item_name varchar(20) not null, data_resource_id varchar(20), primary key (ticket_id), foreign key (data_item_name) references Data_Item(data_item_name), foreign key (data_resource_id) references Data_Resource(data_resource_id) );
Tên column
Kiểu dữ liệu
Ý nghĩa
ticket_id
varchar(20)
Mã số ticket
data_item_name
varchar(20)
Tên bảng mà ticket sẽ bị hủy bỏ
data_resource_id
varchar(20)
Mã số data resource nơi mà ticket xóa bảng, nếu thông tin này là null thì ticket sẽ xóa bảng trên mọi data resource của data source mà user đang kết nối
Tạo bảng chứa thông tin về các bảng đang bị lock:
create table Locked_Table (data_source_id varchar(20) not null, table_name varchar(20) not null);
Tên column
Kiểu dữ liệu
Ý nghĩa
data_source_id
varchar(20)
Mã số data source có bảng đang bị lock
table_name
varchar(20)
Tên của bảng đang bị lock
Phụ lục B: Hướng dẫn cài đặt GDM trên môi trường GRID
Môi trường làm việc
export GLOBUS_LOCATION=/usr/local/globus-4.0.1
source $GLOBUS_LOCATION/etc/globus-user-env.sh (đặt tất cả các thư viện của Globus vào trong CLASS-PATH)
export ANT_HOME=/usr/local/apache-ant-1.6.5/
export JAVA_HOME=/usr/java/j2sdk1.4.2_11/
export PATH=$ANT_HOME/bin:$JAVA_HOME/bin:$PATH
Cài đặt Mysql
rpm -i MySQL-server-standard-5.0.20a-0.rhel3.i386.rpm (cài đặt mysql server)
rpm -i MySQL-client-standard-5.0.20a-0.rhel3.i386.rpm (cài đặt mysql client)
Cài đặt OGSA-DAI
/ogsadai-wsrf-2.1/doc/wsrf/install.html
Cài đặt OGSA-DAI
Trước tiên chúng ta cần có:
Phần mềm cài đặt OGSA-DAI WSRF
Jakarta ANT 1.5 or 1.6
Một hệ quản trị cơ sở dữ liệu, ở đây MySql được sử dụng (database driver tương ứng là mysql-connector-java-3.1.8-bin.jar)
Bên cạnh đó cần thêm một số tập tin sau:
jakarta-oro-2.0.8.jar
Một trong các tập tin: xmldb.jar, xmldb-api.jar, xmldb-api-20030701.jar
lucene-1.4.3.jar
Ta sẽ tiến hành cài đặt OGSA-DAI trên GT4:
Đặt tất cả các tập tin .jar vào thư mục lib nằm bên trong OGSA-DAI WSRF
$ export GLOBUS_LOCATION=/path/to/Globus/directory
Tắt GT4 Container
Tiến hành cài đặt OGSA-DAI WSRF: Chạy dòng lệnh sau từ vị trí thư mục OGSA-DAI binary distribution: $ ant deployGT4
Cách remove OGSA-DAI khỏi GT4:
$ export GLOBUS_LOCATION=/path/to/Globus/directory
Chạy dòng lệnh sau từ vị trí thư mục OGSA-DAI binary distribution: $ ant undeployGT4
Cài đặt Data Service và Data Service Resource
Xem mục Exposing Data Resource using OGSA-DAI WSRF
Đầu tiên ta sẽ cài đặt một Data Service, người sử dụng sẽ tương tác với Data Service khi muốn truy xuất những Data Resource bên dưới. Ban đầu Data Service này sẽ chưa cung cấp một Data Service Resource nào cả.
Cài đặt một Data Service Resource. Data Service Resource sẽ chứa thông tin về một Data Resource cụ thể, ở đây là MySql
Khai báo Data Service Resource này với Data Service. Từ đây Data Service này sẽ quản lý Data Service Resource.
Ví dụ:
- Tạo Database daitest và một user tương ứng (daitest-daitest)
- Login vào Mysql bằng root
root$mysql
mysql>create database daitest
mysql>create user daitest
mysql> GRANT ALL PRIVILEGES ON *.* TO 'daitest'@'localhost'
-> IDENTIFIED BY 'daitest' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'daitest'@'%'
-> IDENTIFIED BY 'daitest' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
mysql> GRANT USAGE ON *.* TO 'dummy'@'localhost';
mysql>exit
root>mysql --user daitest --password
enterpassword? daitest
mysql>use daitest
mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
-> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
mysql> INSERT INTO pet
-> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);
name owner species sex birth death
Fluffy Harold cat f 1993-02-04
Claws Gwen cat m 1994-03-17
Buffy Harold dog f 1989-05-13
Fang Benny dog m 1990-08-27
Bowser Diane dog m 1979-08-31 1995-07-29
Chirpy Gwen bird f 1998-09-11
Whistler Gwen bird 1997-12-09
Slim Benny snake m 1996-04-29
mysql>exit
- Deploy một data service
(/ogsadai-wsrf-2.1/doc/wsrf/deploy/DeployDataService.html)
$ ant deployDataServiceGT4 -Dgt.dir=/path/to/GT4/directory
-Ddai.service.path=service/path
dai.service.path specifies the local URL of the service. For example -Ddai.service.path=ogsadai/DataService specifies a data service whose URL will be
Ví dụ deploy một data service có tên là DataService
root$ ant deployDataServiceGT4 -Dgt.dir=/usr/local/globus -Ddai.service.path=ogsadai/DataService
To check that a service has been deployed under GT4:
Start the GT4 container:
$ cd $GLOBUS_LOCATION
$ ./bin/globus-start-container -nosec
Eventually a list of service URLs will be displayed. You should see one corresponding to your service. For example:
[22]:
- Deploy Data Service Resource
(/ogsadai-wsrf-2.1/doc/wsrf/deploy/DeployDataServiceResource.html)
+Tắt Web services container
+Tạo file miêu tả các thuộc tính của data service resource
Trong thư mục đặt OGSA-DAI WSRF có để sẵn một file ví dụ sẵn có tên là data.service.resource.properties, nếu chúng ta muốn tạo file miêu tả nào mới chỉ việc copy file này và sửa lại cho phù hợp, cũng đặt vào trong thư mục OGSA-DAI WSRF.
Ví dụ tạo file DaiTestResource.config miêu tả thuộc tính của một Data Service Resource có tên là DaiTestResource, DaiTestResource sẽ map vào cơ sở dữ liệu daitest chứa trong MySql
Những nội dung chính cần sửa đổi trong file là:
dai.resource.id= DaiTestResource
dai.data.resource.type=Relational
dai.product.name=MySQL
dai.product.vendor=MySQL
dai.product.version=1.0
dai.data.resource.uri= jdbc:mysql://violet.dit.hcmut.edu.vn:3306/daitest
dai.driver.class=org.gjt.mm.mysql.Driver
dai.user.name=daitest
dai.password=daitest
- Deploy a data service resource
$ ant deployResourceGT4 -Dgt.dir=/path/to/GT4/directory
-Ddai.service.resource.file=DAI-SERVICE-RESOURCE-FILE
Ví dụ ở đây:
[root@violet ogsadai-wsrf-2.1]# ant deployResourceGT4 -Dgt.dir=/usr/local/globus-4.0.1 -Ddai.service.resource.file=DaiTestResource.config
dai.service.resource.file specifies the location of a data service resource properties file. If no argument is given then a default location of data.service.resource.properties (within the OGSA-DAI WSRF distribution directory) is assumed.
- Add data service resource vao trong Data Service sẵn có
$ ant addResourceGT4 -Ddai.service.path=service/path
-Ddai.resource.id=ResourceID -Dgt.dir=/path/to/GT4/directory
dai.service.path specifies the local URL of the service. For example -Ddai.service.path=ogsadai/DataService specifies a data service whose URL will be
-Ddai.resource.id= is the ID of the data service resource that the data service is to expose. This must be the name of a data service resource which you have already deployed as described on the previous page. For example -Ddai.resource.id=MySQLResource.
Ví dụ add DaiTestResource vào trong DataService
[root@violet ogsadai-wsrf-2.1]# ant addResourceGT4 -Ddai.service.path= ogsadai/DataService -Ddai.resource.id=DaiTestResource -Dgt.dir=/usr/local/globus-4.0.1(hailh: service.path: chỉ tên service. Chỉ khi nào là url, uri thì mới ghi full đường dẫn. Lưu ý: url thay đổi tùy theo chạy container với –nosec hay không)
Sử dụng OGSA-DAI WSRF Clients
OGSA-DAI và GT4 cung cấp rất nhiều chương trình client giúp chúng ta có thể tương tác với OGSA-DAI WSRF services một cách dễ dàng
ListResources Client
Liệt kê những Data Service Resource được cung cấp bởi một OGSA-DAI WSRF Data Service.
Ví dụ: ant listResourcesClient -Ddai.url=(Lưu ý: dai.url là hay https://... Tùy theo start-globus-container có sử dụng –nosec hay không). Tất cả các thiết lập trình bày trong tài liệu này đều chạy container không có security.
GetProperty Client
Lấy thuộc tính của một Data Service Resource được cung cấp bởi một OGSA-DAI WSRF Data Service chẳng hạn activityTypes( những thao tác mà một Data Service Resource có thể thực hiện trên Data Resource mà nó quản lý), performDocumentSchema (XML schema đặc tả cấu trúc hợp pháp của một Perform Document mà Data Service Resource có thể xử lý) …
Ví dụ: Lấy database schema của một data resource
ant getPropertyClient -Ddai.url= -Ddai.resource.id=DaiTestResource -Ddai.property={}databaseSchema
End-To-End Client
Cho phép:
Tương tác với một Data Service và liệt kê những Data Service Resource mà nó cung cấp
Gởi một Perform Document tới Data Service và in ra kết quả của Response Document (là kết quả trả về để đáp ứng những yêu cầu nêu trong Perform Document)
Databrowser
Một GUI cho phép chúng ta tương tác với cơ sở dữ liệu quan hệ và XML
Các thao tác thường sử dụng khi xây dựng một ứng dụng sử dụng OGSA-DAI
Lấy siêu dữ liệu của dịch vụ và các Data Resource bên dưới
Phiên bản của các dịch vụ đang chạy trên OGSA-DAI server
Liệt kê các Data Resource cung cấp bởi một Data Service
Các Activity hỗ trợ bởi Data Resource và siêu dữ liệu của mỗi Activity
Thông tin sản phẩm của Data Resource như tên, nhà cung cấp, phiên bản…
Lấy các thuộc tính của Data Service
Định vị Data Service
Xác định Data Service nào chịu trách nhiệm quản lý Data Resource mà ta muốn sử dụng.
Lấy danh sách các Data Resource được cung cấp bởi một Data Service và chọn ra Data Resource mình muốn làm việc
Thực hiện truy vấn trên Data Resource. Các dạng truy vấn thường gặp:
Một câu truy vấn Sql đơn giản
Một chuỗi các câu truy vấn
Câu truy vấn được tham số hóa cho phép làm việc trên các phần dữ liệu khác nhau của cùng một Data Resource qua các lần lặp khác nhau.
Một câu truy vấn XPath khi thao tác trên cơ sở dữ liệu XML
Điều khiển dòng chảy
Khi gởi một Perform Document chứa nhiều activity ta cần xác định trật tự các activity được xử lý bởi dịch vụ.
Xử lý kết quả
Ứng với mỗi Perform Document (chứa các yêu cầu thể hiện dưới dạng các activity) sẽ có một Response Document trả về. Response Document gồm nhiều bản báo cáo về các activity, mỗi bản báo cáo về một activity sẽ chứa trạng thái của activity đó và có thể cả dữ liệu kết quả. Ta có thể lấy dữ liệu trả về này và xử lý tiếp như ghi kết quả vào bảng, chuyển nó sang dạng HTML, hoặc chuyển sang một cơ sở dữ liệu khác…
Cập nhật và tải dữ liệu
Cập nhật cơ sở dữ liệu quan hệ, cơ sở dữ liệu XML và tải một phần dữ liệu từ bảng này sang bảng khác
Biến đổi dữ liệu
Biến đổi dạng văn bản XML sang dạng văn bản text hoặc các định dạng khác, như HTML…
Nén dữ liệu bằng thao tác zipArchive và gzipCompression
Tích hợp dữ liệu
Kết nối dữ liệu giữa các lọai cơ sở dữ liệu khác nhau, chẳng hạn giữa cơ sở dữ liệu XML và cơ sở dữ liệu quan hệ
Phân phối dữ liệu
Chuyển dữ liệu tới một địa chỉ URL, GridFTP, một tập tin
Chuyển dữ liệu giữa các Data Service Resource
Cài đặt GDM database
MySQLResource: chứa meta data. Tên MySQLResource được code cứng.MySQLResource, DaiTestResource là 2 resource chứa data. Tên cấu hình được, chứa trong MySQLResource. 2 data resource này chứa các dữ liệu partition 1 & partition 2 của dữ liệu.
Phai tao data resource & add vào data service: MySQLResource, DaiTestResource, MySqlResource. Các resource trong DataService:
Data service resource
MySql database
Usage
MySQLResource
ogsadai
GDM meta data
DaiTestResource
daitest
Partition 1
MySqlResource
mytest
Partition 2
Tạo Database
(Lưu ý: MySQL phân biệt chữ hoa & chữ thường)
Create user daitestUser daitest sẽ là user mà 3 data serive resource dùng để truy xuất vào 3 database tương ứng.(trong ví dụ về tạo dataservice resource ở trên, ta đã tạo & cấp quyền rồi. Do đó, nếu đã làm ở trên thì không cần làm lại đoạn script bên dưới)mysql>create user daitestmysql> GRANT ALL PRIVILEGES ON *.* TO 'daitest'@'localhost' IDENTIFIED BY 'daitest' WITH GRANT OPTION;mysql> GRANT ALL PRIVILEGES ON *.* TO 'daitest'@'%' IDENTIFIED BY 'daitest' WITH GRANT OPTION;mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';mysql> GRANT USAGE ON *.* TO 'dummy'@'localhost';mysql>exit
Cài đặt các Data service resource
Data service resource MySQLResource
Deploy Data service resource MySQLResource+Tắt Web services container +Tạo file miêu tả các thuộc tính của data service resource
(Copy file data.service.resource.properties thành MySQLResource.config (đã có sẵn trong file source ogsa_dai)Những nội dung chính cần sửa đổi trong file là:
dai.resource.id= MySQLResource
dai.data.resource.type=Relational
dai.product.name=MySQL
dai.product.vendor=MySQL
dai.product.version=1.0
dai.data.resource.uri= jdbc:mysql://172.28.10.75:3306/ogsadai
dai.driver.class=org.gjt.mm.mysql.Driver
dai.user.name=daitest
dai.password=daitest
+ Deploy a data service resource
$ ant deployResourceGT4 -Dgt.dir=/usr/local/globus -Ddai.service.resource.file=MySQLResource.config+Add data service resource vao trong Data Service sẵn có $ ant addResourceGT4 -Ddai.service.path=ogsadai/DataService -Ddai.resource.id=MySQLResource -Dgt.dir=/usr/local/globus
Data service resource DaiTestResource
(đã làm trong ví dụ ở trên)$ ant deployResourceGT4 -Dgt.dir=/usr/local/globus -Ddai.service.resource.file=DaiTestResource.config
$ ant addResourceGT4 -Ddai.service.path=ogsadai/DataService -Ddai.resource.id=DaiTestResource -Dgt.dir=/usr/local/globus
Data service resource MySqlResource
Deploy Data service resource MySqlResource+Tắt Web services container +Tạo file miêu tả các thuộc tính của data service resource
(Copy file data.service.resource.properties thành MySqlResource.config (đã có sẵn trong file source ogsa_dai)Những nội dung chính cần sửa đổi trong file là:
dai.resource.id= MySqlResource
dai.data.resource.type=Relational
dai.product.name=MySQL
dai.product.vendor=MySQL
dai.product.version=1.0
dai.data.resource.uri= jdbc:mysql://172.28.10.75:3306/mytest
dai.driver.class=org.gjt.mm.mysql.Driver
dai.user.name=daitest
dai.password=daitest
+ Deploy a data service resource
$ ant deployResourceGT4 -Dgt.dir=/usr/local/globus -Ddai.service.resource.file=MySqlResource.config+Add data service resource vao trong Data Service sẵn có $ ant addResourceGT4 -Ddai.service.path=ogsadai/DataService -Ddai.resource.id=MySqlResource -Dgt.dir=/usr/local/globus
Tạo database
Database daitestmysql>create database daitestroot>mysql --user daitest --password enterpassword? daitestmysql>use daitestThực hiện các câu lệnh tạo table & insert dữ liệu như bên dưới
Database ogsadaimysql>create database ogsadairoot>mysql --user daitest --password enterpassword? daitestmysql>use ogsadaiThực hiện các câu lệnh tạo table & insert dữ liệu như bên dưới
Database mytestmysql>create database mytestroot>mysql --user daitest --password enterpassword? daitestmysql>use mytestThực hiện các câu lệnh tạo table & insert dữ liệu như bên dưới
////////
use ogsadai;
//Set up GDM database
drop table Data_Source;
drop table Data_Resource;
drop table Data_Item;
drop table Application;
drop table User;
drop table Ticket_Price;
drop table Ticket;
drop table Ticket_Data;
drop table Ticket_Create_Table;
drop table Ticket_Insert_Record;
drop table Ticket_Drop_Table;
drop table Locked_Table;
create table Data_Source (data_source_id varchar(20) not null, data_source_name varchar(50) not null, description varchar(200), primary key(data_source_id));
create table Data_Resource(data_resource_id varchar(20) not null, data_source_id varchar(20) not null, handle varchar(200) not null, host_name varchar(50) not null, data_service_resource_id varchar(50) not null, primary key(data_resource_id), foreign key (data_source_id) references Data_Source(data_source_id));
create table Data_Item (data_item_name varchar(20) not null, data_resource_id varchar(20) not null, primary key(data_item_name, data_resource_id), foreign key (data_resource_id) references Data_Resource(data_resource_id));
create table Application(credential varchar(50) not null, description varchar(200), primary key(credential));
create table User (user_name varchar(50) not null, password varchar(20) not null, credential varchar(50) not null, role varchar(50) not null, data_source_id varchar(20) not null, primary key(User_name,credential), foreign key(credential)references Application(credential), foreign key (data_source_id) references Data_Source(data_source_id));
create table Ticket (ticket_id varchar(20) not null, ticket_type varchar(20)not null, valid_time datetime not null, credential varchar(50) not null, check_sum varchar(30) not null, executed varchar(1) not null default 'n', date_completed datetime default '0000-00-00 00:00:00', num_row int default 0, num_col int default 0, primary key(ticket_id));
create table Ticket_Price(ticket_type varchar(20)not null, unit_price double not null default 0, primary key(ticket_type));
create table Ticket_Data(ticket_id varchar(20) not null, data_item_name varchar(20) not null, data_resource_id varchar(20) not null, startIndex integer not null, stopIndex integer not null, primary key (ticket_id), foreign key (data_item_name) references Data_Item(data_item_name), foreign key (data_resource_id) references Data_Resource(data_resource_id));
create table Ticket_Create_Table(ticket_id varchar(20) not null, data_item_name varchar(20) not null, data_resource_id varchar(20), table_structure varchar(500) not null,primary key (ticket_id), foreign key (data_item_name) references Data_Item(data_item_name), foreign key (data_resource_id) references Data_Resource(data_resource_id) );
create table Ticket_Insert_Record(ticket_id varchar(20) not null, data_item_name varchar(20) not null, data_resource_id varchar(20), column_names varchar(300) not null, primary key (ticket_id), foreign key (data_item_name) references Data_Item(data_item_name), foreign key (data_resource_id) references Data_Resource(data_resource_id) );
create table Ticket_Drop_Table(ticket_id varchar(20) not null, data_item_name varchar(20) not null, data_resource_id varchar(20), primary key (ticket_id), foreign key (data_item_name) references Data_Item(data_item_name), foreign key (data_resource_id) references Data_Resource(data_resource_id) );
create table Locked_Table (data_source_id varchar(20) not null, table_name varchar(20) not null);
insert into Data_Source values ('GdmDataSource','GdmDataSource','Virtual data source for gdm admin');
insert into Data_Source values ('TestDataSource','TestDataSource','We are the luck');
insert into Data_Source values ('AnotherDataSource','AnotherDataSource','We are the luck');
insert into Data_Resource values ('Partition1','TestDataSource','
insert into Data_Resource values ('Partition2','TestDataSource','
insert into Data_Item values ('Student','Partition1');
insert into Data_Item values ('Teacher','Partition1');
insert into Data_Item values ('Student','Partition2');
insert into Data_Item values ('Teacher','Partition2');
insert into Application values ('DataMining','Mining things in parrallel');
insert into Application values ('GdmApp','Virtual application for gdm admin');
insert into User values ('tam','tam','DataMining','read-write','TestDataSource');
insert into User values ('gdmadmin','gdmadmin','GdmApp','gdmadmin','GdmDataSource');
insert into Ticket_Price values ('GetData',1);
insert into Ticket_Price values ('DropTable',0);
insert into Ticket_Price values ('CreateTable',0);
insert into Ticket_Price values ('Insert',1);
insert into Ticket_Price values ('LoadData',1);
//////////////////////////////////////////////////////////////////////////////////////////////
//Set up partition 1 for test:
use DaiTestResource;
drop table Student;
drop table Teacher;
create table Student (student_id varchar(10), student_name varchar(30));
insert into Student values ('50001900','huyen');
insert into Student values ('50001901','tam');
insert into Student values ('50001902','khanh');
create table Teacher (teacher_id varchar(10), teacher_name varchar(30));
//////////////////////////////////////////////////////////////////////////////////////////////
//Set up Partition 2:
//use mytest;
drop table Student;
drop table Teacher;
create table Student (student_id varchar(10), student_name varchar(30));
insert into Student values ('50001903','minh');
insert into Student values ('50001904','hai');
insert into Student values ('50001905','hieu');
Cài đặt GridDataManagementService
cd /usr/local/workspace/ (di chuyển tới vị trí của file .gar)
globus-deploy-gar ./GridDataManagement/GridDataManagement.gar (deploy service)
globus-undeploy-gar GridDataManagement (undeploy service)//Lưu ý: globus-undeploy-gar GridDataManagement (không có đuôi .gar)
Chạy GridDataManagementService
Start service o non-security
cd $GLOBUS_LOCATION
source /usr/local/globus-4.0.1/etc/globus-user-env.sh
./bin/globus-start-container -nosec
Chạy client
cd /usr/local/workspace/GridDataManagementClient/ (di chuyển tới vị trí đặt file Client.class)
source /usr/local/globus-4.0.1/etc/globus-devel-env.sh
java -classpath /usr/local/workspace/GridDataManagement/GridDataManagementService/build/stubs/classes/:$CLASSPATH vn.edu.hcmut.cse.edagrid.client.Client
(/usr/local/workspace/GridDataManagement/GridDataManagementService/build/stubs/classes/ đây là nơi đặt các compiled stub classes được sinh ra bởi GridDataManagement service nhưng cũng có thể đặt chúng ở một vị trí khác tuỳ thích)
Phụ lục C: Hướng dẫn cài đặt và chạy ứng dụng Data mining
Cài đặt và cấu hình GDM
(xem tài liệu kĩ thuật GDM trong phụ lục trên)
Cài đặt Resource Discovery
Dịch vụ này do nhóm 1 cài.Lưu ý: trên máy client chạy chạy giao diện của ứng dụng DM vẫn phải cài phần client của RD (tham khảo tài liệu của nhóm phát triển hạ tầng GRID)Ta thực thi các lệnh sau để kiểm tra hoạt động của dịch vụ tìm kiếm tài nguyênedagrid$ grid-proxy-initedagrid$ cd /home/edagrid/hailh/resource-lookupedagrid$ source /usr/grid/edagrid/etc/edagrid-user-env.shedagrid$ source /usr/grid/edagrid/etc/edagrid-devel-env.shedagrid$ java Main https://edagrid.hcmut.edu.vn:8443/wsrf/services/hcmut/grid/VOResDiscoveryService jsdl.xmlNếu không có lỗi, kết quả sẽ hiển thị: …..RESULT: danh sách các tài nguyên
Cài đặt ứng dụng khai phá dữ liệu DM
Đăng kí hostname với DNS.
Bung file Hand-over\Deployment\DM\dm_install.zip vào thư mục bất kì (td: ~edagrid/hailh/dm)edagrid$ cd ~/hailh/dmedagrid$ unzip dm_install.zip
Cài đặt và cấu hình trên các tài nguyên tính toán
Trên mỗi tài nguyên tính toán (có thể trả về từ dịch vụ resource discovery), ta phải thực hiện các cài đặt và cấu hình sau:
Bung file Hand-over\Deployment\usr_local_datamining.zip vào thư mục /usr/local/datamining/Kết quả sẽ tạo ra các thư mục:/usr/local/datamining/deploy/proactive/usr/local/datamining/deploy/gdm/usr/local/datamining/deploy/globusĐặt full quyền read,write,execute cho các thư mục trên và các thư mục con của chúng.chmod –R 777 deploy
Nếu java không được cài vào thự mục /usr/local/java thì phải tạo link để /usr/local/java chỉ đến thư mục chứa Java.
Cấu hình tên host cho máy bằng cách chỉnh sử file /etc/hostsroot$ vi /etc/hosts(Td: trên máy ảo ta thêm hàng 172.28.10.219 vmlinux.edu.vn vmlinux)
Cấu hình gate-keeper
Thêm dòng sau vào file /etc/servicesgsigatekeeper 2119/tcp # Globus Gatekeeper
Tạo file /etc/xinetd.d/globus-gatekeeper với nội dung như sau:service gsigatekeeper{socket_type = streamprotocol = tcpwait = nouser = rootenv = LD_LIBRARY_PATH=/usr/grid/globus/libserver = /usr/grid/globus/sbin/globus-gatekeeperserver_args = -conf /usr/grid/globus/etc/globus-gatekeeper.confdisable = no}(Lưu ý: thay đổi đường dẫn globus cho phù hợp)Nếu máy cài linux Debian thì thêm vào cuối file /etc/inetd.conf dònggsigatekeeper stream tcp nowait root /usr/bin/env env GLOBUS_LOCATION=/usr/grid/globus LD_LIBRARY_PATH=/usr/grid/globus/lib /usr/grid/globus/sbin/globus-gatekeeper -conf /usr/grid/globus/etc/globus-gatekeeper.conf
Kich hoat dich vụ với lệnh/sbin/service xinetd restart.Sau đó, thực thi lệnh netstat -ap | grep gsigatekeeper để kiểm tra gsigatekeeper có chạy chưa
Kiểm tra khả năng thực thi lệnh của globusedagrid$ source $GLOBUS_LOCATION/etc/globus-user-env.shedagrid$ source $GLOBUS_LOCATION/etc/globus-devel-env.shedagrid$ grid-proxy-initedagrid$ globusrun-ws -submit -streaming -stdout-file stdout.log -stderr-file stderr.log -c /bin/ls -l /etc.
Hướng dẫn sử dụng ứng dụng
Bước 1: Khởi động RD & GDM
Chạy dịch vụ tìm kiếm tài nguyên (nhóm 1 thực hiện).Lưu ý: kiểm tra tất cả các tài nguyên tính toán trả về từ dịch vụ tìm kiếm tài nguyên đều phải được cấu hình ProActive như trong phần hướng dẫn cài đặt.
Khởi động máy ảo (chứa trong thư mục Hand-over\Deployment\Virtual machine)Thực thi file: Red Hat Enterprise Linux 4.vmx trong thư mục chứa máy ảo. Click Start this Virtual machine.
Máy ảo sẽ boot vào giao diện console của hệ điều hành linux. Login với username/password: edagrid/ed@gridVào giao diện đồ họa của Linuxedagrid$ startxBấm nút phải trên màn hình desktop chọn Konsole để chạy Console.
Chạy dịch vụ GDMTrong cửa sổ console thực thi cách lệnh để start globus, GDM sẽ tự động start theo.edagrid$ su root password: vmwareroot$source $GLOBUS_LOCATION/etc/globus-user-env.shroot$globus-start-container –nosec Globus sẽ start không có lỗi trong đó có dịch vụ GridDataManagement (service 47,48 trong hình trên).Bấm vào icon bên góc trái dưới để thêm vào Console một tab mới.
Bước 2: Chạy ứng dụngTrong cửa sổ console vừa mới tạo ra, thực hiện các lệnh sau để thực thi ứng dụng DM.edagrid$ source $GLOBUS_LOCATION/etc/globus-user-env.shedagrid$ source $GLOBUS_LOCATION/etc/globus-devel-env.shedagrid$ source /usr/grid/edagrid/etc/edagrid-user-env.shedagrid$ source /usr/grid/edagrid/etc/edagrid-devel-env.shedagrid$ grid-proxy-initedagrid$ cd ~edagrid/hailh/dmedagrid$ java –classpath $CLASSPATH:dm.jar DM
Cửa sổ giao diện chính của ứng dụng sẽ hiện ra như sau:
Buớc 3: Cấu hình data source Nhấn Config Datasource trong cửa sổ giao diện chính. Màn hình sẽ hiện ra cửa sổ cấu hình datasoure
Ứng dụng hỗ trợ truy xuất dữ liệu từ CSDL MySQL và Grid Data Management (GDM).Nhấn chuột vào GDM để chọn CSDL GDM. Các thông tin còn lại sẽ được tự động điền vào
FactoryURI là URL của GDM service;
Datasource,username,password: thông tin về data source dùng để lưu trữ dữ liệu.Click Connect để kết nối cơ sở dữ liệu.
Nhấn Connect để kết nối vào cơ sở dữ liệu. Nếu kết nối thành công, cửa sổ sẽ đóng lại và quay về cửa sổ giao diện chính. Một số trường thông tin sẽ được điền vào các ô nhập liệu trong cửa sổ chính.
Chọn Training Set Table là table chứa dữ liệu dùng huấn luyện (td: table training chứa dữ liệu về rừng).
Chọn Predict Table là table chứa dữ liệu dùng để dự đoán. (td: table predict).
Bước 4: Cấu hình thông số giải thuật PKMean.Trong cửa sổ giao diện chính, click chuột vào nút Config PKMean.
Khung phần trên chứa các thông số của giải thuật phân nhóm
Segment Size: kích thước mỗi phân đoạn dữ liệu
Alpha: Hệ số nén của mỗi phân đoạn dữ liệu
Phase 2 - Intial Cluster Number – số cluster khởi động trong phase2Phase 2 – Target Cluster Number – số cluster mong muốn trong phase 2
Termination Condition : giải thuật sẽ dừng nếu thỏa 1 trong 2 điều kiện sau:MaxStep: Số lần lặp tối đa của giải thuật (nó cũng chính là số lần (tối đa) tính lại vị trí của các tâm). Giải thuật sẽ dừng sau MaxStep lần lặp.Delta Distortion: Sau mỗi lần lặp, nếu sự thay đổi của độ nhiễu nhỏ hơn Delta Distortion
Khung bên dưới mô tả các thông số liên quan đến tài nguyên dùng để chạy giải thuật
Resource Descriptor: file cấu hình thông số tài nguyên
RD Service: địa chỉ của dịch vụ tìm kiếm tài nguyên
JSDL: file mô tả tính chất tài nguyên cần tìm kiếm
Max node: số node tối đa giải thuật có thể sử dụng
Tất cả các thông số giải thuật đều đã cấu hình sẵn, ta không cần cấu hình lại nếu môi trường thực thi không thay đổi.Nhấn Lookup Resource. Phần mềm sẽ gọi dịch vụ Resource discovery để tìm ra địa chỉ IP của các máy thỏa điều kiện mô tả trong file jsdl.xml (cấu trúc file XML này tham khảo tài liệu đặc tả của nhóm 1). Danh sách các tài nguyên tìm thấy sẽ được hiển thị trên màn hìnhNhấn Close để đóng cửa sổ.(Nếu check vào “File” thì ứng dụng sẽ nạp địa chỉ các tài nguyên từ file ResourceLookupOutput.xml, không gọi dịch vụ khám phá tài nguyên. Trên máy có 2 file mẫu: ResourceDiscoveryOutput.172.28.10.177 và ResourceDiscoveryOutput.172.28.10.219))Lưu ý: Nếu dùng máy ảo để chạy giải thuật thì phải chỉnh lại ngày giờ: 26-Aug-2007 (để chứng thực còn hiệu lực)
Bước 5: Thực thi giải thuậtLần lượt thực thi theo thứ tự sau:
Nhấn Preprocessing để thực thi tiền xử lý dữ liệu
Nhấn Compress để thực thi giải thuật phân nhóm
Nhấn Train ANN để thực thi giải thuật huấn luyện mạng nơron.
Mã nguồn ứng dụng DM
Các mã nguồn của ứng dụng DM được chứa trong thư mục:Hand-over\Developing\DM với 3 file
Datasets.zip – chứa backup dữ liệu về rừng
Eclipse.zip – chương trình eclipse
Projects.zip – workspace chứa code của ứng dụng dm.
Để biên dịch lại
Bung file Projects.zip (td: Projects)
Bung Eclipse vào thư mục nào đó, thực thi eclipse.exe
Chọn workspace là nơi đã bung thư mục Projects (td: Projects\data-mining\eclipse-workspace)
Mã nguồn chứa trong Project data-mining
Chọn File\Export Runnable.jar để tạo ra file jar đóng gói đầy đủ các thư viện cần thiết.
Phụ lục D: Bài báo khoa học/ấn phẩm
Journals
DANG Tran Khanh, PHAN Thi Thanh Huyen, VO Hoang Tam: A Comprehensive Framework for Grid Data Management. Special Issue of Science & Technology Journal, Vietnam National University-Ho Chi Minh City, ISSN 1859-0128, Vol. 10, No. 13, Dec 2007, pp. 97-108 (selected ACOMP2007 paper)
Conferences/Workshops
LY Hoang Hai, DUONG Ngoc Hieu, DANG Tran Khanh, NGUYEN Duc Cuong, TRAN Van Hoai, THOAI Nam: Parallelizing Data Mining Algorithms on the Grid. In Proceedings of International Workshop on Advanced Computing and Applications (ACOMP2007), Ho Chi Minh City, March 14-16, 2007
DANG Tran Khanh, PHAN Thi Thanh Huyen, VO Hoang Tam: A Comprehensive Framework for Grid Data Management. In Proceedings of International Workshop on Advanced Computing and Applications (ACOMP2007), Ho Chi Minh City, March 14-16, 2007
Toàn văn các bài báo/ấn phẩm
Các file đính kèm theo tài liệu này:
- EDAGrid-GDMDM.doc