1. 程式人生 > >大數據學習系列之六 ----- Hadoop+Spark環境搭建

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

csdn jdk sts htm ps命令 sta cnblogs 環境變量設置 lib

引言

在上一篇中 大數據學習系列之五 ----- 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>添加:

<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

在<configuration>添加:

<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文件,在<configuration>節點內加入配置:

<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
原創不易,轉載請標明出處,謝謝!

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