大數據之Spark集群安裝及簡單使用

  • 目錄
  • 1、Spark集群安裝
    • 1.1. 安裝
  • 2、啟動Spark Shell
    • 2.1、啟動spark shell
    • 2.2、在spark shell中編寫WordCount程序

目錄

1、Spark集群安裝

1.1. 安裝

1.1.1. 機器部署
準備兩臺以上Linux服務器,安裝好JDK1.7
1.1.2. 下載Spark安裝包
這里寫圖片描述

下載地址:http://www.apache.org/dyn/closer.lua/spark/spark-1.5.2/spark-1.5.2-bin-hadoop2.6.tgz
上傳解壓安裝包
上傳spark-1.5.2-bin-hadoop2.6.tgz安裝包到Linux上
解壓安裝包到指定位置
tar -zxvf spark-1.5.2-bin-hadoop2.6.tgz -C /usr/local

1.1.3. 配置Spark
進入到Spark安裝目錄
cd /usr/local/spark-1.5.2-bin-hadoop2.6
進入conf目錄并重命名并修改spark-env.sh.template文件
cd conf/
mv spark-env.sh.template spark-env.sh
vi spark-env.sh
在該配置文件中添加如下配置
export JAVA_HOME=/usr/java/jdk1.7.0_45
export SPARK_MASTER_IP=node1
export SPARK_MASTER_PORT=7077
保存退出
重命名并修改slaves.template文件
mv slaves.template slaves
vi slaves
在該文件中添加子節點所在的位置(Worker節點)
node2
node3
node4
保存退出
將配置好的Spark拷貝到其他節點上
scp -r spark-1.5.2-bin-hadoop2.6/ node2:/usr/local/
scp -r spark-1.5.2-bin-hadoop2.6/ node3:/usr/local/
scp -r spark-1.5.2-bin-hadoop2.6/ node4:/usr/local/

Spark集群配置完畢,目前是1個Master,3個Work,在node1.itcast.cn上啟動Spark集群
/usr/local/spark-1.5.2-bin-hadoop2.6/sbin/start-all.sh

啟動后執行jps命令,主節點上有Master進程,其他子節點上有Work進行,登錄Spark管理界面查看集群狀態(主節點):http://node1:8080/
這里寫圖片描述

到此為止,Spark集群安裝完畢,但是有一個很大的問題,那就是Master節點存在單點故障,要解決此問題,就要借助zookeeper,并且啟動至少兩個Master節點來實現高可靠,配置方式比較簡單:
Spark集群規劃:node1,node2是Master;node3,node4,node5是Worker
安裝配置zk集群,并啟動zk集群
停止spark所有服務,修改配置文件spark-env.sh,在該配置文件中刪掉SPARK_MASTER_IP并添加如下配置
export SPARK_DAEMON_JAVA_OPTS=”-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=zk1,zk2,zk3 -Dspark.deploy.zookeeper.dir=/spark”
1.在node1節點上修改slaves配置文件內容指定worker節點
2.在node1上執行sbin/start-all.sh腳本,然后在node2上執行sbin/start-master.sh啟動第二個Master

2、啟動Spark Shell

spark-shell是Spark自帶的交互式Shell程序,方便用戶進行交互式編程,用戶可以在該命令行下用scala編寫spark程序。

2.1、啟動spark shell

這里需要先啟動對應的Spark集群
/root/apps/spark/bin/spark-shell –master spark://shizhan:7077 –executor-memory 2g –total-executor-cores 2

參數說明:
–master spark://shizhan:7077 指定Master的地址
–executor-memory 2g 指定每個worker可用內存為2G
–total-executor-cores 2 指定整個集群使用的cup核數為2個

注意:
如果啟動spark shell時沒有指定master地址,但是也可以正常啟動spark shell和執行spark shell中的程序,其實是啟動了spark的local模式,該模式僅在本機啟動一個進程,沒有與集群建立聯系。

Spark Shell中已經默認將SparkContext類初始化為對象sc。用戶代碼如果需要用到,則直接應用sc即可

2.2、在spark shell中編寫WordCount程序

