hadoop是一個分佈式系統基礎架構,由Apache基金會開發。用戶能夠在不瞭解分佈式底層細節的狀況下,開發分佈式程序。充分利用集羣的威力高速運算和存儲。Hadoop實現了一個分佈式文件系統(Hadoop Distributed File System),簡稱HDFS。HDFS有着高容錯性的特色,而且設計用來部署在低廉的(low-cost)硬件上。並且它提供高傳輸率(high throughput)來訪問應用程序的數據,適合那些有着超大數據集(large data set)的應用程序。HDFS放寬了(relax)POSIX的要求(requirements)這樣能夠流的形式訪問(streaming access)文件系統中的數據。
我用8塊A10搭建了一個集羣,通過測試性能仍是很不錯的。去官網看hadoop,這裏還有一些高清的大圖。打算在上面作一些應用:HDFS寫讀文件,mapreduce並行計算,hadoop編程.....感興趣的朋友能夠本身搭建一個簡單的集羣,單機版,雙核版均可以,下面有些資源:php
1. Hadoop-CB定製 鏡像文件。這個適用於CB-A10,集成了集羣搭建須要的JDK和Openssh,其中JDK的路徑爲exportJAVA_HOME=/lib/jdk。
2. Hadoop軟件下載 hadoop 0.20.203 , 集羣搭建教程 ,我見過集羣搭建詳細的教程,絕對要分享。html
結合CB的具體狀況,搭建集羣說明以下:
1.先配置 master,其餘的節點大同小異。就那麼幾個要求:JDK環境、任意slave 和master 無密碼相互登陸、 hadoop參數配置。
2.徹底能夠在本身電腦上完成每一塊CB的配置,用ssh登陸 linaro 用戶,我是在本身熟悉的ubuntu12.04上用vim 配置hadoop. 也可爲CB 配置輸入輸出,直接配置CB。能夠更新一下CB的vi 到 vim ,我的習慣用vim。
3.建立用戶:
$sudo addgroup hadoop
$sudo adduser -ingroup hadoop hadoop
$sudo vim ./etc/sudoers :
hadoop ALL=(ALL:ALL) ALL
4.修改Hostname&添加hosts:
sudo vim ./etc/hosts
192.168.1.40 master
192.168.1.41 slave1
192.168.1.42 slave2
192.168.1.43 slave3
192.168.1.44 slave4
192.168.1.45 slave5
192.168.1.46 slave6
192.168.1.47 slave7
sudo vim ./etc/hostname
cubieboard => master 或 slave
5.靜態IP設置
sudo vim ./etc/network/interfaces //資源位置
#auto lo
# iface lo inet loopback
#iface lo eth0 dhcp // 讓原來配置失效
auto eth0
iface eth0 inet static
address 192.168.1.40
gateway 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255 //
sudo vim ./etc/resolvconf/resolv.conf.d/base
nameserver 192.168.1.1 //網關
sudo /etc/init.d/networking restart //重啓network
6..SSH 雙方無密碼登陸:
教程講的很詳細,概括一下: A <=>B : A&B 的authorized_keys 要同時有雙方的 id_rsa.pub
A:
ssh-keygen –t rsa –P '' // 得到密鑰
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys //追加
chmod 600 ~/.ssh/authorized_keys
ssh localhost //驗證
scp ~/.ssh/id_rsa.pub hadoop@192.168.1.40:~/
B:
mkdir ~/.ssh
chmod 700 ~/.ssh
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
rm –r ~/id_rsa.pub
7.JDK 路徑: #export JAVA_HOME=/lib/jdk ,記得把「#」去掉。
8.參數配置:
1. core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
2.hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop/datalog1,/usr/local/hadoop/datalog2</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop/data1,/usr/local/hadoop/data2</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
3.mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
</property>
</configuration>
9.基本命令:
在hadoop 根目錄:
bin/hadoop namenode -format //格式化
bin/hadoop dfsadmin -report //文件報告
bin/start-all.sh // 開啓全部進程
bin/stop-all.sh // 結束全部進程
./bin/hadoop jar hadoop-examples-0.20.203.0.jar pi 100 100 //計算pi
10.要是節點多的話,可採用shell腳本減小工做量,但願能夠看到shell腳本教程。後續會在集羣上作一些應用,再更新吧。
原文做者:aaron
原文連接:http://forum.cubietech.com/forum.php?mod=viewthread&tid=852&highlight=hadoopnode