Spark完全分布式集群搭建【Spark2.4.4+Hadoop3.2.1】


一.安裝Linux

  需要:3台CentOS7虛擬機

  

  注意:

    虛擬機的網絡設置為NAT模式,NAT模式可以在斷網的情況下連接上虛擬機而橋架模式不行!

二.設置靜態IP

  跳轉目錄到:

  

  修改IP設置:

  

  備注:執行scp命令拷貝設置文件到另外兩個節點,修改IP分別為192.168.136.8和192.168.136.9

三.安裝JDK

  參考我的博客:https://www.cnblogs.com/yszd/p/10140327.html

四.運行Spark預編譯包中的實例

  1.測試Scala代碼實例

    執行:

     運行Scala版本計算Pi的代碼實例結果:

      

    表示運行成功!

   2.測試python代碼實例

    執行:

    

    運行python版本計算Pi的代碼實例,注意,若要是遇到下面的異常:

    

    表示沒有指定ip,這是需要修改配置文件spark-env.sh,前往conf目錄下執行

    

    拷貝配置模板文件,並修改為spark-env.sh,執行

    

    打開配置文件,添加,指定默認ip。

    

    然后繼續執行計算Pi代碼命令:

    

    結果如下:       

    

   表示執行成功!

五.本地體驗Spark

  1.執行命令進入Spark交互模式

    

  2.編寫簡單代碼實例

    

    執行結果:

    

六.免密碼登錄

  參考我的博客:https://www.cnblogs.com/yszd/p/10123911.html

  備注:如果是使用root或高權限的賬號操作的,那么authorized_keys文件本身權限就夠,無需追加權限,否則可以使用chmod添加權限。另外,各個節點首次訪問時需要輸入密碼!

七.Zookeeper集群部署

  1.上傳zookeeper到集群的各個節點

  

  2.修改配置,指定datadir和集群節點配置

  initLimit=10
  syncLimit=5
  dataDir=/hadoop/zookeeper
  dataLogDir=/usr/local/soft/zookeeper-3.4.12/log
  clientPort=2181
  #maxClientCnxns=60
  server.1 = master:2888:3888
  server.2 = slave01:2888:3888
  server.3 = slave02:2888:3888

  3.配置myid

    

    注意:內容為上面server.x中的x

  4.啟動zookeeper節點,查看節點運行狀態

    

    

    

    注意:節點zhen啟動異常,查看zoo.cfg配置是否正確及防火牆是否已經關閉,確定無誤后等待zookeeper自啟!

     

    異常節點zhen啟動成功,zookeeper集群搭建完成!

八.Spark Standalone集群搭建

  安裝scala環境

    下載地址:https://www.scala-lang.org/download/2.11.12.html 

    下拉到最下面,選擇scala-2.11.12.rpm使用rpm安裝:

    

  上傳到集群:

    

  執行命令:rpm -ivh scala-2.11.12.rpm安裝scala環境,輸入scala -version檢測是否安裝成功

    

    表示安裝成功!

  配置環境變量,編輯etc/profile,添加:

    

