1. 程式人生 > >Spark Standalone 以及 HDFS系統環境搭建

Spark Standalone 以及 HDFS系統環境搭建

Hdfs環境搭建

  1. 下載最新版本的Hadoop編譯好的tar包:http://hadoop.apache.org/releases.html
  2. 確認HDFS namenode和datanode的角色,並將namenode以及datanode的ip機器名對應關係寫進每臺機器的/etc/hosts檔案。
  3. 確認namenode可以不需要密碼就一個通過ssh聯通datanode結點。

    執行如下命令
    (1) ssh-keygen -t  rsa "" //生成sshkey
    (2) 將 ~/.ssh/id_rsa.pub 公鑰檔案的內容拷貝到每臺datanode機器的 ~/.ssh/authorized_keys檔案中。
    (3) 測試從namenode 到 datanode的連線,現在應該是通的了。
    
  4. 配置hadoop的配置檔案。

    (1) 在環境變數中配置HADOOP_HOME、JAVA_HOME、HADOOP_CONF_DIR,其中 HADOOP_CONF_DIR指向 $HADOOP_HOME/etc/hadoop
    (2) 修改 HADOOP_CONF_DIR 目錄下的幾個*.site.xml檔案,參考官網:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/ClusterSetup.html
    (3) 將配置好後的hadoop包分發到每個namenode和datanode結點,並相應的配置環境變數。
    (4) 剩下的在namenode結點按照官網來啟動 sbin/目錄下的那些shell,參考上面的官網連結。
    (5) 此時去每臺機器用JPS命令看下,結點程序應該都起來了。
    (6) 訪問 namenode的50070埠,應該能看到相應的結點資訊。
    

Spark環境搭建

Spark以Standalone的方式啟動,檔案系統可以依賴上面搭建的HDFS檔案系統。Spark Standalone搭建啟動方式如下:

    (1) 從官網:http://spark.apache.org/ 下載最新版本的spark 編譯好的 tar包。
    (2) 解壓後參考官網配置:http://spark.apache.org/docs/latest/spark-standalone.html
    (3) 注意master結點和worker結點的spark安裝包要在同一個linux檔案系統路徑下。
    (4) 在master結點的 conf/slaves 檔案中,將work結點的ip地址填寫好,每行一個。
    (5) 分別執行sbin/start-master.sh 和 sbin/start-slaves檔案。
    (6) 此時可以看到master結點啟動了一個master程序,worker結點啟動了slave程序。

注意點

通過如下命令提交spark任務時,注意jar包如果是本地檔案(即:還沒有put到hdfs檔案系統中,file:/xxxx.jar 本地檔案訪問協議),則需要這個jar包在每個結點都存在,並且是完全相同的路徑。如果是已經put到了hdfs檔案系統中,則指定hdfs檔案系統的路徑就可以了例如:hdfs://xxxx.jar

./bin/spark-submit \
  --class <main-class>
  --master <master-url> \
  --deploy-mode <deploy-mode> \
  --conf <key>=<value> \
  ... # other options
  <application-jar> \
  [application-arguments]