小白入門AI教程:教你快速搭建大數據平臺『Hadoop+Spark』

Apache Spark 簡介java

Apache Spark 是專爲大規模數據處理而設計的快速通用的計算引擎。Spark是UC Berkeley AMP lab (加州大學伯克利分校的AMP實驗室)所開源的類Hadoop MapReduce的通用並行框架,擁有Hadoop MapReduce所具備的優勢;但不一樣於MapReduce的是Job中間輸出結果能夠保存在內存中,從而再也不須要讀寫HDFS,所以Spark能更好地適用於數據挖掘與機器學習等須要迭代的MapReduce的算法。node

 

Spark 是一種與 Hadoop 類似的開源集羣計算環境,可是二者之間還存在一些不一樣之處,這些有用的不一樣之處使 Spark 在某些工做負載方面表現得更加優越,換句話說,Spark 啓用了內存分佈數據集,除了可以提供交互式查詢外,它還能夠優化迭代工做負載。web

 

Spark 是在 Scala 語言中實現的,它將 Scala 用做其應用程序框架。與 Hadoop 不一樣,Spark 和 Scala 可以緊密集成,其中的 Scala 能夠像操做本地集合對象同樣輕鬆地操做分佈式數據集。算法

 

儘管建立 Spark 是爲了支持分佈式數據集上的迭代做業,可是實際上它是對 Hadoop 的補充,能夠在 Hadoop 文件系統中並行運行。經過名爲 Mesos 的第三方集羣框架能夠支持此行爲。Spark 由加州大學伯克利分校 AMP 實驗室 (Algorithms, Machines, and People Lab) 開發,可用來構建大型的、低延遲的數據分析應用程序。shell

準備工做1  環境apache

JDK:1.8   Spark-2.2.0 Hadoop Release:2.7.4   centos:7.3JDK:1.8   Spark-2.2.0 Hadoop Release:2.7.4   centos:7.3
主機名 ip地址 安裝服務
spark-master 192.168.252.121 jdk、hadoop、spark、scala
spark-slave01 192.168.252.122 jdk、hadoop、spark
spark-slave02 192.168.252.123 jdk、hadoop、spark

2  依賴環境segmentfault

Spark 是在 Scala 語言中實現的,它將 Scala 用做其應用程序框架。與 Hadoop 不一樣,Spark 和 Scala 可以緊密集成,其中的 Scala 能夠像操做本地集合對象同樣輕鬆地操做分佈式數據集。安裝 Scala:centos

  • Scala併發