九.Hadoop3.2.1完全分布式搭建

  1.下載文件

    https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz

  2.上傳並解壓Hadoop文件

    

  3.修改相應配置文件

    3.1 etc/profile:

      

    3.2 HADOOP_HOME/etc/hadoop/hadoop-env.sh

       

    3.3 HADOOP_HOME/etc/hadoop/slaves,注意:在Hadoop3.1之后,slaves改為workers

       

    3.4 HADOOP_HOME/etc/hadoop/core-site.xml   

    <configuration>
          <property>
                <name>fs.default.name</name>
                <value>hdfs://master:9000</value>
          </property>
          <property>
                <name>io.file.buffer.size</name>
                <value>131072</value>
          </property>
          <property>
                <name>hadoop.tmp.dir</name>
                <value>/usr/local/soft/hadoop-3.2.1/tmp</value>
          </property>
    </configuration>

    3.5 HADOOP_HOME/etc/hadoop/hdfs-site.xml   

    <configuration>
          <property>
                <name>dfs.replication</name>
                <value>2</value>
          </property>
          <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/usr/local/soft/hadoop-3.2.1/hdfs/name</value>
          </property>
          <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/usr/local/soft/hadoop-3.2.1/hdfs/data</value>
          </property>
          <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>master:50090</value>
          </property>
    </configuration>

    3.6 HADOOP_HOME/etc/hadoop/mapred-site.xml      

    <configuration>
          <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
          </property>
    </configuration>

    注意:在Hadoop3.1之后,為了避免在執行任務時報一下錯誤:

    

    要額外添加一下配置(也就是上面報錯信息提到的配置):

    

    3.7 HADOOP_HOME/etc/hadoop/yarn-site.xml    

    <configuration>
          <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
          </property>
          <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>master</value>
          </property>
          <property>
                <name>yarn.log-aggregation-enable</name>
                <value>true</value>
          </property>
          <property>
                <name>yarn.log-aggregation.retain-seconds</name>
                <value>604800</value>
          </property>
    </configuration>

     3.8 格式化Hadoop

      執行:hdfs namenode -format

  4.拷貝Hadoop到Worker節點

    執行命令:scp -r /usr/local/soft/hadoop-3.2.1 root@worker1:/usr/local/soft

    執行命令:scp -r /usr/local/soft/hadoop-3.2.1 root@worker2:/usr/local/soft  

   5.在瀏覽器上輸入:master:50070查看,注意:在Hadoop3.1之后,端口修改為9870

    

    表示安裝成功!

十.Spark-2.4.4完全分布式搭建

  1.下載安裝文件

    https://www.apache.org/dyn/closer.lua/spark/spark-2.4.4/spark-2.4.4-bin-hadoop2.7.tgz

  2.上傳並解壓安裝文件

    

  3.修改相應的配置文件

    3.1 etc/profile

      

    3.2 SPARK_HOME/conf/spark-env.sh

      

    3.3 SPARK_HOME/conf/slaves

      

十一.編輯集群的腳本

  1.啟動腳本

#!/bin/bash
echo -e "=========================Start spark cluster=================================="
echo -e "Starting Hadoop..."
/usr/local/soft/hadoop-3.2.1/sbin/start-all.sh
echo -e "Starting Spark..."
/usr/local/soft/spark-2.4.4-bin-hadoop2.7/sbin/start-all.sh
echo -e "The Result of the Command \"jps\""
jps
echo -e "=================================End=========================================="

  注意:如果jps沒有namenode,則說明namenode元數據損壞,這時需要前往bin目錄下,執行:hadoop namenode -format重建一下 

  2.關閉腳本

#!/bin/bash
echo -e "=========================Stop spark cluster=================================="
echo -e "Stoping Hadoop..."
/usr/local/soft/hadoop-3.2.1/sbin/stop-all.sh
echo -e "Stoping Spark..."
/usr/local/soft/spark-2.4.4-bin-hadoop2.7/sbin/stop-all.sh
echo -e "The Result of the Command \"jps\""
jps
echo -e "=================================End=========================================="

十二.測試

  1.測試Hadoop

    1.1 創建測試文件    

    

    1.2 編輯內容

      spark scala hadoop spark hadoop java redis hbase hive kafka flume

    1.3 創建Hadoop文件夾,用於保存測試文件

      hadoop fs -mkdir -p /hadoop/data

     1.4 把創建好的測試文件導入到Hadoop中

      hadoop fs -put /wordcount.txt /hadoop/data/

    1.5 運行程序

         hadoop jar /usr/local/soft/hadoop-3.2.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar wordcount /hadoop/data /hadoop/output

       1.6 執行結果

     

  2.測試Spark

    執行Spark提交命令:./spark-submit --master yarn --class org.apache.spark.examples.SparkPi ../examples/jars/spark-examples_2.11-2.4.4.jar 1000

    部分執行日志:

    

    執行結果:

    

    完成!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM