天天看點

hadoop spark 大資料叢集環境搭建(一)

大資料雲計算現在比較熱門,未來的一個發展方向,在此分享下技術,有不對的地方歡迎指出

1、軟體環境(會分享到網盤)

centos6.5

jdk1.7

hadoop2.4.1(這裡隻用到hdfs,namenode不走ha)

zookeeper3.4.5

spark1.3.0(直接從官網下載下傳已經編譯好的32bit)

scala 2.10.4

2、軟體安裝

軟體配置設定
主機名稱 安裝軟體 備注
pc-01 jdk、hadoop、zookeeper、scala、spark 主節點
pc-02 jdk、hadoop、zookeeper、scala、spark 從節點
pc-03 jdk、hadoop、zookeeper、scala、spark 從節點
2.1 JDK ( jdk-7u79-linux-i586.tar.gz 下載下傳後解壓到指定目錄,然後修改 /etc/profile環境變量,之後的環境變量配置參考這裡)
/etc/profile 增加 
export JAVA_HOME=/usr/local/cloud/java/jdk1.7.0_79 
export PATH=$JAVA_HOME/bin
重新整理配置 source /etc/profile 
驗證安裝成功 java -version (顯示正确版本号既是成功)
2.2 hadoop、zookeeper 安裝
2.2.1 配置SSH免登入(這部有必要配置,可以省去中間要輸入密碼的痛苦)
2.2.2 下載下傳安裝hadoop(hadoop-2.4.1.tar.gz 下載下傳後解壓到指定目錄,然後修改 /etc/profile環境變量),然後修改以下幾個配置檔案
第一個檔案:/hadoop-2.4.1/etc/hadoop/hadoop-env.sh
修改:export JAVA_HOME=/usr/local/cloud/java/jdk1.7.0_79 #這裡是你的JAVA_HOME目錄(which java 指令可以檢視)
第二個檔案:/hadoop-2.4.1/etc/hadoop/core-site.xml
增加:(備注:lz200,lz201.這些是主機名稱)
<configuration>

		<!-- 制定HDFS的老大(NameNode)的位址 -->
		<property>
			<name>fs.defaultFS</name>
			<value>hdfs://lz200:9000</value>
		</property>
		<!-- 指定hadoop運作時産生檔案的存儲目錄 -->
		<property>
			<name>hadoop.tmp.dir</name>
			<value>/usr/local/cloud/hadoop/hadoop-2.4.1/tmpDir</value>
        </property>
		<!-- 指定zookeeper位址 -->
		<property>
			<name>ha.zookeeper.quorum</name>
			<value>lz200:2181,lz201:2181,lz202:2181</value>
		</property>
</configuration>
           

第三個檔案:/hadoop-2.4.1/etc/hadoop/hdfs-site.xml

增加:

<configuration>
	<!-- 指定HDFS副本的數量 -->
	<property>
		<name>dfs.replication</name>
		<value>1</value>
        </property>
</configuration>
           

第四個檔案:/hadoop-2.4.1/etc/hadoop/yarn-site.xml

增加:

<configuration>

	<!-- 指定YARN的老大(ResourceManager)的位址 -->
	<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>lz200</value>
        </property>
	<!-- reducer擷取資料的方式 -->
        <property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
        </property>

</configuration>
           

第五個檔案:/hadoop-2.4.1/etc/hadoop/mapred-site.xml (mapred-site.xml.template 把這個檔案去掉template即可)

增加

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

第六個檔案:/hadoop-2.4.1/etc/hadoop/slaves(把localhost去掉)

增加你叢集其它的主機名(每個主機要換行)

pc-01
pc-02
2.2.3 格式化hdfs (在你的主節點機器上運作)
執行指令:hadf namenoade -format
2.2.4 安裝zookeeper( zookeeper-3.4.5.tar.gz 下載下傳後解壓到指定目錄) ,配置二個地方
配置 一:/zookeeper-3.4.5/conf/zoo.cfg(zoo_sample.cfg 把這個檔案_sample去掉即可)兩個地方
第一個地方:修改dataDir=/usr/local/cloud/zookeeper/zookeeper-3.4.5/dataDir #值是你自定義的目錄,裡面要放一個myid的檔案
第二個地方:增加以下内容(lz200是你的主從節點的名稱)
server.1=lz200:2888:3888
server.2=lz201:2888:3888
server.3=lz202:2888:3888
注意:以上server後面的數字和你主從節點的myid是一樣的,意思是機器lz200的/usr/local/cloud/zookeeper/zookeeper-3.4.5/dataDir目錄裡面有一個檔案叫myid,内容隻有“1” 和server後面的數字是一樣的
配置二:安照配置一增加myid檔案
2.2.5  格式化zk(在你的主節點機器上運作)
執行指令:hadf  zkfc -formatZK
2.3 測試hdfs、zk
2.3.1啟動zk,主從機器分别執行指令:/zookeeper-3.4.5/bin/zkServer.sh start
jps檢視會有程序:QuorumPeerMain
2.3.2 啟動hdfs,主節點機器執行指令:/hadoop-2.4.1/sbin/start-dfs.sh 
jps檢視,主節點機器會有程序:NameNode SecondaryNameNode
從節點機器會有程序:DataNode
2.3.3 測試上傳檔案到hdfs 執行指令:hadoop fs -put 本地檔案路徑 hdfs檔案路徑 
比如:hadoop fs -put /usr/local/aaa.txt /test 意思把aaa檔案上傳到hdfs的test目錄下
驗證是否成功:通過浏覽器檢視:http://主節點IP:50070/explorer.html#hdfs檔案路徑 
比如http://lz200:50070/explorer.html#/test 可以看到上傳的aaa.txt檔案