static void createTableFunc(std::string t, HbaseClient client) { // Create the demo table with two column families, entry: and unused: ColVec columns; columns.push_back(ColumnDescriptor()); columns.back().name = "entry:"; columns.back().maxVersions = 10; columns.push_back(ColumnDescriptor()); columns.back().name = "unused:"; std::cout << "creating table: " << t << std::endl; try { // テーブル t の作成, カラムは上で作成 client.createTable(t, columns); } catch (const AlreadyExists &ae) { std::cerr << "WARN: " << ae.message << std::endl; } }
int main(int argc, char** argv) { if (argc < 6) { std::cerr << "Invalid arguments!\n" << "Usage: testput host port key_len val_len list_num" << std::endl; return -1; } HbCli myhbcli(argv[1], argv[2]); myhbcli.connect(); std::string table("test_table"); ColVec columns; columns.push_back(ColumnDescriptor()); columns.back().name = "entry:"; columns.back().maxVersions = 1; columns.back().compression = "LZO"; columns.back().inMemory = true; columns.back().blockCacheEnabled = true; columns.back().bloomFilterType = "ROW"; columns.back().timeToLive = 3 * 24 * 3600; if (!myhbcli.tableExists(table)) myhbcli.createTable(table, columns); int klen = atoi(argv[3]); int vlen = atoi(argv[4]); int lnum = atoi(argv[5]); long actual_ms = 0; struct timeval tvstart, tvend; gettimeofday(&tvstart, NULL); if (lnum == 1) actual_ms = test_row_put(myhbcli, table, klen, vlen); else actual_ms = test_row_put_list(myhbcli, table, klen, vlen, lnum); gettimeofday(&tvend, NULL); long total_ms = gen_ms(tvstart, tvend); std::cout << "total time in ms: " << total_ms << std::endl; std::cout << "actual time in ms: " << actual_ms << std::endl; std::cout << "qps in total time: " << (long)(COUNT*1000)/total_ms << std::endl; std::cout << "qps in actual time: " << (long)(COUNT*1000)/actual_ms << std::endl; myhbcli.deleteTable(table); myhbcli.disconnect(); }