spark cassandra setup

10349 ワード

ここ数日データ転送をしていて、mysqlのデータをcassandraに転送しようとしていて、多くの穴に遭遇しました.少し記録します.まず環境構成で、sparkを/opt/ディレクトリの下にインストールしました.
#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で提出します.