hadoop-2.2.0+spark1.1.0安裝過程

jopen 10年前發布 | 52K 次閱讀 Hadoop Spark 分布式/云計算/大數據

hadoop-2.2.0+spark1.1.0安裝過程

首先介紹一下整個過程中需要用到的一些軟件

虛擬機vmwareworkstation 10

Linux版本 CentOS 6.4

Jdk jdk-7u21-linux-i586.tar.gz

終端SecureCRT

Hadoop2.2.0

Spark1.1.0

scala2.10.4

 

本人是采用在32位的windowns下安裝虛擬機,在虛擬機中建立節點部署hadoop和spark的,spark比較耗內存,所以需要較大內存。

整體設計:一臺namenode,namenode同時當datanode,另外2臺datanode,如果物理機是linux系統,可以拿物理機當客戶端,spark集群的時候,通過客戶端去調用。這邊我選擇再多創建一個虛擬機當客戶端。

10.136.7.171

namenode

10.136.7.172

datanode1

10.136.7.173

datanode2

10.136.7.174

customer

 

 

 

 

 

 

整體介紹一下整個流程:

 

新建虛擬機—>網絡設置—>關閉防火墻及其他服務—>設置成文本啟動方式—> 修改配置文件—>修改hosts—>安裝jdk—>安裝scala—>環境變量設置-->安裝hadoop—>修改 hadoop的配置文件(core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml, hadoop-env.sh)-->復制整個虛擬機文件—>修改復制后的虛擬機文件—>ssh無密碼登錄設置--> hadoop集群的啟動—>啟動yarn—>hadoop源碼編譯--> spark安裝—>修改配置文件(slaves,spark-env.sh)-->拷貝spark到各個節點—>spark集群啟動 -- >Spark Standalone HA 部署—>spark工具查看

 

 

具體操作:

 

在vm中新建虛擬機,選擇linux類型,3G內存,動態分配硬盤。網絡設置,選擇橋接網卡。

安裝好CentOS6.4之后,首先是進行網絡設置,IPV4setting中選擇manual,設置成和物理機在同一個網段上,測試能否上網。

 

進入終端,關閉防火墻和一些其他服務。

chkconfig iptables off

chkconfig ip6tables off

chkconfig postfix off

chkconfig bluetooth off

chkconfig --list

 

檢查sshd  是否為off off on on on on off

啟動時設置成文本方式  

vi /etc/inittab

移動到最后,5改成3  5是以窗口方式啟動3是以文本方式啟動

重啟虛擬機shutdown -h  now

 

新建一個目錄,之后將軟件安裝在這個目錄下(也可自行建立其他目錄)

mkdir -p  /app/hadoop

 

一些文件句柄的設置,為以后做準備,也可跳過此步驟

vi  /etc/security/limits.conf

插入最后

hadoop - nofile 32768
hadoop soft/hard nproc 32000

 

vi /etc/pam.d/login

插入最后

sessionrequired pam_limits.so

 

vi/etc/ssh/sshd_config

打開三個開關

 

vi/etc/hosts

在最上面增加

192.168.1.171namenode

192.168.1.172datanode1

192.168.1.173datanode2

 

軟件安裝

安裝java

cd 進入安裝java的目錄(這邊通過secureCRT將一些需要安裝的軟件傳到虛擬機,也可在虛擬機中自行下載)

tar-zxf  /app/software/jdk-7u21-linux-i586.tar.gz

同時記住java安裝的目錄。

 

安裝scala

進入安裝目錄

tar-zxf /scala

為方便以后輸命令可改目錄名  mv scala-2.10.4 scala2104

修改用戶權限 chown -R root:root scala2104/

 

 

環境變量的設置

vi/etc/profile

加在最后

exportJAVA_HOME=/usr/lib/java/jdk1.7.0_21  
export JRE_HOME=/usr/lib/java/jdk1.7.0_21/jre
export SCALA_HOME=/app/scala2104
export HADOOP_COMMON_HOME=/app/hadoop/hadoop220
export HADOOP_CONF_DIR=/app/hadoop/hadoop220/etc/hadoop
export YARN_CONF_DIR=/app/hadoop/hadoop220/etc/hadoop
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
exportPATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:${SCALA_HOME}/bin:${HADOOP_COMMON_HOME}/bin:${HADOOP_COMMON_HOME}/sbin:$PATH

刷新更改的環境變量配置 source /etc/profile

測試java是否安裝正確 java -version

測試scala是否安裝正確 scala -version

 

安裝hadoop-2.2.0

