python搭建分布式集群_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=10syncLimit=5dataDir=/hadoop/zookeeper
dataLogDir=/usr/local/soft/zookeeper-3.4.12/log
clientPort=2181#maxClientCnxns=60server.1 = master:2888:3888server.2 = slave01:2888:3888server.3 = slave02:2888:3888
3.配置myid
注意:內容為上面server.x中的x
4.啟動zookeeper節點,查看節點運行狀態
注意:節點zhen啟動異常,查看zoo.cfg配置是否正確及防火墻是否已經關閉,確定無誤后等待zookeeper自啟!
異常節點zhen啟動成功,zookeeper集群搭建完成!
八.Spark Standalone集群搭建
安裝scala環境
下拉到最下面,選擇scala-2.11.12.rpm使用rpm安裝:
上傳到集群:
執行命令:rpm -ivh scala-2.11.12.rpm安裝scala環境,輸入scala -version檢測是否安裝成功
表示安裝成功!
配置環境變量,編輯etc/profile,添加:
九.Hadoop3.2.1完全分布式搭建
1.下載文件
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
fs.default.name
hdfs://master:9000
io.file.buffer.size
131072
hadoop.tmp.dir
/usr/local/soft/hadoop-3.2.1/tmp
3.5 HADOOP_HOME/etc/hadoop/hdfs-site.xml
dfs.replication
2
dfs.namenode.name.dir
file:/usr/local/soft/hadoop-3.2.1/hdfs/name
dfs.datanode.data.dir
file:/usr/local/soft/hadoop-3.2.1/hdfs/data
dfs.namenode.secondary.http-address
master:50090
3.6 HADOOP_HOME/etc/hadoop/mapred-site.xml
mapreduce.framework.name
yarn
注意:在Hadoop3.1之后,為了避免在執行任務時報一下錯誤:
要額外添加一下配置(也就是上面報錯信息提到的配置):
3.7 HADOOP_HOME/etc/hadoop/yarn-site.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
master
yarn.log-aggregation-enable
true
yarn.log-aggregation.retain-seconds
604800
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.下載安裝文件
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
部分執行日志:
執行結果:
完成!!
總結
以上是生活随笔為你收集整理的python搭建分布式集群_Spark完全分布式集群搭建【Spark2.4.4+Hadoop3.2.1】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 手写阻塞队列_Java阻塞队列
- 下一篇: 何小鹏称雷军是自己的导师 但不想成为下一