ablog

不器用で落着きのない技術者のメモ

コアノードから EMRFS への読み書きしているところを strace でシステムコールトレースを取得する

  • コアノードに strace をインストールする
curl -L -O strace-4.19.tar.xz https://sourceforge.net/projects/strace/files/strace/4.19/strace-4.19.tar.xz/download -o strace-4.19.tar.xz
tar xfvJ strace-4.19.tar.xz 
cd strace-4.19 
./configure
make
  • コアノードで Java プロセスの strace を取得する。
mkdir log
pgrep java | while read LINE
do
sudo ./strace -Ttt -ff -yy -s 1500000 -o log/strace_log -p ${LINE} &
done
  • マスターノードで Spark Shell で S3 のファイルを読み書きする。
$ spark-shell
scala> val textFile = sc.textFile("s3://az-bucket/input.txt")
scala> val counts = textFile.flatMap(line => line.split(" "))
                 .map(word => (word, 1))
                 .reduceByKey(_ + _)
scala> textFile.saveAsTextFile("s3://az-bucket/output.txt")
  • コアノードでTCPセッションを調べる。
sudo lsof -i:443
sudo netstat -tpoc