我所使用的主要工具版本:
Linux系統:CentOS7
jdk安裝包:jdk-8u144-linux-x64.tar.gz
hadoop安裝包:目前最新版的維護版本hadoop-3.1.3.tar.gz(3.1.3版本詳情介紹http://hadoop.apache.org/docs/r3.1.3/)
目的:三種模式的集羣搭建(第一,二種不算,主要是第三種)
本地運行模式(測試使用).僞分佈式運行模式(類似完全分佈式,但只有一個節點,測試使用),完全分佈式模式
- 配置一臺模板機,修改IP靜態,主機名,主機名和IP映射,關閉防火牆
- 克隆模板機,至少三臺(如果電腦配置不太好),一臺做本地運行模式.僞分佈式運行模式,另外三臺做僞分佈式
- 給模板機安裝jdk,hadoop
- jdk環境變量:修改配置文件/etc/profile,添加環境變量JAVA_HOME,PATH
- 重啓,java -version驗證是否安裝成功
- Hadoop環境變量: 修改配置文件hadoop-3.1.3/etc/hadoop/hadoop-env.sh ,添加jdk的JAVA_HOME環境變量
- 再修改配置文件/etc/profile,添加環境變量HADOOP_HOME,PATH
- 本地運行模式:(一臺主機)
- 測試grep案例:
- 使用Hadoop安裝包中的mapreduce測試jar包,grep方式篩選符合的正則表達式的內容進行統計(map的拆分和reduce的聚合):
- bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep input output 'config[a-z.]+'
- 產生的結果文件:
- 文件內容:
- 使用Hadoop安裝包中的mapreduce測試jar包,grep方式篩選符合的正則表達式的內容進行統計(map的拆分和reduce的聚合):
- 測試wrdcount案例:
- 測試grep案例:
- 僞分佈式模式:(一臺機器)
- 啓動HDFS並運行MapReduce程序:
- 指定副本數量:
- 修改配置文件hdfs-site.xml
- 配置HDFS的NameNode地址,產生的文件存儲目錄:
- 修改配置文件core-site.xml
- 後續:
- 指定副本數量:
- YARN上運行MapReduce程序:
- 配置YARN的ResourceManager的地址,reduce方式:
- 修改配置文件yarn-site.xml
- 在mapred-env.sh配置JAVA——HOME環境變量
- 將mapred-site.xml.template重命名爲mapred-site.xml,指定MapReduce在YARN上運行
- 配置YARN的ResourceManager的地址,reduce方式:
- 啓動HDFS並運行MapReduce程序:
問題解決:
- 採用最小化安裝centos,有些命令找不到,比如ifconfig命令
yum provides ifconfig查看需要安裝的包
yum install net-tools
- centOS7的主機名配置文件在/etc/hostname