Apache Hadoop是一個在大型集群的商品硬體上運行的應用程式的框架。Hadoop框架透明的提供了應用程式的可靠性和數據訪問的方法。Hadoop實現了Map/Reduce計算模型,每個應用程式被切分成許多碎片化的工作段,每個段可在任何急群眾的節點(重覆)執行。此外,它還提供了用以在計算節點中存...
Hadoop說明
對於hadoop,apache官方wiki給出的說明為
- Apache Hadoop is a framework for running applications on large cluster built of commodity hardware. The Hadoop framework transparently provides applications both reliability and data motion. Hadoop implements a computational paradigm named Map/Reduce, where the application is divided into many small fragments of work, each of which may be executed or re-executed on any node in the cluster. In addition, it provides a distributed file system (HDFS) that stores data on the compute nodes, providing very high aggregate bandwidth across the cluster. Both MapReduce and the Hadoop Distributed File System are designed so that node failures are automatically handled by the framework.
大意為:
Apache Hadoop是一個在大型集群的商品硬體上運行的應用程式的框架。Hadoop框架透明的提供了應用程式的可靠性和數據訪問的方法。Hadoop實現了Map/Reduce計算模型,每個應用程式被切分成許多碎片化的工作段,每個段可在任何急群眾的節點(重覆)執行。此外,它還提供了用以在計算節點中存儲數據的分散式文件系統HDFS,HDFS提供了節點間的高度聚合能力。MapReduce和Hadoop分散式文件系統都設計成擁有節點故障時自動處理的能力。
先決條件
支持平臺
- GNU/Linux是產品開發和運行的平臺。 Hadoop已在有2000個節點的GNU/Linux主機組成的集群系統上得到驗證。
- Win32平臺是作為開發平臺支持的。由於分散式操作尚未在Win32平臺上充分測試,所以還不作為一個生產平臺被支持。
所需軟體
Linux和Windows所需軟體包括:
- JavaTM1.5.x,必須安裝,建議選擇Sun公司發行的Java版本。
- ssh 必須安裝並且保證 sshd一直運行,以便用Hadoop 腳本管理遠端Hadoop守護進程
Windows下的附加軟體需求
Cygwin - 提供上述軟體之外的shell支持。
安裝軟體
如果你的集群尚未安裝所需軟體,你得首先安裝它們。
以Ubuntu Linux為例:
- $ sudo apt-get install ssh
- $ sudo apt-get install rsync
linux上hadoop安裝
hadoop生產環境是linux,這裡我在虛擬機上進行軟體的安裝,系統為centos7-64bit
ssh設置及主機名修改
修改主機名
- 執行主機名修改(ip要與實際對應上)
修改192.168.88.128對應機器的hostname,在該ip對應的主機執行命令
- hostname master
相應的,對其他兩台機器分別執行
- hostname slave1
- hostname slave2
同時依次修改機器上的etc/host文件
- 192.168.88.128 master
- 192.168.88.129 slave1
- 192.168.88.130 slave2
- 開啟ssh服務
安裝openssh-server:$ sudo apt-get install openssh-server
3. 建立ssh無密碼登錄
- 在NameNode 上實現無密碼登錄本機:
- ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
直接回車,完成後會在~/.ssh/生成兩個文件:id_dsa 和id_dsa.pub。這兩個是成對
出現,類似鑰匙和鎖。再把id_dsa.pub 追加到授權key 裡面(當前並沒有authorized_keys
文件):$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys。完成後可以實現無密碼
登錄本機:$ ssh localhost。
- 實現NameNode 無密碼登錄其他DataNode:把NameNode 上的id_dsa.pub
文件追加到dataNode 的authorized_keys
內( 以
192.168.88.128 節點為例):
- 拷貝NameNode 的id_dsa.pub 文件:
- scp ~/.ssh/id_dsa.pub [email protected]:/root
- 登錄192.168.88.129
- cat /root/id_dsa.pub >> ~/.ssh/authorized_keys
jdk安裝
- 首先從oracle官網下載jdk6,下載地址為http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html#jdk-6-oth-JPR,我下載的是.bin尾碼的文件
- 第二步,修改.bin文件的可執行許可權,這裡我放在了桌面上
- chmod 755 *.bin
- 解壓縮bin文件
- ./*.bin
- 對解壓的文件重命名(這不也可省略,主要是path等設置的時候簡明)
- mv jdk* jdk
設置path路徑,首先打開vi編輯器
- vi /etc/profile
在/etc/profile末尾加上(按insert按鍵)
- export JAVA_HOME=/root/Desktop/jdk
- exportCLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
- export PATH=$PATH:$JAVA_HOME/bin
最後保存並關閉立即應用更改
- source /etc/profile
安裝hadoop(hadoop版本0.20.2)
- 下載hadoop-0.20.2.tar.gz文件(免積分下載地址會稍後給出)
- 解壓
- tar -zxvf hadoop-0.20.2.tar.gz
重命名
- mv hadoop-0.20.2 hadoop
- 設置hadoop運行環境,進入重命名的hadoop目錄下的conf目錄並編輯hadoop-env.sh
- cd hadoop/conf
- 找到#
export JAVA_HOME=/usr/lib/j2sdk1.5-sun
設置JAVA_HOME
- 找到#
export JAVA_HOME=/usr/lib/j2sdk1.5-sun
- export JAVA_HOME=/root/Desktop/jdk
- 配置conf/masters 和conf/slaves 文件:(只在namenode 上配置)
- masters
- 192.168.88.128
- slaves
- 192.168.88.129
- 192.168.88.130
- 配置core-site、mapred-site、hdfs-site三個xml文件,三台機器上配置相同
core-site.xml
- <configuration>
- <!--- global properties -->
- <property>
- <name>hadoop.tmp.dir</name>
- <value>/home/hexianghui/tmp</value>
- <description>A base for other temporary directories.</description>
- </property>
- <!-- file system properties -->
- <property>
- <name>fs.default.name</name>
- <value>hdfs://192.168.88.128:9000</value>
- </property>
- </configuration>
hdfs-site.xml:( replication 預設為3,如果不修改,datanode 少於三台就會報錯,修改為與系統適應的個數)
- <configuration>
- <property>
- <name>dfs.replication</name>
- <value>1</value>
- </property>
- </configuration>
mapred-site.xml
- <configuration>
- <property>
- <name>mapred.job.tracker</name>
- <value>192.168.88.128:9001</value>
- </property>
- </configuration>
最後不要忘記修改path,將hadoop加入到path路徑,在/etc/profile文件最後加入
- export HADOOP_HOME=/root/Desktop/hadoop
- export PATH=$PATH:$HADOOP_HOME/bin
格式化hadoop文件系統並啟動
- #格式化hadoop文件系統
- hadoop namenode -format
- #啟動hadoop
- start-all.sh
- #最後用jps查看啟動的進程個數
- jps
在Namenode節點上結果如下
- 12091 JobTracker
- 12026 SecondaryNameNode
- 11875 NameNode
- 12171 Jps
DataNode結果如下
- 7274 Jps
- 7049 DataNode
- 7159 TaskTracker
至此,hadoop分散式文件系統安裝完畢。
【最新文檔更新請加入尚學堂www.sxt.cn】【專業大數據培訓機構,真正零首付入學www.bjsxt.com】