tarzxf /app/software/hadoop-2.2.0.tar.gz

mvhadoop-2.2.0 hadoop220

 

進入hadoop配置文件目錄,進行修改

cdhadoop220/etc/hadoop/

vi slaves

去掉localhost

加上 namenode

datanode1

datanode2

 

vicore-site.xml

 

<configuration>中間加

<property>
 <name>fs.defaultFS</name>
 <value>hdfs://namenode:8000</value>
</property>

 

vihdfs-site.xml

 <property>
        <name>dfs.namenode.name.dir</name>
       <value>file:///app/hadoop/hadoop220/mydata/name</value>
  </property>
    <property>
       <name>dfs.datanode.data.dir</name>
      <value>file:///app/hadoop/hadoop220/mydata/data</value> 
    </property>

<property>
       <name>dfs.replication</name>
       <value>1</value>
    </property>

 

vi mapred-site.xml

<configuration>
<property>
     <name>mapreduce.framework.name</name>
     <value>yarn</value>
</property>

</configuration>

 

vi yarn-site.xml

 

<property>
   <name>yarn.resourcemanager.hostname</name>
   <value>namenode</value>
</property>                    
<property>
   <name>yarn.resourcemanager.address</name>
   <value>${yarn.resourcemanager.hostname}:8032</value>
</property>
<property>
   <name>yarn.resourcemanager.scheduler.address</name>
   <value>${yarn.resourcemanager.hostname}:8030</value>
</property>
<property>
   <name>yarn.resourcemanager.webapp.address</name>
   <value>${yarn.resourcemanager.hostname}:8088</value>
</property>
<property>
   <name>yarn.resourcemanager.webapp.https.address</name>
   <value>${yarn.resourcemanager.hostname}:8090</value>
</property>
<property>
  <name>yarn.resourcemanager.resource-tracker.address</name>
   <value>${yarn.resourcemanager.hostname}:8031</value>
</property>
<property>
   <name>yarn.resourcemanager.admin.address</name>
   <value>${yarn.resourcemanager.hostname}:8033</value>
</property>
<property>
   <name>yarn.nodemanager.aux-services</name>
   <value>mapreduce_shuffle</value>
</property>                 

vi hadoop-env.sh

JAVA_HOME=/usr/lib/java/jdk1.7.0_21

重啟虛擬機

 

記得關掉vm之后再進行復制虛擬機namenode,否則打開之后會報錯。復制整個文件夾,對文件夾進行重命名。之后打開vm,選擇打開文件,選擇復制之后的文件,修改虛擬機的名字,啟動虛擬機,首次啟動會有一個選項,選擇“我已復制虛擬機”

 

對復制的各個虛擬機均進行一下操作:

 

啟動復制的虛擬機

修改網卡的配置文件

vi /etc/udev/rules.d/70-persistent-net.rules

里面有兩張網卡,去掉前一個網卡,同時修改name 為eth0 ,同時記住mac地址

 

vi /etc/sysconfig/network-scripts/ifcfg-eth0

修改里面的HWADDR地址,改為剛才記住的。ip地址改為10.136.7.172

vi /etc/sysconfig/network

hostname改為datanode

關閉虛擬機

 

修改第三臺

重復上述過程。

 

三臺都要

修改用戶權限 

cd/app

chown-R hadoop:hadoop hadoop

 

SSH無密碼登錄

每個節點

su -hadoop

生成公鑰 ssh-keygen-t rsa

cd~/.ssh

ls-lsa

公鑰三合一,在namenode上運行

ssh 機器名 cat/home/hadoop/.ssh/id_rsa.pub>>authorized_keys 合成公鑰

ssh namenode cat/home/hadoop/.ssh/id_rsa.pub>>authorized_keys

sshdatanode1 cat /home/hadoop/.ssh/id_rsa.pub>>authorized_keys

sshdatanode2 cat /home/hadoop/.ssh/id_rsa.pub>>authorized_keys

ls-lsa

修改authorized_keys文件屬性為600 ,并發放給各節點

chmod600 authorized_keys

ls-lsa

scp authorized_keyshadoop@datanode1:/home/hadoop/.ssh/

scp authorized_keyshadoop@datanode2:/home/hadoop/.ssh/

 

scp known_hostshadoop@datanode1:/home/hadoop/.ssh/

scp known_hostshadoop@datanode2:/home/hadoop/.ssh/

 

同時在三個節點上進行測試無密碼登錄

ssh namenodedate

ssh datanode1date

ssh datanode2date

 

hadoop集群的啟動

 

cd/app/hadoop

cdhadoop220/

