mysqlのコマンド
mysql周りの調査で使ったコマンドめも
SHOW STATUS
ステータス確認SHOW VARIABLES
設定されている変数値確認SHOW [FULL] PROCESSLIST
実行中のプロセスリストを表示SET [GLOBAL/SESSION] (変数名)=(値)
変数値を設定する
RPM関連のコマンド
RPM関連のコマンド
rpm -qa | grep hoge
インストールされているRPM確認
grep キーワードで絞込み
rpm -e hoge
RPMアンインストール
rpm -ivh hoge
RPMインストール
Hiveでファイルの圧縮
ファイルの圧縮
Bzip2
set hive.exec.compress.output=true;
set mapred.output.compression.type=BLOCK;
set mapred.output.compression.codec=org.apache.hadoop.io.compress.BZip2Codec;
set hive.exec.compress.output=true;
set mapred.output.compression.type=BLOCK;
set mapred.output.compression.codec=org.apache.hadoop.io.compress.GZipCodec;
HIVEのテーブル定義の確認
LanguageManual DDL - Apache Hive - Apache Software Foundation
テーブル定義の確認方法
HIVEで作成したテーブルのファイルフォーマットや構成を確認したい場合
hive > desc [ extended / formatted ] テーブル名
extendedで詳細説明表示
formattedで見やすいよう整形してくれる
> CREATE TABLE test_table(col1 string, col2 string, col3 string)
> ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';
OK
> desc formatted test_table;
# col_name data_type comment
col1 string None
col2 string None
col3 string None
# Detailed Table Information
Database: mra
Owner: hadoop
CreateTime: Thu Nov 11 00:00:00 UTC 2013
LastAccessTime: UNKNOWN
Protect Mode: None
Retention: 0
Location: hdfs://hoge/foo/bar/test_table
Table Type: MANAGED_TABLE
Table Parameters:
transient_lastDdlTime 1234567890
# Storage Information
SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
InputFormat: org.apache.hadoop.mapred.TextInputFormat
OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
Compressed: No
Num Buckets: -1
Bucket Columns: []
Sort Columns: []
Storage Desc Params:
field.delim \t
line.delim \n
serialization.format \t
BASHで二次元配列
BASHで二次元配列もどきの作り方
#!/bin/bash
arrays=(
"aaa 111"
"bbb 222 333"
"ccc"
)
for array in "${arrays[@]}"
do
echo "${array}"
for hoge in "${array}"
do
echo "${hoge}"
done
done
結果
aaa 111
aaa
111
bbb 222 333
bbb
222
333
ccc
ccc
テストケース等をfor文で回したい時
#!/bin/bash
arrays=(
"test.sh arg1"
"test2.sh arg1 arg2"
"test3.sh"
)
for array in "${arrays[@]}"
do
"${array}"
done
リターンコードを取得
BASHでリターンコードを取得
$?で直前のコマンドのリターンコードを取得できる
mkdir hoge
echo "$?"
- リターンコード
成功 -> 0
失敗 -> 1
リターンコードの受け取り方
実行に失敗した場合に呼び出し元に返り値をそのまま返したい時
#!/bin/bash
function hoge(){
mkdir hoge
# ディレクトリ作成に失敗したら返り値を返して抜ける
if [ $? -ne 0 ];then
exit "$?"
fi
# 処理の続き...
}
echo "`hoge`"
とやると上手くいかない
$?は直前のコマンド実行結果を拾ってくるらしい
この場合、exit "$?"で返されるのはif文の条件整合結果
#!/bin/bash
function hoge(){
mkdir hoge
# ディレクトリ作成に失敗したら返り値を返して抜ける
result=$?
if [ ${result} -ne 0 ];then
exit "${result}"
fi
# 処理の続き...
}
echo "`hoge`"
こんな感じで受け取ってやればOK
Perlの変数宣言
our, my, local
our. パッケージ変数
スコープの外からでもパッケージ名をつけて参照できるmy. レキシカルスコープ
スコープ内で参照可能な変数を宣言local. ダイナミックスコープ
グローバルな変数がいた場合一時スタックに退避
実行時のスコープ内で宣言した値を持つ
スコープ
- {} で囲われた範囲
localやmyはスコープを外れた場所から参照できない
レキシカルスコープとダイナミックスコープ
- レキシカルスコープ
静的なスコープ
コードに書かれた {} 内でのスコープ
our $hoge;
sub B{
return $hoge;
}
sub A{
my $hoge;
return B;
}
Aのみで参照可能
- ダイナミックスコープ
動的スコープ
実行時のスコープで参照可能
our $hoge;
sub B{
return $hoge;
}
sub A{
local $hoge;
return B;
}
実行時A内でBが呼ばれるので、AB内で参照可能
ちょっと分かり難かったので検証
#!/usr/local/bin/perl
package test;
use strict;
use warnings;
our $hoge = "hello";
sub localtest
{
local $hoge = "good";
print "localtest\n";
print "$hoge\n";
print "$test::hoge\n";
}
sub mytest
{
my $hoge = "good";
print "mytest\n";
print "$hoge\n";
print "$test::hoge\n";
}
mytest;
localtest;
実行結果
localtest
good
good
mytest
good
local
localはパッケージ変数に(元値はスタックに退避して)上書き
myは別に同名の変数を持つみたい
参照
http://d.hatena.ne.jp/TAKESAKO/20080110/1199969773 http://d.hatena.ne.jp/perlcodesample/20110128/1300165343