1. 程式人生 > >Ubuntu 18.04 搭建Hadoop和spark

Ubuntu 18.04 搭建Hadoop和spark

本文介紹如何在Ubuntu18.04上搭建Hadoop以及spark,供單機測試用。

準備包:

jdk-8u101-linux-x64.gz

hadoop-2.7.7.tar.gz

scala-2.11.8.tgz

spark-2.3.1-bin-hadoop2.7.tgz

搭建過程中沒有必要使用root使用者搭建,放在home資料夾下即可。

1.配置無密碼登入本機

安裝ssh服務,命令為:

sudo apt-get install openssh-server

trl+alt+T,開啟終端

介入:   ssh-keygen -t rsa -P ''

一路回車

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

測試:重啟終端,介入:ssh localhost

無需輸入密碼為成功

2.Ctrl+alt+T,開啟終端,介入“mkdir bigdata”,在家目錄下建立一個BigData的資料夾,我們把上面的軟體包全部移入此資料夾,便於以後管理。

3.解壓各個軟體包,如解壓jdk,介入命令“tar -zxvf jdk-8u101-linux-x64.gz”,以此類推,解壓各個包

4.同樣是為了方便操作,我們將解壓過後的jdk的包,hadoop的包,scala的包以及spark的包分別更名為:jdk1.8,hadoop2.7,scala2.11,以及spark2.3。

更名命令為:

mv "解壓過後的包名" “新名”

5.配置環境變數

sudo vim ~/.bashrc  (前提是已安裝vim,安裝命令為:sudo apt-get install vim)

在檔案最後新增如下:

#java
export JAVA_HOME=/home/idiot/BigData/jdk1.8
export CLASSPATH=".:$JAVA_HOME/lib:$JAVA_HOME/jre/lib$CLASSPATH"
export PATH="$JAVA_HOME/bin:$JAVA_HOME/jre/bin:/home/idiot/BigData/hadoop2.7/bin:$PATH"


#hadoop
 export HADOOP_HOME=/home/idiot/BigData/hadoop2.7


 export PATH=$PATH:$HADOOP_HOME/bin
 export PATH=$PATH:$HADOOP_HOME/sbin
 export HADOOP_MAPRED_HOME=$HADOOP_HOME
 export HADOOP_COMMON_HOME=$HADOOP_HOME
 export HADOOP_HDFS_HOME=$HADOOP_HOME
 export YARN_HOME=$HADOOP_HOME
 export HADOOP_ROOT_LOGGER=INFO,console
 export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
 export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

 #spark
 export SPARK_HOME=/home/idiot/BigData/spark2.3
 export PATH=$SPARK_HOME/bin:$PATH

 #scala
 export SCALA_HOME=/home/idiot/BigData/scala2.11
 export PATH=$SCALA_HOME/bin:$PATH
 

注意,這裡的路徑都是博主自己電腦上的路徑,博主將更名後的包資料夾全部放在/home/idiot/BigData/中了,讀者可根據自己解壓的位置自行修改路徑。

修改完後介入命令:

source ~/.bashrc    

測試java版本

輸入:java -version

出現:

java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
為成功。

輸入:scala -version

出現:

Scala code runner version 2.11.8 -- Copyright 2002-2016, LAMP/EPFL
為正常。

6.修改hadoop檔案配置

進入hadoop2.7資料夾,再進入etc/hadoop資料夾,

1)該資料夾中如果沒有“master”和“slaves”檔案,建立即可,在這兩個檔案中寫入“localhost”即可,注意沒有雙引號。

2)修改hadoop-env.sh檔案:

找到“export JAVA_HOME=”一行,修改為:

export JAVA_HOME=/home/idiot/BigData/jdk1.8

注意,這裡的java路徑仍然是博主自己的路徑,讀者可修改為自己的java路徑。儲存退出。

3)修改core-site.xml檔案:

<configuration>
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
    </property>
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/idiot/BigData/hadoop2.7/file/coreTmp</value>
    </property>
</configuration>

4)修改hdfs-site.xml檔案:

<configuration>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>localhost:50090</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/home/idiot/BigData/hadoop2.7/file/nameTmp</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/home/idiot/BigData/hadoop2.7/file/dataTmp</value>
    </property>
</configuration>

介入命令

cp mapred-site.xml.template mapred-site.xml

5)修改mapred-site.xml檔案:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>localhost:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>localhost:19888</value>
    </property>
</configuration>

6)修改yarn-site.xml檔案:

<configuration>
     <property>
         <name>yarn.nodemanager.aux-services</name>
         <value>mapreduce_shuffle</value>
     </property>
     <property>
         <name>yarn.resourcemanager.address</name>
         <value>localhost:8032</value>
     </property>
     <property>
         <name>yarn.resourcemanager.scheduler.address</name>
         <value>localhost:8030</value>
     </property>
     <property>
         <name>yarn.resourcemanager.resource-tracker.address</name>
         <value>localhost:8031</value>
     </property>
     <property>
         <name>yarn.resourcemanager.admin.address</name>
         <value>localhost:8033</value>
     </property>
     <property>
         <name>yarn.resourcemanager.webapp.address</name>
         <value>localhost:8088</value>
     </property>
</configuration>

7.修改檔案完成,更新,進入hadoop2.7檔案中的bin目錄下,介入命令:

hadoop namenode -format

8.啟動hadoop,進入hadoop2.7資料夾sbin目錄下,介入命令:

./start-all.sh

介入命令,jps,

出現:

27383 DataNode
27624 SecondaryNameNode
28075 NodeManager
28286 Jps
27790 ResourceManager
27183 NameNode

為正常。開啟瀏覽器,輸入:localhost:50070,出現HDFS網頁介面,輸入:localhost:8088,出現hadoop網頁介面.

9.配置spark

進入spark2.3檔案下的conf目錄,

1)該資料夾中如果沒有“master”和“slaves”檔案,建立即可,在這兩個檔案中寫入“localhost”即可,注意沒有雙引號

2)介入命令:

cp spark-env.sh.template spark-env.sh

修改spark-env.sh檔案,在末尾新增如下資訊:

export JAVA_HOME=/home/idiot/BigData/jdk1.8
export SCALA_HOME=/home/idiot/BigData/scala2.10
export HADOOP_HOME=/home/idiot/BigData/hadoop2.7
export HADOOP_CONF_DIR=/home/idiot/BigData/hadoop2.7/etc/hadoop
export SPARK_MASTER_IP=localhost
export SPARK_MASTER_HOST=localhost
export SPARK_LOCAL_IP=localhost
export SPARK_WORKER_MEMORY=5g
export SPARK_WORKER_CORES=3
export SPARK_HOME=/home/idiot/BigData/spark2.3
export SPARK_DIST_CLASSPATH=$(/home/idiot/BigData/hadoop2.7/bin/hadoop classpath)

讀者根據自己機器的配置自行修改引數,路徑。

10.啟動spark,進入spark2.3資料夾下的sbin目錄,介入命令:

./start-all.sh

啟動完成,介入,jps

出現:

27383 DataNode
27624 SecondaryNameNode
29464 Jps
28075 NodeManager
29212 Master
29374 Worker
27790 ResourceManager
27183 NameNode
多了Master和Worker。開啟網頁,輸入:localhost:8080,出現spark網頁介面。

完畢

(注:所有紅色標記的路徑,使用者要根據自己解壓安裝包的路徑修改,不要複製。)