進行格式化

//bin/hdfsnamenode -format

hadoop namenode-format

 

啟動hdfs

//sbin/start-dfs.sh

start-dfs.sh

注意查看是否啟動了四個,一個namenode 三個datanode

測試hdfs

bin/hdfsdfs -ls /

bin/hdfsdfs -mkdir -p /dataguru/test

bin/hdfsdfs -ls /dataguru

bin/hdfsdfs -ls /dataguru/test

ls -lsa

上傳一個文件

bin/hdfsdfs -put LICENSE.txt /dataguru/test/

查看bin/hdfs dfs -ls /dataguru/test

 

啟動yarn

 

sbin/start-yarn.sh

注意查看是否啟動了四個,一個namenode 三個datanode

jps

查看是否都已啟動

 

同時在其他節點也查看

jps

 

url訪問

 

namenode:50070

 

yarn:

namenode:8088

 

關閉hadoop集群

su -hadoop

cd/app/hadoop/hadoop220

sbin/stop-all.sh

 

 

hadoop源碼編譯

32位的不需再進行編譯了,64位的需要進行編譯,首次編譯比較耗時間,也可下載編譯過的軟件。

可跳過該編譯部分

在namenode上進行編譯

回到root身份 

cd hadoop

解壓hadoop-2.2.0

安裝編譯工具

yum -y install lzo-devel zlib-devel gccautoconf automake libtool

解壓Ant 1.9.2
解壓Maven 3.0.5
解壓ProtocolBuffer 2.5.0 (編譯安裝)
解壓findbugs 2.0.2

解壓CMake 2.8.6 (編譯安裝)

 

cd  ProtocolBuffer 2.5.0 目錄

./configure

make

make check

make install

cd ..

 

cd CMake 2.8.6目錄

./bootstrap:make:make install

 

其他編譯軟件環境變量的修改

cd ..

vi /etc/profile

 

 

source /etc/profile

驗證版本

ant -version

 

源碼的bug修改(補丁)

 

cd /app/hadoop/hadoop220_src

修改該文件,增加一些內容

 

編譯

cd hadoop220_src

mvn clean package -DskipTests-Pdist,native,docs -Dtar

 

 

spark安裝

spark-1.0.0/project/SparkBuild.scala SBT依賴包,配置參數包查看

 

spark-1.0.0/pom.xml Maven配置參數包查看

 

cd 進入安裝的目錄

tarzxf /app/software/spark-1.0.0-bin-2.2.0.tgz

 

mv spark-1.0.0-bin-2.2.0.tgz spark100

cdspark100/conf

節點配置

vislaves

 

去掉localhost

加入節點

namenode

datanode1

datanode2

運行環境

cpspark-env.sh.template spark-env.sh

修改該文件

vi spark-env.sh

加最后

exportSPARK_MASTER_IP=namenode
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=1
export SPARK_WORKER_INSTANCES=1

exportSPARK_WORKER_MEMORY=2g

 

拷貝到各個節點

 

cd 退到hadoop目錄下

(拷貝時候特別注意,直接從pdf或者課件上拷貝時候很容易出現特殊符號,比如問號,報錯是需要認真看清楚)

scp -rspark100 hadoop@datanode1:/app/hadoop/

scp -rspark100 hadoop@datanode2:/app/hadoop/

 

啟動集群

cdspark100

sbin/start-all.sh

 

測試

http://10.136.7.171:8080/

 

客戶端安裝

scp -r hadoop@namenode:/app/hadoop/spark100 .

 

客戶端訪問集群

 

bin/spark-shell--master spark://namenode:7077

 

關閉集群

spark100目錄下

sbin/stop-all.sh

 

SparkStandalone HA 部署

 

基于文件系統的HA

cdconf

spark-env.sh里對SPARK_DAEMON_JAVA_OPTS 設置

vi spark-env.sh

在最后增加一行

exportSPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=FILESYSTEM-Dspark.deploy.recoveryDirectory=/app/hadoop/spark100/recovery"

 

將該文件分到各個節點

scp spark-env.shhadoop@DataNode1:/app/hadoop/spark100/conf/

scp spark-env.shhadoop@DataNode2:/app/hadoop/spark100/conf/

測試

cd ..

sbin/start-all.sh

dfs啟動 

cd/app/hadoop/hadoop220

sbin/start-dfs.sh

 

客戶端

bin/spark-shell--master spark://namenode:7077

 

 

Spark 工具

(1)spark-shell

(2)spark-submit

 

參數說明可查看

bin/spark-shell --help

bin/spark-submit--help

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!