Scala-2.13.0 安裝及配置(https://link.juejin.im/?target=https%3A%2F%2Fsegmentfault.com%2Fa%2F1190000011314775)  框架

  • Hadoop

Hadoop-2.7.4 集羣快速搭建(https://link.juejin.im/?target=https%3A%2F%2Fsegmentfault.com%2Fa%2F1190000011266759)

 

安裝

 

1  下載解壓

 

su hadoopcd /home/hadoop/ wget https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.2.0/spark-2.2.0-bin-hadoop2.7.tgz tar -zxvf spark-2.2.0-bin-hadoop2.7.tgz mv spark-2.2.0-bin-hadoop2.7 spark-2.2.0su hadoopcd /home/hadoop/ wget https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.2.0/spark-2.2.0-bin-hadoop2.7.tgz tar -zxvf spark-2.2.0-bin-hadoop2.7.tgz mv spark-2.2.0-bin-hadoop2.7 spark-2.2.0

2  環境變量

若是是對全部的用戶都生效就修改vi /etc/profile 文件若是隻針對當前用戶生效就修改 vi ~/.bahsrc  文件

sudo vi /etc/profilesudo vi /etc/profile
#sparkexport PATH=${SPARK_HOME}/bin:$PATHexport SPARK_HOME=/home/hadoop/spark-2.2.0/#sparkexport PATH=${SPARK_HOME}/bin:$PATHexport SPARK_HOME=/home/hadoop/spark-2.2.0/

使環境變量生效,運行 source /etc/profile使/etc/profile 文件生效

3  修改配置

 

修改 spark-env.sh

cd /home/hadoop/spark-2.2.0/conf mv spark-env.sh.template spark-env.sh vi spark-env.sh #javaexport JAVA_HOME=/lib/jvm#Spark主節點的IPexport SPARK_MASTER_IP=192.168.252.121#Spark主節點的端口號export SPARK_MASTER_PORT=7077cd /home/hadoop/spark-2.2.0/conf mv spark-env.sh.template spark-env.sh vi spark-env.sh #javaexport JAVA_HOME=/lib/jvm#Spark主節點的IPexport SPARK_MASTER_IP=192.168.252.121#Spark主節點的端口號export SPARK_MASTER_PORT=7077

簡單介紹幾個變量

  • JAVA_HOME:Java安裝目錄

  • SCALA_HOME:Scala安裝目錄

  • HADOOP_HOME:hadoop安裝目錄

  • HADOOP_CONF_DIR:hadoop集羣的配置文件的目錄

  • SPARK_MASTER_IP:spark集羣的Master節點的ip地址

  • SPARK_WORKER_MEMORY:每一個worker節點可以最大分配給exectors的內存大小

  • SPARK_WORKER_CORES:每一個worker節點所佔有的CPU核數目

  • SPARK_WORKER_INSTANCES:每臺機器上開啓的worker節點的數目

 

修改 slaves

cd /home/hadoop/spark-2.2.0/conf mv slaves.template slaves vi slaves node1 node2 node3cd /home/hadoop/spark-2.2.0/conf mv slaves.template slaves vi slaves node1 node2 node3

4  配置集羣

 

複製節點

進去 spark 安裝目錄 ,打包,併發送,到其餘節點

cd cd /home/hadoop/ tar zcvf spark.tar.gz spark-2.2.0 scp spark.tar.gz hadoop@node2:/home/hadoop/ scp spark.tar.gz hadoop@node3:/home/hadoop/cd cd /home/hadoop/ tar zcvf spark.tar.gz spark-2.2.0 scp spark.tar.gz hadoop@node2:/home/hadoop/ scp spark.tar.gz hadoop@node3:/home/hadoop/

進去 node1,node2 節點 解壓

cd /home/hadoop/ tar -zxvf spark.tar.gzcd /home/hadoop/ tar -zxvf spark.tar.gz

環境變量

到這裏一步 確保你的每個節點 環境變量夠數

#jdk export JAVA_HOME=/lib/jvm export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${SPARK_HOME}/bin:${SCALA_HOME}/bin:${HADOOP_HOME}/bin:${JAVA_HOME}/bin:$PATH #hadoop export HADOOP_HOME=/home/hadoop/hadoop-2.7.4/ #scala export SCALA_HOME=/lib/scala #spark export SPARK_HOME=/home/hadoop/spark-2.2.0/#jdk export JAVA_HOME=/lib/jvm export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${SPARK_HOME}/bin:${SCALA_HOME}/bin:${HADOOP_HOME}/bin:${JAVA_HOME}/bin:$PATH #hadoop export HADOOP_HOME=/home/hadoop/hadoop-2.7.4/ #scala export SCALA_HOME=/lib/scala #spark export SPARK_HOME=/home/hadoop/spark-2.2.0/

5  啓動集羣

關閉防火牆

systemctl stop firewalld.servicesystemctl stop firewalld.service

啓動 Hadoop

cd /home/hadoop/hadoop-2.7.4/sbin ./start-all.shcd /home/hadoop/hadoop-2.7.4/sbin ./start-all.sh

啓動 Spark

cd /home/hadoop/spark-2.2.0/sbin ./start-all.shcd /home/hadoop/spark-2.2.0/sbin ./start-all.sh

啓動 Spark Shell

cd /home/hadoop/spark-2.2.0/bin ./spark-shell

spark 訪問:192.168.252.121:8080

spark-shell 訪問:192.168.252.121:4040

相關文章
相關標籤/搜索