大數據學習系列之六 ----- Hadoop+Spark環境搭建

来源:http://www.cnblogs.com/xuwujing/archive/2017/12/19/8067293.html
-Advertisement-
Play Games

引言 在上一篇中 "大數據學習系列之五 Hive整合HBase圖文詳解" : http://www.panchengming.com/2017/12/18/pancm62/ 中使用Hive整合HBase,並且測試成功了。在之前的 "大數據學習系列之一 Hadoop環境搭建(單機)" : http:/ ...


引言

在上一篇中 大數據學習系列之五 ----- Hive整合HBase圖文詳解http://www.panchengming.com/2017/12/18/pancm62/ 中使用Hive整合HBase,並且測試成功了。在之前的大數據學習系列之一 ----- Hadoop環境搭建(單機) : http://www.panchengming.com/2017/11/26/pancm55/ 中成功的搭建了Hadoop的環境,本文主要講的是Hadoop+Spark 的環境。雖然搭建的是單機版,但是改成集群版的也相當容易,這點以後會寫關於Hadoop+Spark+HBase+Hive+Zookeeper 等集群的相關說明的。

一、環境選擇

1,伺服器選擇

本地虛擬機
操作系統:linux CentOS 7
Cpu:2核
記憶體:2G
硬碟:40G

2,配置選擇

JDK:1.8 (jdk-8u144-linux-x64.tar.gz)
Hadoop:2.8.2 (hadoop-2.8.2.tar.gz)
Scala:2.12.2 (scala-2.12.2.tgz)
Spark: 1.6 (spark-1.6.3-bin-hadoop2.4-without-hive.tgz)

3,下載地址

官網地址:
JDK:
http://www.oracle.com/technetwork/java/javase/downloads
Hadopp:
http://www.apache.org/dyn/closer.cgi/hadoop/common
Spark:
http://spark.apache.org/downloads.html
Hive on Spark (spark集成hive的版本)
http://mirror.bit.edu.cn/apache/spark/
Scala:
http://www.scala-lang.org/download

百度雲:
鏈接:https://pan.baidu.com/s/1geT3A8N 密碼:f7jb

二、伺服器的相關配置

在配置Hadoop+Spark整合之前,應該先做一下配置。
做這些配置為了方便,使用root許可權。

1,更改主機名

首先更改主機名,目的是為了方便管理。
查看本機的名稱
輸入:

hostname 

更改本機名稱
輸入:

hostnamectl set-hostname master

註:主機名稱更改之後,要重啟(reboot)才會生效。

2,主機和IP做關係映射

修改hosts文件,做關係映射
輸入

vim /etc/hosts

添加
主機的ip 和 主機名稱

192.168.219.128 master

3,關閉防火牆

關閉防火牆,方便外部訪問。
CentOS 7版本以下輸入:
關閉防火牆

service   iptables stop

CentOS 7 以上的版本輸入:

systemctl stop firewalld.service

4,時間設置

輸入:

date

查看伺服器時間是否一致,若不一致則更改
更改時間命令

date -s ‘MMDDhhmmYYYY.ss’

三、Scala環境配置

因為Spark的配置依賴與Scala,所以先要配置Scala。
Scala的配置

1, 文件準備

將下載好的Scala文件解壓
輸入

tar -xvf scala-2.12.2.tgz

然後移動到/opt/scala 裡面
並且重命名為scala2.1
輸入

mv  scala-2.12.2  /opt/scala
mv scala-2.12.2 scala2.1

2,環境配置

編輯 /etc/profile 文件
輸入:

export SCALA_HOME=/opt/scala/scala2.1
export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:$PATH

輸入:

source  /etc/profile

使配置生效
輸入 scala -version 查看是否安裝成功

這裡寫圖片描述

三、Spark的環境配置

1,文件準備

Spark有兩種,下載的地址都給了,一種是純凈版的spark,一種是集成了hadoop以及hive的版本。本文使用的是第二種
將下載好的Spark文件解壓
輸入

tar -xvf spark-1.6.3-bin-hadoop2.4-without-hive.tgz

然後移動到/opt/spark 裡面,並重命名
輸入

mv  spark-1.6.3-bin-hadoop2.4-without-hive  /opt/spark
mv  spark-1.6.3-bin-hadoop2.4-without-hive  spark1.6-hadoop2.4-hive

這裡寫圖片描述

2,環境配置

編輯 /etc/profile 文件
輸入:

export  SPARK_HOME=/opt/spark/spark1.6-hadoop2.4-hive 
export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:$PATH

這裡寫圖片描述

輸入:

source  /etc/profile

使配置生效

3,更改配置文件

切換目錄
輸入:

cd /opt/spark/spark1.6-hadoop2.4-hive/conf

4.3.1 修改 spark-env.sh

在conf目錄下,修改spark-env.sh文件,如果沒有 spark-env.sh 該文件,就複製spark-env.sh.template文件並重命名為spark-env.sh。
修改這個新建的spark-env.sh文件,加入配置:

export SCALA_HOME=/opt/scala/scala2.1    
export JAVA_HOME=/opt/java/jdk1.8
export HADOOP_HOME=/opt/hadoop/hadoop2.8    
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop  
export SPARK_HOME=/opt/spark/spark1.6-hadoop2.4-hive
export SPARK_MASTER_IP=master    
export SPARK_EXECUTOR_MEMORY=1G 

這裡寫圖片描述
註:上面的路徑以自己的為準,SPARK_MASTER_IP為主機,SPARK_EXECUTOR_MEMORY為設置的運行記憶體。