1.首先啟動hdfs
2.向hdfs上傳一個文件到hdfs://192.168.112.200:9000/words.txt
3.在spark shell中用scala語言編寫spark程序
sc.textFile("hdfs://192.168.112.200:9000/wordcount/input/README.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).saveAsTextFile("hdfs://192.168.112.200:9000/out1")
4.使用hdfs命令查看結果
hdfs dfs -ls hdfs://node1.itcast.cn:9000/out/p*

說明:
sc是SparkContext對象,該對象時提交spark程序的入口
textFile(hdfs://node1.itcast.cn:9000/words.txt)是hdfs中讀取數據
flatMap(_.split(” “))先map在壓平
map((_,1))將單詞和1構成元組
reduceByKey(+)按照key進行reduce,并將value累加
saveAsTextFile(“hdfs://node1.itcast.cn:9000/out”)將結果寫入到hdfs中

對于SparkSQL及SparkRDD的介紹請參考以下兩篇文章:
SparkSQL:https://blog.csdn.net/qq_16633405/article/details/79844593
SparkRDD:https://blog.csdn.net/qq_16633405/article/details/79843539

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456607.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456607.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456607.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《C和C++代碼精粹》——1.7 類型安全I/O

本節書摘來自異步社區出版社《C和C代碼精粹》一書中的第1章第1.7節,作者: 【美】Chuck Allison,更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 1.7 類型安全I/O C和C代碼精粹當然每個C程序員都曾經使用過printf的錯誤格式描述符號。…

大數據之Spark簡介及RDD說明

目錄前言:1、Spark概述1.1、什么是Spark(官網:http://spark.apache.org)1.2、為什么要學Spark1.3、Spark特點 2、RDD概述2.1、什么是RDD2.2、RDD的屬性2.3、創建RDD的兩種方式2.4、RDD編程API2.5、RDD的依賴關系2.6、RDD的緩存2.7…

Python3中urlopen()詳解

一. 簡介 urllib.request.urlopen()函數用于實現對目標url的訪問。 函數原型如下:urllib.request.urlopen(url, dataNone, [timeout, ]*, cafileNone, capathNone, cadefaultFalse, contextNone)  url: 需要打開的網址 data:Post提交的數據 timeo…

python面向對象實現簡易銀行管理員頁面系統

銀行管理員頁面系統設計:card 類: cardId password moneyuser 類: username phone id cards[]銀行的工作人員: 賬號 密碼 登錄 展現管理系統所有功能Bank類:開戶取錢存錢轉賬銷戶查賬解鎖... import pickle import random# 銀行卡 import time#card 類…

單子模式

package test; class aceing { /** param args */ private static aceing ace; public aceing() { super(); System.out.println("aceing類中的無參構造器調用了"); } public static aceing getAceing() { if(ace null) { ace new aceing(); } return ace; }} pack…

《塑造互聯網思維的企業》一一第4章 全球商務向社會化媒體的轉變

第4章 全球商務向社會化媒體的轉變 塑造互聯網思維的企業社會化媒體在發達國家的廣泛采用已是我們所熟知的,它在社會和全球文化產生的大范圍變革中至關重要。為了完全了解其中的原因,有必要探究一下那些推動社會化商務的復雜且相互關聯的因素的共同影響…

大數據之SparkSQL簡介及DataFrame的使用

目錄前言:1、Spark SQL1.1、Spark SQL概述1.2、DataFrames1.3、DataFrame常用操作 總結: 目錄 前言: 本文主要介紹下SparkSQL以及SparkSQL的簡單使用。這里只是做了一個非常簡單的介紹,后續工作中如果有用到相關的知識&#xff…

python的各種推導式(列表推導式、字典推導式、集合推導式)

python的各種推導式(列表推導式、字典推導式、集合推導式) 推導式comprehensions(又稱解析式),是Python的一種獨有特性。推導式是可以從一個數據序列構建另一個新的數據序列的結構體。 共有三種推導,在Pyt…

原生js實現jquery庫中選擇器的功能(jquery庫封裝一)

今天是2017.1.1,新的一天,新的一年,新的一年里繼續夯實基礎知識,在工作中多些項目,多思考,多總結,前端是不斷更新,在更新的過程中也是發現樂趣和挑戰自我的過程,希望年輕…

Ubantu下使用vi時,方向鍵變字母輸出、退格鍵無法刪除字符的解決辦法

目錄前言:一、編輯/etc/vim/vimrc.tiny二、安裝vim full版本三、添加”.vimrc”文件 目錄 前言: 最近由于要玩TensorFlow,所以把塵封已久的Ubantu給打開了,不過配置網絡的時候,算是一團糟,出現了在插入模…

《Python爬蟲開發與項目實戰》——第3章 初識網絡爬蟲 3.1 網絡爬蟲概述

本節書摘來自華章計算機《Python爬蟲開發與項目實戰》一書中的第3章,第3.1節,作者:范傳輝著,更多章節內容可以訪問云棲社區“華章計算機”公眾號查看 第3章 初識網絡爬蟲 從本章開始,將正式涉及Python爬蟲的開發。本章…

【python】解決:TypeError: can't send non-None value to a just-started generator

在一個生成器函數未啟動之前,是不能傳遞數值進去。必須先傳遞一個None進去或者調用一次next(g)方法,才能進行傳值操作 def product(c):# c.send(None)for i in range(5):print("生產者產生數據%d"%i)r c.send(str(i))print("消費者消費了…

Shell腳本與vi編輯器:vi啟動與退出、工作模式、命令大全

Vi簡介 Vi是一種廣泛存在于各種UNIX和Linux系統中的文本編輯程序。Vi不是排版程序,只是一個純粹的文本編輯程序。Vi是全屏幕文本編輯器,它沒有菜單,只有命令。Vi不是基于窗口的,所以,這個多用途編輯程序可以用于在任何…

windows環境下,如何在Pycharm下安裝TensorFlow環境

文章目錄目錄前言:1.安裝Anaconda2.安裝Tensorflow3.其他問題4.在pycharm中使用tensorflow目錄 前言: 最近由于工作需要要使用TensorFlow,所以只能狂補相關的知識。本來博主打算在Ubantu上玩,但是由于一些原因還是放棄了這個想法…

python面向對象實現簡易銀行管理員頁面系統【導入自定義模塊】

main.py 人 類名:Person 屬性:姓名 身份證號 電話 卡 行為:卡 類名:Card 屬性:卡號 密碼 余額 行為:銀行 類名:Bank 屬性:用戶列表 提款機提款機 類名:ATM 屬性&#xf…

[轉] dpkg-deb命令

點擊此處閱讀原文 軟件包管理 dpkg-deb命令是Debian Linux下的軟件包管理工具,它可以對軟件包執行打包和解包操作以及提供軟件包信息。 語法dpkg-deb(選項)(參數) 選項-c:顯示軟件包中的文件列表; -e:將主控信息解壓;…

《Effective Debugging:軟件和系統調試的66個有效方法》一第5條:在能夠正常運作的系統與發生故障的系統之間尋找差別...

本節書摘來自華章出版社《Effective Debugging:軟件和系統調試的66個有效方法》一書中的第1章,第1.5節,作[希]迪歐米迪斯斯賓奈里斯(Diomidis Spinellis),更多章節內容可以訪問云棲社…

如何安裝多個Python版本以及在Pycharm中切換Python版本

目錄前言: 首先要切換不同的版本,你必須先下載不同的Python版本,整個步驟如下所示:1、下載Python2.7x和Python3.5x版本2、安裝Python2.7x和Python3.5x版本3、配置環境變量,分別添加如下至path路徑4、只修改Python27&am…

【python】邏輯運算符總結

# 邏輯運算符 &#xff1a;構造復雜條件 # 優先級 not > and > or # 邏輯與 and 并且、同時 import random# a random.randint(1,5) # if a > 1 and a < 3_流程控制: # print("true") # else: # print("false") # 可以轉換為假&#…

C#中out和ref之間的區別【轉】

首先&#xff1a;兩者都是按地址傳遞的&#xff0c;使用后都將改變原來參數的數值。 其次&#xff1a;ref可以把參數的數值傳遞進函數&#xff0c;但是out是要把參數清空&#xff0c;就是說你無法把一個數值從out傳遞進去的&#xff0c;out進去后&#xff0c;參數的數值為空&am…