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網頁介面。
完畢
(注:所有紅色標記的路徑,使用者要根據自己解壓安裝包的路徑修改,不要複製。)