1.hadoop介紹 java
Hadoop是Apache軟件基金會旗下的一個開源分佈式計算平臺。以Hadoop分佈式文件系統(HDFS,Hadoop Distributed Filesystem)和MapReduce(Google MapReduce的開源實現)爲核心的Hadoop爲用戶提供了系統底層細節透明的分佈式基礎架構。node
對於Hadoop的集羣來說,能夠分紅兩大類角色:Master和Salve。一個HDFS集羣是由一個NameNode和若干個DataNode組成的。其中NameNode做爲主服務器,管理文件系統的命名空間和客戶端對文件系統的訪問操做;集羣中的DataNode管理存儲的數據。MapReduce框架是由一個單獨運行在主節點上的JobTracker和運行在每一個集羣從節點的TaskTracker共同組成的。主節點負責調度構成一個做業的全部任務,這些任務分佈在不一樣的從節點上。主節點監控它們的執行狀況,而且從新執行以前的失敗任務;從節點僅負責由主節點指派的任務。當一個Job被提交時,JobTracker接收到提交做業和配置信息以後,就會將配置信息等分發給從節點,同時調度任務並監控TaskTracker的執行。linux
從上面的介紹能夠看出,HDFS和MapReduce共同組成了Hadoop分佈式系統體系結構的核心。HDFS在集羣上實現分佈式文件系統,MapReduce在集羣上實現了分佈式計算和任務處理。HDFS在MapReduce任務處理過程當中提供了文件操做和存儲等支持,MapReduce在HDFS的基礎上實現了任務的分發、跟蹤、執行等工做,並收集結果,兩者相互做用,完成了Hadoop分佈式集羣的主要任務。web
1.2環境說明
apache
master 192.168.0.201vim
slave 192.168.0.220服務器
兩個節點都是CentOS7網絡
1.3環境準備架構
永久關閉防火牆和selinuxapp
systemctl disable firewalld systemctl stop firewalld setenforce 0
1.4網絡配置
兩臺修改主機名:master/salve
設置hosts,能互相解析
1.5配置ssh互信
master yum -y install sshpass ssh-keygen 一路回車 ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.220 slave yum -y install sshpass ssh-keygen 一路回車 ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.201 測試ssh對方主機,不提示輸入密碼則OK
2.安裝JDK
兩臺機器都裝
tar zxvf jdk-8u65-linux-x64.tar.gz mv jdk1.8.0_65 /usr/jdk
2.1設置環境變量
兩臺機器都設置
export JAVA_HOME=/usr/jdk export JRE_HOME=/usr/jdk/jre export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin 執行 source /etc/profile
3.測試JDK
java -version
3.1安裝Hadoop
官方網站下載CDH-2.6-hadoop:archive.cloudera.com/cdh5
tar zxvf hadoop-2.6.0-cdh5.4.8.tar.gz mv hadoop-2.6.0-cdh5.4.8 /usr/hadoop cd /usr/hadoop mkdir -p dfs/name mkdir -p dfs/data mkdir -p tmp
3.2添加slave
cd /usr/hadoop/etc/hadoop vim slaves 192.168.0.220 #添加slaveIP
3.3修改hadoop-env.sh和yarn.env.sh
vim hadoop-env.sh / vim yarn-env.sh export JAVA_HOME=/usr/jdk #加入java變量
3.4修改core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://192.168.0.201:9000</value> </property> <property> <name>io.file.buffer.size</name> <value>131702</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/hadoop/tmp</value> </property> <property> <name>hadoop.proxyuser.hadoop.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.hadoop.groups</name> <value>*</value> </property> </configuration>
3.5修改hdfs-site.xml
<configuration> <property> <name>dfs.namenode.name.dir</name> <value>/usr/hadoop/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/usr/hadoop/dfs/data</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>192.168.0.201:9001</value> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> </configuration> </configuration>
3.6修改mapred-site.xml
configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>192.168.0.201:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>192.168.0.201:19888</value> </property> </configuration>
3.7修改yarn-site.xml
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>192.168.0.201:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>192.168.0.201:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>192.168.0.201:8031</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>192.168.0.201:8033</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>192.168.0.201:8088</value> </property> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>768</value> </property> </configuration>
4.把配置文件拷貝到slave端
scp -r /usr/hadoop root@192.168.0.220:/usr/
5.格式化nanenode
./bin/hdfs namenode -format
5.1啓動hdfs
./sbin/start-dfs.sh$ ./sbin/start-yarn.sh
5.2檢查啓動狀況
輸入192.168.0.201:8088
輸入網址:192.168.0.201:9001
配置文件詳解:
core-site.xml
hadoop.tmp.dir hadoop文件系統依賴的基礎配置,不少路徑都依賴它。若是hdfs-site-xml中不配置namenode 和datanode的存放位置,默認就放在這個路徑下 fs.defaultFS 這裏的值指的是默認的HDFS路徑。這裏只有一個HDFS集羣,在這裏指定!
hdfs-site.xml
dfs.replication 指定DataNode存儲block的副本數量。默認值是3個,咱們如今有4個DataNode,該值不大於4便可