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

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檔案