在Linux集羣上安裝與配置Spark
下面介紹如何在Linux集羣上安裝與配置Spark。
1.安裝JDK
安裝JDK大體分爲下面4個步驟。
1)用戶能夠在Oracle JDK的官網下載相應版本的JDK,本例以JDK 1.7.0_25爲例,官網地址
爲http://www.oracle.com/technetwork/java/javase/downloads/index.html。
2)下載後,在解壓出的JDK的目錄下執行bin文件。
tar -zxvf jdk-8u111-linux-x64.tar.gz
3)配置環境變量,在/etc/profile增長如下代碼。
export JAVA_HOME=/usr/local/jdk1.8.0_111
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/jre/lib/dt.jar:$JAVA_HOME/jre/lib/tools.jar
export JAVA_HOME PATH CLASSPATH
4)使profile文件更新生效。
source /etc/profilehtml
java -version
2.安裝Scala
Scala官網提供各個版本的Scala,用戶須要根據Spark官方規定的Scala版本進行下載和
安裝。 Scala官網地址爲http://www.scala-lang.org/download/2.11.7.html。
以Scala-2.10爲例進行介紹。
1)下載scala-2.11.7.tgz。
2)在目錄下解壓:sc
tar -zxvf scala-2.11.7.tgz
3)配置環境變量,在/etc/profile中添加下面的內容。
export SCALA_HOME= /home/hadoop/scala
export PATH=${SCALA_HOME}/bin:$PATH
4)使profile文件更新生效。
./etc/profilejava
scala 查看
3.配置SSH免密碼登陸
ssh-keygen-trsa
2)打印日誌執行如下命令。
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
/*回車,設置默認路徑*/
Enter passphrase (empty for no passphrase):
/*回車,設置空密碼*/
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
若是是root用戶,則在/root/.ssh/目錄下生成一個私鑰id_rsa和一個公鑰id_rsa.pub。
把Master上的id_rsa.pub文件追加到Worker的authorized_keys內,以
172.20.14.144(Worker)節點爲例。
3)複製Master的id_rsa.pub文件。
scp id_rsa.pub root@172.20.14.144:/home
/*可以使用pssh對所有節點分發*/
4)登陸172.20.14.144(Worker節點),執行如下命令。
cat /home/id_rsa.pub >> /root/.ssh/authorized_keys
/*可以使用pssh對所有節點分發*/
其餘的Worker執行一樣的操做。
注意:配置完畢,若是Master仍然不能訪問Worker,能夠修改Worker的
authorized_keys文件的權限,命令爲chmod 600 authorized_keys。
4.安裝Hadoop
下面講解Hadoop的安裝過程和步驟。
(1)下載hadoop-2.2.0
1)選取一個Hadoop鏡像網址,下載Hadoop(官網地址爲
http://hadoop.apache.org/)。
$ wgethttp://www.trieuvan.com/apache/hadoop/common/
hadoop-2.2.0/hadoop-2.2.0.tar.gz
2)解壓tar包。
$ sudo tar-vxzf hadoop-2.2.0.tar.gz -C /usr/local
$ cd /usr/local
$ sudo mv hadoop-2.2.0 hadoop
$ sudo chown -R hduser:hadoop hadoop
(2)配置Hadoop環境變量
1)編輯profile文件。
vi /etc/profile
2)在profile文件中增長如下內容。
export JAVA_HOME=/usr/lib/jvm/jdk/
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
經過如上配置就可讓系統找到JDK和Hadoop的安裝路徑。
(3)編輯配置文件
1)進入Hadoop所在目錄/usr/local/hadoop/etc/hadoop。
2)配置hadoop-env.sh文件。
export JAVA_HOME=/usr/lib/jvm/jdk/
3)配置core-site.xml文件。
<configuration>
/*這裏的值指的是默認的HDFS路徑*/
<property>
<name>fs.defaultFS</name>
<value>hdfs://Master:9000</value>
</property>
/*緩衝區大小:io.file.buffer.size默認是4KB*/
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
/*臨時文件夾路徑*/
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/tmp</value>
<description>Abase for other
temporary directories. </description>
</property>
<property>
<name>hadoop.proxyuser.hduser.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hduser.groups</name>
<value>*</value>
</property>
</configuration>
4)配置yarn-site.xml文件。
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
/*resourcemanager的地址*/
<property>
<name>yarn.resourcemanager.address</name>
<value>Master:8032</value>
</property>
/*調度器的端口*/
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value> Master1:8030</value>
</property>
/*resource-tracker端口*/
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value> Master:8031</value>
</property>
/*resourcemanager管理器端口*/
<property>
<name>yarn.resourcemanager.admin.address</name>
<value> Master:8033</value>
</property>
/* ResourceManager 的 Web 端口,監控 job 的資源調度*/
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value> Master:8088</value>
</property>
</configuration>
5)配置mapred-site.xml文件,加入以下內容。
<configuration>
/*hadoop對map-reduce運行框架一共提供了3種實現,在mapred-site.xml中經過"mapreduce.framework.name"這個屬性來設置
爲"classic"、 "yarn"或者"local"*/
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
/*MapReduce JobHistory Server地址*/
<property>
<name>mapreduce.jobhistory.address</name>
<value>Master:10020</value>
</property>
/*MapReduce JobHistory Server Web UI地址*/
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>Master:19888</value>
</property>
</configuration>
(4)建立namenode和datanode目錄,並配置其相應路徑
1)建立namenode和datanode目錄,執行如下命令。
$ mkdir /hdfs/namenode
$ mkdir /hdfs/datanode
2)執行命令後,再次回到目錄/usr/local/hadoop/etc/hadoop,配置hdfs-site.xml文
件,在文件中添加以下內容。
<configuration>
/*配置主節點名和端口號*/
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Master:9001</value>
</property>
/*配置從節點名和端口號*/
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/hdfs/namenode</value>
</property>
/*配置datanode的數據存儲目錄*/
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/hdfs/datanode</value>
</property>
/*配置副本數*/
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
/*將dfs.webhdfs.enabled屬性設置爲true,不然就不能使用webhdfs的LISTSTATUS、 LISTFILESTATUS等須要列出文件、 文件夾狀態的命
令,由於這些信息都是由namenode保存的*/
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
(5)配置Master和Slave文件
1)Master文件負責配置主節點的主機名。 例如,主節點名爲Master,則須要在Master
文16件添加如下內容。
Master /*Master爲主節點主機名*/
2)配置Slaves文件添加從節點主機名,這樣主節點就能夠經過配置文件找到從節點,
和從節點進行通訊。 例如,以Slave1~Slave5爲從節點的主機名,就須要在Slaves文件中添
加以下信息。
/Slave*爲從節點主機名*/
Slave1
Slave2
Slave3
Slave4
Slave5
(6)將Hadoop的全部文件經過pssh分發到各個節點
執行以下命令。
./pssh -h hosts.txt -r /hadoop /
(7)格式化Namenode(在Hadoop根目錄下)
./bin/hadoop namenode -format
(8)啓動Hadoop
./sbin/start-all.sh
(9)查看是否配置和啓動成功
若是在x86機器上運行,則經過jps命令,查看相應的JVM進程
2584 DataNode
2971 ResourceManager
3462 Jps
3179 NodeManager
2369 NameNode
2841 SecondaryNameNode
注意,因爲在IBM JVM中沒有jps命令,因此須要用戶按照下面命令逐個查看。
ps-aux|grep *DataNode* /*查看DataNode進程*/
5.安裝Spark
進入官網下載對應Hadoop版本的Spark程序包(見圖2-1),官網地址爲
http://spark.apache.org/downloads.html。
圖2-1 Spark下載官網
截止到筆者進行本書寫做之時,Spark已經更新到1.0版本。
以Spark1.0版本爲例,介紹Spark的安裝。
1)下載spark-1.0.0-bin-hadoop2.tgz。
2)解壓tar-xzvf spark-1.0.0-bin-hadoop2.tgz。
3)配置conf/spark-env.sh文件
①用戶能夠配置基本的參數,其餘更復雜的參數請見官網的配置(Configuration)頁
面,Spark配置(Configuration)地址爲:
http://spark.apache.org/docs/latest/configuration.html。
②編輯conf/spark-env.sh文件,加入下面的配置參數。
export SPARK_WORKER_MEMORY=7g
export SCALA_HOME=/home/hadoop/scalanode
export JAVA_HOME=/usr/jdk1.7.0_25linux
export SPARK_MASTER=172.16.2.29web
export SPARK_LOCAL_IP=172.16.2.29 apache
export HADOOP_HOME=/home/hadoop/hadoop 緩存
export SPARK_HOME=/home/hadoop/sparkbash
export SPARK_LIBARY_PATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$HADOOP_HOME/lib/native oracle
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop app
參數SPARK_WORKER_MEMORY決定在每個Worker節點上可用的最大內存,增長這個
數值能夠在內存中緩存更多數據,可是必定要給Slave的操做系統和其餘服務預留足夠的內
存。
須要配置SPARK_MASTER_IP和MASTER,不然會形成Slave沒法註冊主機錯誤。
4)配置slaves文件。
編輯conf/slaves文件,以5個Worker節點爲例,將節點的主機名加入slaves文件中。
Slave1
Slave2
Slave3
Slave4
Slave5
6.啓動集羣 (1)Spark啓動與關閉 1)在Spark根目錄啓動Spark。 ./sbin/start-all.sh 2)關閉Spark。 ./sbin/stop-all.sh (2)Hadoop的啓動與關閉 1)在Hadoop根目錄啓動Hadoop。 ./sbin/start-all.sh 2)關閉Hadoop。 ./sbin/stop-all.sh (3)檢測是否安裝成功 1)正常狀態下的Master節點以下。 -bash-4.1# jps 23526 Jps 2127 Master 7396 NameNode 7594 SecondaryNameNode 7681 ResourceManager 2)利用ssh登陸