1. 程式人生 > >spark1.6.0+Hadoop2.6.0+Scala-2.11.7 搭建分散式叢集

spark1.6.0+Hadoop2.6.0+Scala-2.11.7 搭建分散式叢集

昨天又搗鼓了一下,網上有些寫得很不錯的教程,自己經過嘗試後覺得需要整理一下。
spark的執行模式有多種(見官網和Spark的Standalone模式安裝部署):

  • local(本地模式):常用於本地開發測試,本地還分為local單執行緒和local-cluster多執行緒;
  • standalone(叢集模式):典型的Mater/slave模式,不過也能看出Master是有單點故障的;Spark支援ZooKeeper來實現 HA
  • on yarn(叢集模式): 執行在 yarn 資源管理器框架之上,由 yarn 負責資源管理,Spark 負責任務排程和計算
  • on mesos(叢集模式): 執行在 mesos 資源管理器框架之上,由 mesos 負責資源管理,Spark 負責任務排程和計算
  • on cloud(叢集模式):比如 AWS 的 EC2,使用這個模式能很方便的訪問 Amazon的 S3;Spark 支援多種分散式儲存系統:HDFS 和 S3

本文主要記錄的是基於standalone的方式和基於叢集的方式。

1 用虛擬機器搭建Hadoop分散式叢集

虛擬機器安裝
由於主要的實驗室環境是Ubuntu系統的伺服器,記憶體大約為64G,使用的虛擬機器為virtualbox,在官網下載,安裝步驟略。注意,請用相同的使用者名稱建立,這會為後面省去很多麻煩。
這裡寫圖片描述
主從機互ping
隨後將兩個guest機配置成slave1和slave2,host機作為master,這裡主要需要注意的是通訊問題。
要讓彼此都ping通,有一點小技巧,我是參照這個教程來做的。

https://2buntu.com/articles/1513/accessing-your-virtualbox-guest-from-your-host-os/
簡言之,在預設NAT的模式下,guest是可以直接訪問host的,也可以互相訪問,但是host不能訪問guest,不過通過新增host-only networks,再在guest端新增對應的介面卡,host和guest就在同一個網段了。
將它們對應的ip都新增到各自的/etc/hosts檔案中。
無密碼登陸
在ping通後,我們希望可以無密碼登陸,具體要做的事情是從機分別將公鑰發給主機,然後主機綜合所有的公鑰(包括它自己的),將authorized_keys複製到slave1和slave2的~/.ssh
目錄下。如果要從圖形介面觀看這個資料夾,由於它是隱藏的,可以按ctrl+H鍵顯示出來。
操作流程:
1) 安裝ssh : sudo apt-get install openssh-server
安裝完成後使用ssh命令登陸本機 ssh localhost
2)
exit # 退出剛才的 ssh localhost
cd ~/.ssh/ # 若沒有該目錄,請先執行一次ssh localhost
ssh-keygen -t rsa # 會有提示,都按回車就可以
3) 在從機slave1和slave2上重複這個步驟,隨後利用scp傳輸:
在slave1上:scp id_rsa.pub [email protected]:~/.ssh/id_rsa.pub.slave1
在slave2上:scp id_rsa.pub [email protected]:~/.ssh/id_rsa.pub.slave2
在master上:

cat id_rsa.pub >> authorized_keys
cat id_rsa.pub.slave1 >> authorized_keys
cat id_rsa.pub.slave2 >> authorized_keys

隨後將master的公鑰資訊authorized_keys複製到slave1和slave2對應目錄下,就可以實現無密碼登陸了。
修改master、slave1、slave2的配置檔案
詳細的修改策略可以參考:
http://www.powerxing.com/install-hadoop/
注意不能完全照搬,這裡我打算將master既作為主節點,又作為計算節點,所以修改slaves為:
master
slave1
slave2
同時三臺機器上的’dfs.replication’值設定為3,就是說資料會有3份備份。

測試Hadoop分散式叢集環境
首先確保每臺機器的JAVA_HOME都已經準確設定了,就可以按照教程測試了。
測試步驟請同樣參考 http://www.powerxing.com/install-hadoop/

2 Spark叢集的搭建

安裝scala,並設定SCALA_HOME,在3臺機器上都做同樣配置。
由於我一開始下載的版本是2.11.7所以我自己重新編譯了一下。
在官網下載:http://spark.apache.org/downloads.html
Scala 2.11 users should download the Spark source package and build with Scala 2.11 support.

./dev/change-scala-version.sh 2.11
./build/mvn -Pyarn -Phadoop-2.6 -Dscala-2.11 -DskipTests clean package

