3臺機器配置spark-2.1.0叢集
阿新 • • 發佈:2018-12-26
一. 環境介紹
三臺主機,主機名和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