spark cassandra setup
10349 ワード
ここ数日データ転送をしていて、mysqlのデータをcassandraに転送しようとしていて、多くの穴に遭遇しました.少し記録します.まず環境構成で、sparkを/opt/ディレクトリの下にインストールしました.
ここではこれらのライブラリをここに入れなくてもいいです.submitのときにこれらのjarを提出してもokです.もしあなたが本機で演算していない場合は、必ずsubmitのときにあなたが使っているライブラリを追加してください.その後intellijにmaven projectを新規作成する、scalaは2.12に更新されたが、他のライブラリは現在2.1.8にしかサポートされていないため、2.1.8にインストールされている.pomには必ずmavern-shade-pluginを加えなければなりません.intellijが持っているパッケージはいつもclassnotfound exceptionに遭遇します.pomファイルも貼りました.
その後、簡単な読み取りと書き込みテストをすればいいです.codeを書き終わったらmvn packgeコマンドでパッケージし、生成したjarをtargetフォルダの下に、spark-submitで提出します.
#install spark
sudo mkdir /opt/spark
wget http://ftp.jaist.ac.jp/pub/apache/spark/spark-2.2.1/spark-2.2.1-bin-hadoop2.7.tgz | sudo tar xvz -C /opt/
sudo mv /opt/spark-2.2.1-bin-hadoop2.7/* /opt/spark/
sudo rm -rf /opt/spark-2.2.1-bin-hadoop2.7/
#install cassandra
echo "deb http://www.apache.org/dist/cassandra/debian 311x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
sudo curl https://www.apache.org/dist/cassandra/KEYS | sudo apt-key add -
sudo apt-get update
sudo apt-get install cassandra
sudo chmod -R 777 /var/log/cassandra/
sudo chmod -R 777 /var/lib/cassandra/
# install spark extra libs
wget http://central.maven.org/maven2/com/twitter/jsr166e/1.1.0/jsr166e-1.1.0.jar
sudo mv jsr166e-1.1.0.jar /opt/spark/jars/
wget http://central.maven.org/maven2/com/datastax/spark/spark-cassandra-connector_2.11/2.0.7/spark-cassandra-connector_2.11-2.0.7.jar
sudo mv spark-cassandra-connector_2.11-2.0.7.jar /opt/spark/jars/
ここではこれらのライブラリをここに入れなくてもいいです.submitのときにこれらのjarを提出してもokです.もしあなたが本機で演算していない場合は、必ずsubmitのときにあなたが使っているライブラリを追加してください.その後intellijにmaven projectを新規作成する、scalaは2.12に更新されたが、他のライブラリは現在2.1.8にしかサポートされていないため、2.1.8にインストールされている.pomには必ずmavern-shade-pluginを加えなければなりません.intellijが持っているパッケージはいつもclassnotfound exceptionに遭遇します.pomファイルも貼りました.
4.0.0
your groupID
your arifactID
1.0-SNAPSHOT
1.8
1.8
UTF-8
2.11.8
2.11
com.google.guava
guava
15.0
org.apache.spark
spark-core_2.11
2.2.1
compile
org.apache.spark
spark-sql_2.11
2.2.1
compile
org.slf4j
slf4j-api
1.7.5
org.clapper
grizzled-slf4j_2.11
1.3.1
org.scala-lang
scala-library
2.11.8
com.datastax.cassandra
cassandra-driver-core
3.4.0
com.datastax.spark
spark-cassandra-connector_2.11
2.0.7
src/main/scala
src/test/scala
net.alchim31.maven
scala-maven-plugin
3.3.1
compile
testCompile
-feature
-deprecation
-dependencyfile
${project.build.directory}/.scala_dependencies
org.apache.maven.plugins
maven-surefire-plugin
2.18.1
false
true
**/*Test.*
**/*Suite.*
org.codehaus.mojo
exec-maven-plugin
1.5.0
run-local
exec
spark-submit
--master
local
${project.build.directory}/${project.artifactId}-${project.version}-uber.jar
run-yarn
exec
${basedir}/spark-remote/conf
spark-submit
--master
yarn
${project.build.directory}/${project.artifactId}-${project.version}-uber.jar
org.apache.maven.plugins
maven-shade-plugin
3.1.0
package
shade
*:*
META-INF/*.SF
META-INF/*.DSA
META-INF/*.RSA
net.martinprobson.spark.spark_example.SparkTest
javax.servlet:*
org.apache.hadoop:*
org.apache.maven.plugins:*
org.apache.spark:*
org.apache.avro:*
org.apache.parquet:*
org.scala-lang:*
${project.artifactId}-${project.version}-uber
その後、簡単な読み取りと書き込みテストをすればいいです.codeを書き終わったらmvn packgeコマンドでパッケージし、生成したjarをtargetフォルダの下に、spark-submitで提出します.