CentOSでSparkを試してみる(2015年秋)
CentOSでHadoopとHiveを試してみるの続き。
よく、SparkがHadoopの機能の1つみたいに紹介されているが、全く違うもの。どちらかというとscalaの拡張機能と考えた方が近いか。もちろん、Hadoopの処理結果をHDFS経由で利用はできます。
インストール
scala
まずはScalaのインストールから。
wget http://downloads.typesafe.com/scala/2.11.7/scala-2.11.7.tgz
tar zxfv scala-2.11.7.tgz
mv scala-2.11.7 /usr/
spark
wget http://ftp.riken.jp/net/apache/spark/spark-1.5.2/spark-1.5.2-bin-hadoop2.6.tgz
tar zxfv spark-1.5.2
mv spark-1.5.2 /usr/
SCALA_HOME,SPARK_HOME,PATHの設定
.bashrcに下記を書く。
export SCALA_HOME=/usr/scala-2.11.7
export SPARK_HOME=/usr/spark-1.5.2
export PATH=$SCALA_HOME/bin:$PATH
spark(コンソール)の起動
cd $SPARK_HOME
bin/spark-shell
.
.
.
scala>
となれば、一応動いている。
インタラクティブシェルを抜けるには、
scala> :q
とする。
sacla> :quiteでもよい。
Hadoopとの連携?
何もHadoopと連携しなければいけないものでも無いが、HDFS上のファイルを処理してみる。
ファイルとしては、前にHiveで生成したファイル(/outpu/000000_0)を利用してみる。
scala> val hdfs_file = sc.textFile("hdfs://127.0.0.1:9000/output/000000_0")
scala> hdfs_file.count()
res4: Long = 5
scala> hdfs_file.filter(line => line.contains("新")).foreach(println)
新橋店100
新宿店340
Spark SQL
Sparkでは標準?でSQLインターフェースを利用することもできる。
以下の例では、
新橋店,100
新宿店,340
池袋店,874
渋谷店,400
という内容の/root/data.csvファイルがあることを前提とした操作。
cd $SPARK_HOME
bin/spark-sql
spark-sql>
spark-sql> show databases;
spark-sql> create database testdb;
create table sales(shop string,sales int)
row format delimited fields terminated by ','
stored as textfile;
load data local inpath "/root/data.csv" into table sales;
select * from sales where shop like '新%';
なぜか、上記data.csvファイルをHDFSコピーして、
load data inpath “/input/data.csv" into table sales;
とすると、
15/11/17 04:01:37 INFO ParseDriver: Parsing command: load data inpath “/input/data.csv" into table sales
MismatchedTokenException(15!=313)
at org.antlr.runtime.BaseRecognizer.recoverFromMismatchedToken(BaseRecognizer.java:617)
.
.
といったエラーになる。これについては、引き続き調査します。たぶん初歩的な何か。
Author And Source
この問題について(CentOSでSparkを試してみる(2015年秋)), 我々は、より多くの情報をここで見つけました https://qiita.com/zaburo/items/748b13e43a3b377d7d1a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .