【Spark】---- 在Linux集羣上安裝和配置Spark

1 安裝JDK
 
1) 進入JDK官網
2) 下載JDK安裝包
3)配置環境變量,在/etc/profile增長如下代碼
JAVA_HOME=/home/hadoop/jdk1.6.0_38
PATH=$JAVA_HOME/bin:$PATH
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/profile
 
2 安裝Scala
Scala 官網提供各個版本的Scala,用戶須要根據Spark官方規定的Scala版本進行下載和安裝。Scala官網地址爲http://www.scala-lang.org/
1) 下載Scala
2)在目錄下解壓
tar -zxvf scala-2.10.4.tgz
 
3)配置環境變量,在/etc/profile中添加下面的內容
export SCALA__HOME=/home/hadoop/scala-2.10.4/scala-2.10.4
export PATH=${SCALA_HOME}/bin:$PATH
 
4)使用profile文件更新生效
source /etc/profile
 
3 配置SSH免密碼登陸
在集羣管理和配置中有不少工具可使用。例如,能夠採用pssh等Linux工具在集羣中分發與複製文件,用戶也能夠本身書寫Shell、Python的腳步分發包。
Spark的Master節點向Worker節點命令須要經過ssh進行發送,用戶不但願Master每發送一次命令就輸入一次密碼,所以須要實現Master無密碼登錄到全部Worker。
Master做爲客戶端,要實現無密碼公鑰認證,鏈接服務端Worker。須要在Master上生成一個祕鑰對,包括一個公鑰和一個私鑰,而後將公鑰複製到Worker上。當Master經過ssh鏈接Worker
 
1)在Master節點上,執行如下命令
ssh-keygen-trsa
 
2)打印日誌執行如下命令
 
若是是root用戶,則在/root/.ssh/目錄下生成一個私鑰id_rsa和一個公鑰id_rsa.pub。
把Master上的id_rsa.pub文件追加到Worker的authorized_keys內。
3)複製Master的id_rsa.pub文件
scp id_rsa.pub root@172.20.14.144:/home
/*可以使用pssh對所有節點分發*/
 
4)登陸worker節點,執行如下命令
cat /home/id_rsa.pub >> /root/.ssh/authorized_keys
/*可以使用pssh對所有節點分發*/
 
注意:配置完畢,若是Master仍然不能訪問Worker,能夠修改Worker的authorized_keys文件的權限,命令爲 chmod 600 authorized_keys
 
4安裝Hadoop
(1)下載hadoop-2.2.0
 
 1)選取一個Hadoop鏡像網址,下載Hadoop
wget http://www.trieuvan.com/apache/hadoop/common/hadoop-2.2.0/hadoop-2.2.0.tar.gz
 
 2)解壓tar包
tar -vxzf hadoop-2.2.0.tar.gz -C /usr/local
cd /usr/local
mv hadoop-2.2.0 hadoop
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
 
(3)編輯配置文件
 
 1)進入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</value>
<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:8030</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>
/*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)執行命令後,再次回到目錄,配置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保存的*/
<proeprty>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
 
 
(5)配置Master和Slave文件
 1)Master文件負責配置主節點的主機名
Master /*Master爲主節點主機名*/
 
 
 2)配置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)查看是否配置和啓動成功
jps
DataNode
ResourceManager
Jps
NodeManager
NameNode
SecondaryNameNode
 
ps-aux|grep *DataNode* /*查看DataNode進程*/
 
5 安裝Spark
 
1)下載spark
2)解壓
3)配置
 
編輯conf/Spark-env.sh文件,加入下面的配置參數
export SCALA_HOME=/paht/to/scala-2.10.4
export SPARK_WORKER_MEMORY=7g
export SPARK_MASTER_IP=172.16.0.140
export MASTER=spark://172.16.0.140:7077
 
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
  2)關閉Hadoop
 
(3)檢測是否安裝成功
 1)正常狀態下的Master節點以下。
 2)利用ssh登陸Worker節點
相關文章
相關標籤/搜索