開始學習數據處理相關的知識了,第一步是搭建一個Hadoop集羣。搭建一個分佈式集羣須要多臺電腦,在此我選擇採用VMWare+CentOS7搭建一個三臺虛擬機組成的Hadoop集羣。html
注:1.本次搭建環境中操做系統的用戶名爲hadoop,請自行替換/home/hadoop爲本機對應路徑。java
2.本次用到的軟件版本爲:node
首先建立新的虛擬機,自定義建立,1核1G,網上教程不少再也不贅述。web
安裝完CentOS 7後,若是出現沒法鏈接網絡的問題,能夠參考http://www.javashuo.com/article/p-decvhgjc-dx.html這個帖子。參照https://www.cnblogs.com/comexchan/p/5815869.html設置yum的源之後,使用`yum -y update`進行更新。而後關閉虛擬機,選擇VMWare的克隆功能克隆兩臺同樣的虛擬機。瀏覽器
爲了方便丟jar和腳本進去,給打算用來當主機的一臺增長一個桌面操做系統。我這裏選用GNOME,具體用哪一個本身參考。安裝命令爲 yum groupinstall "GNOME Desktop ,注意引號。安裝完畢後,使用 startx 可啓動桌面。 Ctrl + Alt + F6 和 Ctrl + Alt + F7 分別對應切換到命令行窗口和切換到圖形化界面。網絡
不配置免密登陸在啓動集羣的時候要一直輸密碼很是麻煩,爲此配置三臺機器之間互相免密登陸。方法參考 https://blog.csdn.net/lzh_86/article/details/80159104 。app
先確認一下本身的Java版本,1.8版本能夠跳過此步驟,不然去java官網下載1.8版本的jdk並配置環境變量。webapp
下載目標版本的hadoop的tar文件,這裏我安裝到/home/hadoop/下,安裝完之後出現hadoop-2.7.7文件夾。在一個指定路徑(這裏我在hadoop安裝文件夾下)創建/tmp、/var、/dfs、/dfs/name、/dfs/data這幾個文件夾。進入安裝目錄/etc/hadoop/,修改core-site.xml,在<configuration>節點內加入配置:分佈式
<configuration> <property> <name>hadoop.tmp.dir</name> <!-- 剛纔設置的tmp文件夾路徑 --> <value>/home/hadoop/hadoop-2.7.7/tmp</value> <description>Abase for other temporary directories.</description> </property> <property> <name>fs.default.name</name> <!-- master對應設置的主機,在三臺虛擬機內都要重複配置,此時設置爲對應虛擬機名 --> <value>hdfs://master:9000</value> </property> </configuration>
接下來修改hadoop-env.sh文件,將`export JAVA_HOME=${JAVA_HOME}`修改成本身的jdk路徑。oop
下一個是hdfs-site.xml文件,一樣在<configuration>節點內加入配置
<configuration> <property> <name>dfs.name.dir</name> <!-- 剛纔設置的name文件夾路徑 --> <value>/home/lxz/hadoop/dfs/name</value> </property> <property> <name>dfs.data.dir</name> <!-- 剛纔設置的data文件夾路徑 --> <value>/home/lxz/hadoop/dfs/data</value> </property> <property> <name>dfs.replication</name> <!-- hdfs副本數 --> <value>2</value> </property> <property> <name>dfs.permissions</name> <value>false</value> <!-- 開啓權限檢查 --> </property> </configuration>
下一步, cp mapred-site.xml.template mapred-site.xml 從模板生成配置文件,修改該文件在<configuration>節點內加入配置:
<configuration> <property> <name>mapred.job.tracker</name> <!-- 修改master爲對應主機名 --> <value>hdfs://master:49001</value> </property> <property> <name>mapred.local.dir</name> <!-- var文件夾位置 --> <value>/home/lxz/hadoop/var</value> </property> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
接下來修改slaves文件,將localhost修改成servent1和servent2。
修改yarn-site.xml文件,在<configuration>節點內加入配置:
<configuration> <property> <name>yarn.resourcemanager.hostname</name> <!-- 同理,修改master爲對應主機名 --> <value>master</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>${yarn.resourcemanager.hostname}:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>${yarn.resourcemanager.hostname}:8030</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>${yarn.resourcemanager.hostname}:8088</value> </property> <property> <name>yarn.resourcemanager.webapp.https.address</name> <value>${yarn.resourcemanager.hostname}:8090</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>${yarn.resourcemanager.hostname}:8031</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>${yarn.resourcemanager.hostname}:8033</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.scheduler.maximum-allocation-mb</name> <!-- 每一個節點可用內存,單位MB,默認8182MB --> <value>1024</value> </property> <property> <name>yarn.nodemanager.vmem-pmem-ratio</name> <value>2.1</value> </property> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>1024</value> </property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property> </configuration>
在另外兩臺分機上重複上述操做。而後進入主機安裝目錄的bin文件夾下,執行 ./hadoop namenode -format 命令進行初始化,若是隻有INFO級別日誌則成功。隨後進入安裝目錄下的sbin目錄執行 ./start-all.sh 命令.等執行完畢後,能夠在瀏覽器中訪問master:50070和master:8088查看是否運行成功。