五、Hadoop環境配置

Hadoop的具體配置在大數據學習系列之一 ----- Hadoop環境搭建(單機)http://www.panchengming.com/2017/11/26/pancm55 中介紹得很詳細了。所以本文就大體介紹一下。
註:具體配置以自己的為準。

1,環境變數設置

編輯 /etc/profile 文件 :

vim /etc/profile

配置文件:

export HADOOP_HOME=/opt/hadoop/hadoop2.8
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=.:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:$PATH

2,配置文件更改

先切換到 /home/hadoop/hadoop2.8/etc/hadoop/ 目錄下

5.2.1 修改 core-site.xml

輸入:

vim core-site.xml

<configuration>
<property>
        <name>hadoop.tmp.dir</name>
        <value>/root/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
   </property>
   <property>
        <name>fs.default.name</name>
        <value>hdfs://master:9000</value>
   </property>
</configuration>

5.2.2修改 hadoop-env.sh

輸入:

vim hadoop-env.sh

將${JAVA_HOME} 修改為自己的JDK路徑

export   JAVA_HOME=${JAVA_HOME}

修改為:

export   JAVA_HOME=/home/java/jdk1.8

5.2.3修改 hdfs-site.xml

輸入:

vim hdfs-site.xml

<property>
   <name>dfs.name.dir</name>
   <value>/root/hadoop/dfs/name</value>
   <description>Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently.</description>
</property>
<property>
   <name>dfs.data.dir</name>
   <value>/root/hadoop/dfs/data</value>
   <description>Comma separated list of paths on the localfilesystem of a DataNode where it should store its blocks.</description>
</property>
<property>
   <name>dfs.replication</name>
   <value>2</value>
</property>
<property>
      <name>dfs.permissions</name>
      <value>false</value>
      <description>need not permissions</description>
</property>

5.2.4 修改mapred-site.xml

如果沒有 mapred-site.xml 該文件,就複製mapred-site.xml.template文件並重命名為mapred-site.xml。
輸入:

vim mapred-site.xml

修改這個新建的mapred-site.xml文件,在

<property>
    <name>mapred.job.tracker</name>
    <value>master:9001</value>
</property>
<property>
      <name>mapred.local.dir</name>
       <value>/root/hadoop/var</value>
</property>
<property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
</property>

3,Hadoop啟動

註:如果已經成功配置了就不用了
啟動之前需要先格式化
切換到/home/hadoop/hadoop2.8/bin目錄下
輸入:

./hadoop  namenode  -format

格式化成功後,再切換到/home/hadoop/hadoop2.8/sbin目錄下
啟動hdfs和yarn
輸入:

start-dfs.sh
start-yarn.sh

啟動成功後,輸入jsp查看是否啟動成功
在瀏覽器輸入 ip+8088 和ip +50070 界面查看是否能訪問
能正確訪問則啟動成功

六、Spark啟動

啟動spark要確保hadoop已經成功啟動
首先使用jps命令查看啟動的程式
在成功啟動spark之後,再使用jps命令查看
切換到Spark目錄下
輸入:

cd /opt/spark/spark1.6-hadoop2.4-hive/sbin

然後啟動Spark
輸入:

 start-all.sh

這裡寫圖片描述

然後在瀏覽器輸入
http://192.168.219.128:8080/

正確顯示該界面,則啟動成功
這裡寫圖片描述

註:如果spark成功啟動,但是無法訪問界面,首先檢查防火牆是否關閉,然後在使用jps查看進程,如果都沒問題的,一般就可以訪問界面。如果還是不行,那麼檢查hadoop、scala、spark的配置。

那麼本文到此結束,謝謝閱讀!
如果覺得不錯,可以點擊一下贊或推薦。

版權聲明:
作者:虛無境
博客園出處:http://www.cnblogs.com/xuwujing
CSDN出處:http://blog.csdn.net/qazwsxpcm    
個人博客出處:http://www.panchengming.com
原創不易,轉載請標明出處,謝謝!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 【環境】 【乾貨分享】 vim或者vi命令在很多linux環境中自帶一款學習教程,其教程說明語言還是隨系統變化。 輸入vimtutor這個命令會打開一款學習神器。 打開之後顯示如下,vimtutor一共7講,大概只需要半個小時就可以完成學習,可以記住很多vim常用命令。熟練之後完全可以拋棄圖形版的文 ...
  • ...
  • ...
  • ...
  • ...
  • 今天處理一個項目要遷移的問題,突然發現這麼多圖片怎麼移過去,可能第一時間想到的是先從這台伺服器下載下來,然後再上傳到另外一臺伺服器上面去,這個方法確實是可行,但是實在是太費時間了,今天我就教大家怎麼快速的在兩台伺服器之間傳輸文件和文件夾。 第一步:打開我們的遠程連接工具,輸入賬號密碼登錄到伺服器,如 ...
  • /* plSql編程語言 是在sql語句中加入處理過程的語句 條件判斷 if..else 迴圈結構 for() while do while 自己定義變數處理邏輯 基本結構 declare --聲明的部分 --定義變數的部分 begin --處理邏輯的代碼塊 ... ...
  • Curl命令可以通過命令行的方式,執行Http請求。在Elasticsearch中有使用的場景,因此這裡研究下如何在windows下執行curl命令。 工具下載 在官網處下載工具包:http://curl.haxx.se/download.html 使用方式一:在curl.exe目錄中使用 解壓下載 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...