Hadoop體系的主要組件:HDFS/MapReducejava
做用:維護Hadoop中存儲數據塊的相關信息,例如記錄hadoop集羣中某個數據塊所在的服務器位置,SecondNameNode主要是起到冗餘做用,當NameNode宕機時,可以使用SecondNameNode做爲NameNode的替代工具,防止整個Hadoop集羣的崩潰node
做用: 主要是存儲HDFS數據塊的服務器,負責HDFS數據庫的存儲(讀寫)linux
JobTracker: 做業跟蹤器,相似司令的角色,主要用於處理做業,將做業進行分割成任務task,統一調度數據庫
TaskTracker:任務跟蹤器:主要管理節點上task,相似士兵的角色,向JobTracker報告服務器
master:JobTracker NameNode節點所在的服務器框架
slave: DataNode TaskTracker節點所在的服務器ssh
注意:1個Hadoop集羣只有1個JobTracker做業跟蹤器,JobTracker和NameNdoe可在同1個服務器,TaskTracker和DataNode通常在同一個服務器,一個TaskTracker管理所在服務器的任務分佈式
Hadoop僞分佈式:全部節點都在同1個服務器(開發用)ide
①:配置hadoop環境(hadoop-env.sh): export JAVA_HOME=/usr/local/java/jdk1.8.0_112 (hadoop基於Java開發,須要配置jdk)工具
②:Hadoop的核心配置:core-site.xml(例如:名稱節點、I/O配置等)
<?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://localhost:9000</value> </property> </configuration>
因是僞分佈式,這裏配置的名稱節點的ip爲localhost,實際徹底分佈式狀況須要設置實際的服務主機的ip
③:配置hdfs文件系統 hdfs-site.xml:配置dataNode的存儲位置及數據塊的備份次數
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>dfs.data.dir</name> <value>/usr/local/hadoop-0.20.2/data</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
④:配置MapReduce mapred-site.xml:JobTracker節點服務器配置
<?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>localhost:9001</value> </property> </configuration>
⑤:格式化HDFS文件系統:bin目錄自帶的hadoop命令(名稱節點服務器格式化): ./hadoop namenode –format
⑥:啓動hadoop集羣:/bin/start-all.sh :hadoop啓動腳本 查看Hadoop是否成功啓動:使用jdk自帶的jps命令,能夠查詢linux中和Java相關的進程信息:
[root@localhost bin]# jps 19344 SecondaryNameNode 19152 NameNode 19249 DataNode 19511 TaskTracker 19417 JobTracker 19551 Jps
**結果:**顯示Hadoop關鍵的守護進程的信息代表hadoop僞集羣成功啓動
注意:這裏是使用僞分佈式的hadoop,徹底分佈式須要配置各個節點的ssh的公鑰共享,無需ssh密碼登錄就可實現hadoop集羣中各個節點之間的數據傳輸,僞分佈式經過單點模擬hadoop集羣,只需將本身的公鑰加入authorized_keys便可。