Quản lý và khai phá dữ liệu trên lưới

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.

doc63 trang | Chia sẻ: banmai | Lượt xem: 2003 | Lượt tải: 0download
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 daitest User 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 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 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 daitest mysql>create database daitest root>mysql --user daitest --password enterpassword? daitest mysql>use daitest Thực hiện các câu lệnh tạo table & insert dữ liệu như bên dưới Database ogsadai mysql>create database ogsadai root>mysql --user daitest --password enterpassword? daitest mysql>use ogsadai Thực hiện các câu lệnh tạo table & insert dữ liệu như bên dưới Database mytest mysql>create database mytest root>mysql --user daitest --password enterpassword? daitest mysql>use mytest Thự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ên edagrid$ grid-proxy-init edagrid$ cd /home/edagrid/hailh/resource-lookup edagrid$ source /usr/grid/edagrid/etc/edagrid-user-env.sh edagrid$ source /usr/grid/edagrid/etc/edagrid-devel-env.sh edagrid$ java Main https://edagrid.hcmut.edu.vn:8443/wsrf/services/hcmut/grid/VOResDiscoveryService jsdl.xml Nế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/dm edagrid$ 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/hosts root$ 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/services gsigatekeeper 2119/tcp # Globus Gatekeeper Tạo file /etc/xinetd.d/globus-gatekeeper với nội dung như sau: service gsigatekeeper { socket_type = stream protocol = tcp wait = no user = root env = LD_LIBRARY_PATH=/usr/grid/globus/lib server = /usr/grid/globus/sbin/globus-gatekeeper server_args = -conf /usr/grid/globus/etc/globus-gatekeeper.conf disable = 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òng gsigatekeeper 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 globus edagrid$ source $GLOBUS_LOCATION/etc/globus-user-env.sh edagrid$ source $GLOBUS_LOCATION/etc/globus-devel-env.sh edagrid$ grid-proxy-init edagrid$ 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@grid Vào giao diện đồ họa của Linux edagrid$ startx Bấm nút phải trên màn hình desktop chọn Konsole để chạy Console. Chạy dịch vụ GDM Trong cửa sổ console thực thi cách lệnh để start globus, GDM sẽ tự động start theo. edagrid$ su root password: vmware root$source $GLOBUS_LOCATION/etc/globus-user-env.sh root$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ụng Trong 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.sh edagrid$ source $GLOBUS_LOCATION/etc/globus-devel-env.sh edagrid$ source /usr/grid/edagrid/etc/edagrid-user-env.sh edagrid$ source /usr/grid/edagrid/etc/edagrid-devel-env.sh edagrid$ grid-proxy-init edagrid$ cd ~edagrid/hailh/dm edagrid$ 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 phase2 Phase 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ình Nhấ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ật Lầ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:

  • docEDAGrid-GDMDM.doc
Tài liệu liên quan