-1
この記事では、シェルスクリプトを使用してhbaseテーブルを作成する方法を説明します。hbaseコマンドを実行するシェルスクリプト - hbaseテーブルを作成する
この記事では、シェルスクリプトを使用してhbaseテーブルを作成する方法を説明します。hbaseコマンドを実行するシェルスクリプト - hbaseテーブルを作成する
定義テーブル名:
declare -a table_names=("Table_1;['t1']" "Table_2;['t1','t2']")
'TABLE_1は' TABLE_NAME
'T1' ですcolumn_familyです。
反復各テーブルに基づい
for i in "${table_names[@]}"
do
done
';'を分割します。ここで最初の値はテーブル名 &第2の値は列ファミリになります。
set -- "$i"
IFS=";"; declare -a table_name_info=($*)
表は、ログファイルに結果を格納存在するか確認してください&。
echo "exists '${table_name_info[0]}'" | hbase shell > log 2>&1
「テーブルは存在します」というメッセージを検索します。存在する場合、ステータスは0として返されます。ステータスが0の場合、テーブルはすでに存在します。
cat log | grep -q 'Table '${table_name_info[0]}' does exist'
if [ $? = 0 ]; then
## log message
else
## write script to create a table
fi
ここでは完全なスクリプトコード検索:
hbase_shell_script.shを
#!/bin/sh
echo "Running the <$0> file"
## table names
declare -a table_names=("Table_1;['t1']" "Table_2;['t1','t2']")
function tableExists {
echo "Table <$1> already exists."
}
function createTable {
echo "Table <$1> does not exist."
echo "Creating the Table <$1>"
echo "create '$1', $2" | hbase shell > log 2>&1
cat log | grep -q '0 row(s) in'
if [ $? = 0 ]; then
echo "Table <$1> created successfully."
else
echo "Table <$1> is not created."
fi
}
## iterating table names and checking table already exists. if does not exist creating table.
for i in "${table_names[@]}"
do
## splitting the table based on ';'. First argument will be 'table_name' and second argument will be 'column_families'
set -- "$i"
IFS=";"; declare -a table_name_info=($*)
echo ""
echo "Checking the table <${table_name_info[0]}> exists or not"
echo ""
echo "exists '${table_name_info[0]}'" | hbase shell > log 2>&1
cat log | grep -q 'Table '${table_name_info[0]}' does exist'
if [ $? = 0 ]; then
tableExists ${table_name_info[0]}
else
createTable ${table_name_info[0]} ${table_name_info[1]}
fi
done
## deleting the log file.
rm -rf log
echo ""
echo "done."
exit