配置Spark的執行環境,將spark-env.sh.template模板檔案複製成spark-env.sh,然後填寫相應需要的配置內容
具體的說明可見相應template中註釋掉的內容
export SPARK_MASTER_IP=master
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=1
export SPARK_WORDER_INSTANCES=1
export SPARK_WORKER_MEMORY=5g
或者參考:
https://taoistwar.gitbooks.io/spark-operationand-maintenance-management/content/spark_install/spark_standalone_configuration.html

修改該conf/slaves檔案,寫入各節點的主機名,master本身也作為工作節點:
master
slave1
slave2

啟動叢集,首先啟動hadoop叢集,簡單的方式就是在

~/hadoop/sbin/start-all.sh

在master上jps可以看到:
namenode
nodemanager
resourcemanager
secondarynamenode
datanode
隨後啟動spark叢集

~/spark/sbin/start-all.sh

此時會多出
worker
master

3. Intellij

附上一段work的原始碼

/**
  * Created by singleton on 4/8/16.
  */
import scala.math.random
import org.apache.spark._
object RemoteDebug {
  def main(args: Array[String]) {
    val conf = new SparkConf().setAppName("Spark Pi").setMaster("spark://master:7077")
      .setJars(List("/home/singleton/GraduateWorkshop/SparkRemote/out/artifacts/SparkRemote_jar/SparkRemote.jar"))
    val spark = new SparkContext(conf)
    val slices = if (args.length > 0) args(0).toInt else 2
    val n = 100000 * slices
    val count = spark.parallelize(1 to n, slices).map { i =>
      val x = random * 2 - 1
      val y = random * 2 - 1
      if (x * x + y * y < 1) 1 else 0
    }.reduce(_ + _)
    println("Pi is roughly " + 4.0 * count / n)
    spark.stop()
  }
}

相關推薦

spark1.6.0+Hadoop2.6.0+Scala-2.11.7 搭建分散式叢集

昨天又搗鼓了一下,網上有些寫得很不錯的教程,自己經過嘗試後覺得需要整理一下。 spark的執行模式有多種(見官網和Spark的Standalone模式安裝部署): local(本地模式):常用於本地開發測試,本地還分為local單執行緒和local-clu

spark2.2.0-hadoop2.6.0預編譯叢集安裝

1、下載解壓 將下載好的spark-2.2.0-bin-hadoop2.6.tgz包移動到netcloud03 netcloud04 netcloud05 各節點的/opt目錄下並解壓 2、Spark基於Standalone執行模式進行配置  1)測試    cd

Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分散式叢集環境

Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分散式叢集環境   一、環境說明 個人理解:zookeeper可以獨立搭建叢集,hbase本身不能獨立搭建叢集需要和hadoop和hdfs整合 叢集環境至少需要3個節點(也就是3臺伺服器裝置):1個Master,2

Apache Flink 1.7.0 釋出,支援 Scala 2.12

Apache Flink 1.7.0 已釋出,Apache Flink 是一個開源的流處理框架,應用於分散式、高效能、始終可用的、準確的資料流應用程式。 新特性和改進: 支援 Scala 2.12 State Evolution:現在能夠更靈活地調整長時間執行的應用的使用者狀態模式,同時保持與先

ubuntu 14.04 下單機安裝 hadoop 2.7.2+scala 2.11.8+spark 2.0分散式教程

一.安裝java 將java下載後手動解壓到/home/che資料夾下(可採用右擊壓縮包,單擊“提取”) 在終端(可用Ctrl+Alt+T快捷鍵開啟)中輸入: sudo gedit /etc/profile 在開啟的文字中新增: expor

Spark專案之環境搭建(單機)三 scala-2.12.7+ spark-2.3.2-bin-hadoop2.7安裝

上傳scala和spark架包 解壓然後重新命名 tar -zxf scala-2.12.7.tgz mv scala-2.12.7 scala tar -zxf spark-2.3.2-bin-hadoop2.7.tgz mv spark-2.3.

移植openssh-7.5p1(包括openssl-1.0.2l、zlib-1.2.11)到HISI3520d(編譯篇)

#PS:要轉載請註明出處,本人版權所有 #PS:這個只是 《 我自己 》理解,如果和你的 #原則相沖突,請諒解,勿噴 HOST: Linux 4.10.0-35-generic #39~16.04.1-Ubuntu SMP Wed Sep

MongoDB4.0搭建分散式叢集

