簡介
Hadoop是Apache軟件基金會旗下的一個開源分佈式計算平臺。以Hadoop分佈式文件系統HDFS(Hadoop Distributed Filesystem)和MapReduce(Google MapReduce的開源實現)爲核心的Hadoop爲用戶提供了系統底層細節透明的分佈式基礎架構。
對於Hadoop的集羣來說,能夠分紅兩大類角色:Master和Salve。一個HDFS集羣是由一個NameNode和若干個DataNode組成的。其中NameNode做爲主服務器,管理文件系統的命名空間和客戶端對文件系統的訪問操做;集羣中的DataNode管理存儲的數據。MapReduce框架是由一個單獨運行在主節點上的JobTracker和運行在每一個從節點的TaskTracker共同組成的。主節點負責調度構成一個做業的全部任 務,這些任務分佈在不一樣的從節點上。主節點監控它們的執行狀況,而且從新執行以前的失敗任務;從節點僅負責由主節點指派的任務。當一個Job被提交時,JobTracker接收到提交做業和配置信息以後,就會將配置信息等分發給從節點,同時調度任務並監控TaskTracker的執行。
從上面的介紹能夠看出,HDFS和MapReduce共同組成了Hadoop分佈式系統體系結構的核心。HDFS在集羣上實現分佈式文件系統,MapReduce在集羣上實現了分佈式計算和任務處理。HDFS在MapReduce任務處理過程當中提供了文件操做和存儲等支持,MapReduce在HDFS的基礎上實現了任務的分發、跟蹤、執行等工做,並收集結果,兩者相互做用,完成了Hadoop分佈式集羣的主要任務。html
安裝包:http://hadoop.apache.org/releases.html#Release+Notesjava
1:環境準備
3臺機器,系統自定
>1. 下載jdk包,配置環境變量 http://www.Oracle.com/technetwork/java/javase/index.html
>2. 配置虛擬環境
dns解析
vim /etc/resolv.conf
nameserver 223.5.5.5
主機路由
vim /etc/hosts
127.0.0.1 localhost localhost.localdomain
10.68.4.49 master
10.68.4.55 slave1
10.68.4.56 slave2
更改主機名
hostname master ###退出從新登陸 或者 [root@master ~]# 經過這個能夠看到主機名是否已經變成你須要的
####上述很重要,若是仍是localhost的,後續啓動端口時,會以127.0.0.1啓動,主從不能相互通訊
>3. 測試
互ping ping master;ping slave1 成功說明環境OKnode
2:ssh無祕鑰認證
Hadoop運行過程當中須要管理遠端Hadoop守護進程,在Hadoop啓動之後,NameNode是經過SSH(Secure Shell)來啓動和中止各個DataNode上的各類守護進程的。這就必須在節點之間執行指令的時候是不須要輸入密碼的形式,故咱們須要配置SSH運用無密碼公鑰認證的形式,這樣NameNode使用SSH無密碼登陸並啓動DataName進程,一樣原理,DataNode上也能使用SSH無密碼登陸到 NameNode。
注意:若是你的Linux沒有安裝SSH,請首先安裝SSH
Ubuntu下安裝ssh:sudo apt-get install openssh-server
Fedora下安裝ssh:yum install openssh-server
>1. 建立無密碼祕鑰對
ssh-keygen -t rsa
三回車便可
根據回車以後的內容能夠判斷在當前用戶的家目錄下產生了id_rsa id_rsa.pub
查驗當前用戶家目錄下是否有.ssh 目錄,若無建立此目錄
ls -al /home/user/
mkdir /home/user/.ssh
cd /home/user/.ssh
cat id_rsa.pub >>authorized_keys ####把上述建立的文件追到到此文件中
chmod 700 -R /home/user
chmod 755 /home/user/.ssh
chmod 600 /home/user/.ssh/authorized_keys
>2. 開啓祕鑰認證
vim /etc/ssh/sshd_config
PermitRootLogin yes ####避免不能登陸,能夠先放開root登陸權限
RSAAuthentication yes ###註釋掉這三行即爲開啓祕鑰認證
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keysweb
>3. 重啓ssh服務
/etc/init.d/sshd restart or service sshd restart or centos7:systemctl restart sshd.service
>4. 把公鑰拷貝到其它機器上,並追加到authorized_keys此文件中apache
>5. 全部機器重複上述操做vim
>6. 校驗
ssh slave ####第一次認證須要輸入yes,再次測試不須要輸入任何東西登陸成功即爲OKcentos
3:hadoop 安裝,先安裝一臺,其他的直接scp過去便可
>1. 解壓包至你想要的目錄
個人是/usr/local/hadoop
mkdir /usr/local/hadoop/tmp
設置Hadoop環境變量
export HADOOP_HOME=/usr/hadoop
export PATH=$PATH :$HADOOP_HOME/bin
>2. 配置文件
cd /usr/local/hadoop/etc/hadoop
vim core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop/tmp</value>
<!--臨時目錄得提早建立才行-->
<description>A base for other temporary directories.</description>
</property>
<!-- file system properties -->
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
vim hadoop-env.sh ####指定jdk路徑
export JAVA_HOME=/data/java/jdk安全
vim hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<!--property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/hadoop/dfs/name</value>
</property-->
<!--property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/hadoop/dfs/data</value>
</property-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>服務器
vim mapred-site.xml
<configuration>
<!--property>
<name>mapred.job.tracker</name>
<value>http://10.68.4.49:9001</value>
</property-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>架構
vim yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
vim slaves
slave1
slave2
>3. 拷貝至其餘機器
scp -r /usr/local/hadoop user@IP:/usr/local
>4. server 格式化hdfs文件系統
Hadoop namenode -format ###初次啓動才須要
cd /usr/local/hadoop/sbin
主從依次啓動
./start-all.sh
>5. 校驗
hadoop dfsadmin -report 查看Hadoop集羣的狀態
也能夠經過jps查看
網頁校驗
http://10.68.4.49:8088
http://10.68.4.49:50070
若是不行的話就看日誌吧
日誌默認目錄:/usr/local/hadoop/logs
能夠自定義,修改此文件:vim /usr/local/hadoop/etc/hadoop/log4j.properties
hadoop dfsadmin -safemode leave 關閉安全模式
各文件參數詳解見:
http://www.cnblogs.com/yinghun/p/6230436.html