1. 程式人生 > >3臺機器配置spark-2.1.0叢集

3臺機器配置spark-2.1.0叢集

一. 環境介紹

三臺主機,主機名和ip分別為: ubuntu1  10.3.19.171 ubuntu2  10.3.19.172 ubuntu3  10.3.19.173
三臺主機的登入使用者名稱是bigdata,home目錄是/home/bigdata 現在三臺主機上部署spark叢集。ubuntu1作為master, ubuntu1 ubuntu2 ubuntu3均作為worker。

二.在一臺主機上部署spark

[email protected]:~/download$ tar -zxvf spark-2.1.0-bin-hadoop2.7.tgz
[email protected]
:~/download$ mv spark-2.1.0-bin-hadoop2.7 ../run/
[email protected]:~/download$ cd ../run/
[email protected]:~/run$ ln -s spark-2.1.0-bin-hadoop2.7 spark
建立spark日誌目錄:
[email protected]ubuntu1:~/run/spark$ mkdir logs

三. 在一臺主機上配置spark

a. 建立指令碼檔案spark-env.sh,並增加如下配置
[email protected]:~/run/spark/conf$ cp spark-env.sh.template spark-env.sh
[email protected]:~/run/spark/conf$ cat spark-env.sh
......
export JAVA_HOME=/home/bigdata/usr/jdk1.8.0_25
export HADOOP_HOME=/home/bigdata/run/hadoop
export SPARK_MASTER_IP=ubuntu1
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_MERMORY=1G
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_DAEMON_JAVA_OPTS="-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/home/bigdata/run/spark/logs -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:+DisableExplicitGC -Xms128m -XX:PermSize=128m -XX:MaxPermSize=256m"
#export SPARK_DAEMON_JAVA_OPTS="-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/home/bigdata/run/spark/logs -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:+DisableExplicitGC -Xms1024m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=256m"
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=7777 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=hdfs://ubuntu1:9000/sparkHistoryLogs -Dspark.yarn.historyServer.address=ubuntu1:7788 -Dspark.history.fs.updateInterval=10"

b. 建立配置檔案spark-defaults.conf,並增加如下配置
[email protected]:~/run/spark/conf$ cp spark-defaults.conf.template spark-defaults.conf
[email protected]:~/run/spark/conf$ cat spark-defaults.conf
......
spark.master                     spark://ubuntu1:7077
spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://ubuntu1:9000/sparkHistoryLogs
spark.eventLog.compress          true
spark.history.updateInterval     5
spark.history.ui.port            7777
spark.history.fs.logDirectory    hdfs://ubuntu1:9000/sparkHistoryLogs

c. 建立slaves,並增加如下配置
[email protected]:~/run/spark/conf$ cp slaves.template slaves
[email protected]:~/run/spark/conf$ cat slaves
......
# A Spark Worker will be started on each of the machines listed below.
ubuntu1
ubuntu2
ubuntu3
至此,在一臺主機上部署spark已完成。

四. 部署spark到主機ubuntu2 ubuntu3

為了部署方便,直接拷貝ubuntu1上的spark目錄到ubuntu1 ubuntu2
[email protected]:~/run$ tar -zcvf spark-2.1.0-bin-hadoop2.7.tar.gz spark-2.1.0-bin-hadoop2.7/
[email protected]:~/run$ scp spark-2.1.0-bin-hadoop2.7.tar.gz ubuntu2:/home/bigdata/run
[email protected]:~/run$ scp spark-2.1.0-bin-hadoop2.7.tar.gz ubuntu3:/home/bigdata/run
至ubuntu2 ubuntu3解壓 ubuntu2: 
[email protected]:~/run$ tar -zxvf spark-2.1.0-bin-hadoop2.7.tar.gz
[email protected]:~/run$ ln -s spark-2.1.0-bin-hadoop2.7 spark
ubuntu3: 
[email protected]:~/run$ tar -zxvf spark-2.1.0-bin-hadoop2.7.tar.gz
[email protected]:~/run$ ln -s spark-2.1.0-bin-hadoop2.7 spark

至此,spark已部署到三機主機上。

五. 執行spark

[email protected]:~/run/spark/sbin$ ./start-all.sh 
在ubuntu1上檢視spark程序,包含worker和master
[email protected]:~/run/spark/sbin$ jps -l
1520 org.apache.spark.deploy.worker.Worker
1433 org.apache.spark.deploy.master.Master
1627 sun.tools.jps.Jps

在ubuntu2 ubuntu3上檢視spark程序,只有worker
[email protected]:~/run$ jps -l
1057 sun.tools.jps.Jps
961 org.apache.spark.deploy.worker.Worker

檢視頁面: 訪問:http://10.3.19.171:8080/ 檢視job歷史記錄, 先啟動hadoop:
[email protected]:~/run/hadoop/sbin$ ./start-all.sh
[email protected]:~/run/spark/sbin$ ./start-history-server.sh 
訪問:http://10.3.19.171:7777/

六. 執行自己的JavaWordCount程式

獲取程式原始碼通過: 使用mvn package命令編譯得到jar包:mysparkdemo-0.0.1.jar 將mysparkdemo-0.0.1.jar包上傳到目錄 /home/bigdata/run/spark 至此執行程式已準備好。 建立一文字檔案,程式會統計此文字中各單詞出現的次數。
[email protected]:~/run/spark$ touch hello.txt
[email protected]:~/run/spark$ cat LICENSE > hello.txt
將hello.txt檔案拷貝到hdfs上
[email protected]:~/run/spark$ hdfs dfs -mkdir -p /user/bigdata
[email protected]:~/run/spark$ hdfs dfs -copyFromLocal hello.txt /user/bigdata/hello.txt
[email protected]:~/run/spark$ hdfs dfs -cat /user/bigdata/hello.txt

執各程式命令:
[email protected]:~/run/spark/bin$ ./spark-submit --class com.ai.apark.demo.JavaWordCount --master spark://ubuntu1:7077 ../mysparkdemo-0.0.1.jar hello.txt