搭建之前先了解一下MongoDB分片群集主要有如下三個元件: Shard:分片伺服器,用於儲存實際的資料塊,實際生產環境中一個shard server 角色可以由幾臺伺服器組成一個Peplica Set 承擔,防止主機單點故障。 Config Server:配置伺服器,儲

Spark 1.5.2(Scala 2.11)版本的編譯與安裝

Spark於11月9號又將幾個BUG解決之後,release一個較新的版本。作為spark的追隨者,於是開始重新進行spark的編譯。 有了前面的編譯經驗和之前下載好的java類包,花了大概一分鐘就編譯妥當,於是重新部署配置一下,馬上OK。簡直是高效率。 對於scala

Dask快速搭建分散式叢集(大資料0基礎可以理解,並使用!)

轉載:  https://blog.csdn.net/a19990412/article/details/79510219常開心,解決了很久都沒有解決的問題使用的語言: Python3.5 分散式機器: windows7注意到,其實,通過這工具搭建分散式不需要管使用的電腦是什

hadoop2.x單機搭建分散式叢集超詳細教程

【前言】 1.個人PC機配置:戴爾,筆記本,記憶體8G,硬碟西數500G,CPU酷睿i5 2.由於工作中需要經常在叢集上做測試,另外我一直想學習大資料,因此結合百度+同事,有了此篇教程,初學者,不足之處,可在下方留言 【準備工作】 下載如下5個軟體: 1.VMw

Hadoop2.7.4分散式叢集安裝配置檔案

叢集環境 Hadoop版本為2.7.4 JDK版本1.8.0_144 安裝了三臺虛擬機器分別設定名稱和IP如下 主機名稱 IP地址 master 192.168.1.15 slave01 192.168.1.16

Hadoop-2.8.4版本 分散式叢集搭建

Hadoop分散式叢集搭建 建立虛擬機器(用VmWare工具,centos6) 克隆三臺機器 master slaver1 slaver2 分別在每臺機器上安裝jdk >= 1.7版本 vim  /etc/profile 四、同步三臺虛擬機器的時間(時間

spark1.6+hadoop2.6+kafka2.10-0.8.2.1+zookeeper3.3.6安裝及sparkStreaming程式碼編寫和除錯

安裝環境 安裝之前確保裝置至少有4GB記憶體,推薦8GB centos7.2 docker(這個安裝請參考我的另一篇部落格https://blog.csdn.net/qq_16563637/article/details/81699251) 目標安裝軟體

用pycharm + python寫spark(spark-2.0.1-bin-hadoop2.6

一、將pyspark放入: 該目錄位置(我的是mac): /Library/Python/2.7/site-packages 二、env配置: 步驟1: 步驟2: 步驟3: SPARK_CLASSPATH /Users/Chave

hadoop-2.6.0.tar.gz + spark-1.5.2-bin-hadoop2.6.tgz的叢集搭建(單節點)(Ubuntu系統)

前言 關於幾個疑問和幾處心得! a.用NAT,還是橋接,還是only-host模式? b.用static的ip,還是dhcp的? 答:static c.別認為快照和克隆不重要,小技巧,比別人靈活用,會很節省時間和大大減少錯誤。 d.重用起來指令碼語言的程式設計,如paython

Spark on YARN模式的安裝(spark-1.6.1-bin-hadoop2.6.tgz + hadoop-2.6.0.tar.gz)(master、slave1和slave2)(博主推薦)

說白了   Spark on YARN模式的安裝,它是非常的簡單,只需要下載編譯好Spark安裝包,在一臺帶有Hadoop YARN客戶端的的機器上執行即可。    Spark on YARN分為兩種: YARN cluster(YARN standalone,0.9版本以前)和 YA

hadoop-2.6.0.tar.gz + spark-1.6.1-bin-hadoop2.6.tgz的叢集搭建(單節點)(CentOS系統)

前言 關於幾個疑問和幾處心得! a.用NAT,還是橋接,還是only-host模式? b.用static的ip,還是dhcp的? 答:static c.別認為快照和克隆不重要,小技巧,比別人靈活用,會很節省時間和大大減少錯誤。 d.重用起來指令碼語言

Hive1.2.1安裝和使用(基於Hadoop2.6.0)

安裝hive,這裡使用mysql作為hive的metastore; Ubuntu 15.10虛擬機器中安裝mysql方法請看:http://kevin12.iteye.com/admin/blogs/2280771Hadoop2.6.0叢集安裝:http://kevin12

分布式配置hadoop2.5.0 2.6.x

nta aux log start conf 一個 ssi 重啟 保留 1. sudo vim /etc/hostname   在master的機器上,改成 master   在slave上寫 slave01,02,03......   配置好後重啟