CentOS+CDH5でSparkの擬似分散環境を作る
日本シリーズが終わってしまったのでSparkをやります。今年中に何とかSparkを実用できるところまで持って行きたいです。
参考サイト
- http://dmtolpeko.com/2015/02/06/installing-and-running-spark-on-yarn/
- http://datasciesotist.hatenablog.jp/entry/2014/05/10/225809
- http://stackoverflow.com/questions/27299923/how-to-load-local-file-in-sc-textfile-instead-of-hdfs
環境
- CentOS6.6
- CDH 5
Scalaのインストール
Javaのインストールは省略します。
wget http://downloads.typesafe.com/scala/2.11.7/scala-2.11.7.tgz tar xvf scala-2.11.7.tgz mv scala-2.11.7 /usr/local/share/scala
/etc/profileに以下の3行を追加
SCALA_HOME=/usr/local/share/scala PATH=$SCALA_HOME/bin:$PATH export PATH SCALA_HOME
環境変数が正しく設定できていることを確認
$ source /etc/profile $ scala -version #Versionが正しく出ればOK Scala code runner version 2.11.7 -- Copyright 2002-2013, LAMP/EPFL
CDH5及びSparkのインストール
リポジトリインストール
wget http://archive.cloudera.com/cdh5/one-click-install/redhat/6/x86_64/cloudera-cdh-5-0.x86_64.rpm rpm -i cloudera-cdh-5-0.x86_64.rpm rpm --import http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera
擬似分散モードでのインストール
yum install hadoop-conf-pseudo
HDFSの権限設定及びフォーマット
chown hdfs:hdfs /var/lib/hadoop-hdfs sudo -u hdfs hdfs namenode -format
HDFS系サービスの起動
service hadoop-hdfs-datanode start service hadoop-hdfs-namenode start service hadoop-hdfs-secondarynamenode start
関連ディレクトリ作成と権限設定
sudo -u hdfs hadoop fs -ls -R / sudo -u hdfs hadoop fs -mkdir -p /tmp/hadoop-yarn/staging/history/done_intermediate sudo -u hdfs hadoop fs -chown -R mapred:mapred /tmp/hadoop-yarn/staging sudo -u hdfs hadoop fs -chmod -R 1777 /tmp sudo -u hdfs hadoop fs -mkdir -p /var/log/hadoop-yarn sudo -u hdfs hadoop fs -chown yarn:mapred /var/log/hadoop-yarn sudo -u hdfs hadoop fs -ls -R /
YARN系サービスの起動
service hadoop-yarn-resourcemanager start service hadoop-yarn-nodemanager start service hadoop-mapreduce-historyserver start
Sparkのインストール
Hiveのインストールはspark-shell起動時にエラーが出ない場合は必要ありません。
yum install spark-core spark-master spark-worker spark-history-server spark-python yum install hive
Sparkの起動
service spark-master start service spark-worker start
Sparkシェルの起動とサンプル実行
spark-shell > val textFile = sc.textFile("file:///usr/lib/spark/LICENSE") > textFile.count() res0: Long = 859 > val linesWithSpark = textFile.filter(line => line.contains("Spark")) > linesWithSpark.count() res1: Long = 3
終わり
今回はここまでです。次回は対話環境ではなく外部プログラムの実行を行います。