1. 程式人生 > >Hadoop 分散式配置及Spark on yarn部署

Hadoop 分散式配置及Spark on yarn部署

配置Hadoop

Hadoop的叢集部署模式需要修改Hadoop資料夾中/etc/hadoop/中的配置檔案,更多設定項可見官方說明,這裡只設置了常見的設定項:hadoop-env.shyarn-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves。

  1. 在hadoop-env.sh中配置JAVA_HOME
    # The java implementation to use.
    export JAVA_HOME=/usr/local/jdk1.7
  2. yarn-env.sh中配置JAVA_HOME
    # some Java parameters
    export JAVA_HOME
    =/usr/local/jdk1.7
  3. core-site.xml為全域性配置檔案,修改core-site.xml 複製程式碼
    <configuration>
    <property>
            <name>hadoop.tmp.dir</name>
            <value>file:/home/hadoop/tmp</value>
            <description>Abase for other temporary directories.</description
    > </property> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>dfs.http.address</name> <value>50070</value> </property> </configuration>
    複製程式碼
  4. hdfs-site.xml為HDFS的配置檔案,修改hdfs-site.xml 複製程式碼
    <configuration>
      <property>
        <name>dfs.namenode.secondary.http-address</name> 
        <value>master:50090</value>
      </property>
      <property>
        <name>dfs.replication</name>
        <value>2</value>
      </property>
      <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/hadoop/tmp/dfs/name</value>
      </property>
      <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/hadoop/tmp/dfs/data</value>
      </property>
      <property>
         <name>dfs.permissions</name>
         <value>false</value>
       </property>
    </configuration>
    複製程式碼
  5. mapred-site.xml為MapReduce的配置檔案,修改mapred-site.xml
    <configuration>
      <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
      </property>
    </configuration>
  6. yarn-site.xml為YARN資源管理器的配置檔案,修改yarn-site.xml 複製程式碼
    <configuration>
      <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
      </property>
      <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
      </property>
    </configuration>
    複製程式碼
  7. slaves檔案配置從節點,配置slaves
    slave1
    slave2

將配置好的Hadoop資料夾分發給slaves

scp -r /opt/hadoop-2.6.0 [email protected]:/opt/
scp -r /opt/hadoop-2.6.0 [email protected]:/opt/

驗證Hadoop是否安裝成功

啟動Hadoop,只需要在master進行下列操作即可

cd /opt/hadoop-2.6.0                           #進入Hadoop目錄
sudo bin/hadoop namenode –format              #格式化namenode
sbin/start-dfs.sh                              #啟動HDFS
sbin/start-yarn.sh                             #啟動資源管理器

用jps檢視機器上的程序,是否包含以下的程序:

master上的程序:

11164 SecondaryNameNode
17405 Jps
10535 ResourceManager
10949 NameNode

slave上的程序:

2164 DataNode
6440 Jps
1979 NodeManager

進入Hadoop的Web管理頁面:http://master:50070/

image

注意:各個節點的時間一定要同步!!!!

六、Spark安裝

下載Spark

進入官方網站下載最新Spark,下載地址,這裡我下載的是spark-1.6.1-bin-hadoop2.6.tgz,能夠在Hadoop2.6及更高版本上執行。
下載後,進行解壓

sudo tar -zxvf spark-1.6.1-bin-hadoop2.6.tgz -C /opt/
sudo mv spark-1.6.1-bin-hadoop2.6/ spark-1.6.1 #重新命名檔案

配置Spark

cd /opt/spark-1.6.1/conf/
cp spark-env.sh.template spark-env.sh
sudo vi spark-env.sh

在Spark-env.sh檔案尾部新增以下配置:

export JAVA_HOME=/usr/local/jdk1.7   #Java環境變數
export SCALA_HOME=/usr/local/scala-2.10.6 #SCALA環境變數
export SPARK_WORKING_MEMORY=1g  #每一個worker節點上可用的最大記憶體
export SPARK_MASTER_IP=master   #驅動器節點IP
export HADOOP_HOME=/opt/hadoop  #Hadoop路徑
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop #Hadoop配置目錄

配置slave主機

$ cp slaves.template slaves
$ sudo vim slaves

新增slave主機

slave1
slave2

將配置好的Spark分發給所有的slave

scp -r /opt/spark-1.6.1 [email protected]:~/opt/

驗證Spark是否安裝成功

使用下面的命令,執行Spark
sbin/start-all.sh

用jps檢視機器上的程序,是否包含以下的程序:
master上的程序:
3f891092-d25b-4e26-8134-29a55e4f2084
slave上的程序:
a979c70b-90ad-411d-9ad5-3189a7a9acdf
進入Spark的Web管理頁面:http://master:8080
9f81e9e7-2a56-45dc-b061-2dc1ee7a34c2

執行簡單示例

當需要執行Spark終端,必須將Spark的bin目錄加入到系統路徑。
export SPARK_HOME=/opt/spark-1.6.1
export PATH=$PATH:${SPARK_HOM}/bin

新增Spark的bin目錄路徑後,執行

spark-shell

檢視是否出現歡迎介面,並可以執行scala指令碼

image

image