CentOS7.0下Hadoop2.7.3的集群搭建
?
集群服務器規劃
使用3臺CentOS-6.8虛擬機進行集群搭建
| 服務 | ip | 主機名稱 | 用戶 | HDFS | YARN |
| hadoop1 | 192.168.1.40 | hadoop1 | root? | NameNode,Datenode,SecondaryNameNode | ResourceManager,NodeManager, |
| hadoop2 | 192.168.1.39 | hadoop2 | root | Datenode | NodeManager |
| hadoop3 | 192.168.1.38 | hadoop3 | root | Datenode | NodeManager |
?
軟件安裝步驟概述
1、獲取安裝包
2、解壓縮和安裝
3、修改配置文件
4、初始化,配置環境變量,啟動,驗證
?
Hadoop安裝
1、規劃
規劃安裝用戶:root
規劃安裝目錄:/home/hadoop/apps
規劃數據目錄:/home/hadoop/data
注:apps和data文件夾需要自己單獨創建
2、上傳解壓縮
#wget http://archive.apache.org/dist/hadoop/core/hadoop-2.6.5/hadoop-2.6.5-src.tar.gz? ?#tar -zxf?hadoop-2.6.5-src.tar.gz?-C /usr/local/src/
?3、修改配置文件
配置文件目錄:/use/local/src/hadoop-2.6.5/etc/hadoop
A. hadoop-env.sh
[hadoop@hadoop1 hadoop]$ vi hadoop-env.sh修改JAVA_HOME
export JAVA_HOME=/usr/local/jdk1.8.0_73B. core-site.xml
[hadoop@hadoop1 hadoop]$ vi core-site.xmlfs.defaultFS :?這個屬性用來指定namenode的hdfs協議的文件系統通信地址,可以指定一個主機+端口,也可以指定為一個namenode服務(這個服務內部可以有多臺namenode實現ha的namenode服務
hadoop.tmp.dir : hadoop集群在工作的時候存儲的一些臨時文件的目錄
<configuration><property><name>fs.defaultFS</name><value>hdfs://hadoop1:9000</value></property><property><name>hadoop.tmp.dir</name><value>/home/hadoop/data/hadoopdata</value></property> </configuration>?
?
C. hdfs-site.xml
[hadoop@hadoop1 hadoop]$ vi hdfs-site.xml?dfs.namenode.name.dir:namenode數據的存放地點。也就是namenode元數據存放的地方,記錄了hdfs系統中文件的元數據。
?dfs.datanode.data.dir:?datanode數據的存放地點。也就是block塊存放的目錄了。
dfs.replication:hdfs的副本數設置。也就是上傳一個文件,其分割為block塊后,每個block的冗余副本個數,默認配置是3。
dfs.secondary.http.address:secondarynamenode 運行節點的信息,和 namenode 不同節點
<configuration><property><name>dfs.namenode.name.dir</name><value>/home/hadoop/data/hadoopdata/name</value><description>為了保證元數據的安全一般配置多個不同目錄</description></property><property><name>dfs.datanode.data.dir</name><value>/home/hadoop/data/hadoopdata/data</value><description>datanode 的數據存儲目錄</description></property><property><name>dfs.replication</name><value>2</value><description>HDFS 的數據塊的副本存儲個數, 默認是3</description></property><property><name>dfs.secondary.http.address</name><value>hadoop3:50090</value><description>secondarynamenode 運行節點的信息,和 namenode 不同節點</description></property> </configuration>D. mapred-site.xml
[hadoop@hadoop1 hadoop]$ cp mapred-site.xml.template mapred-site.xml [hadoop@hadoop1 hadoop]$ vi mapred-site.xml?mapreduce.framework.name:指定mr框架為yarn方式,Hadoop二代MP也基于資源管理系統Yarn來運行 。
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property> </configuration>E. yarn-site.xml
[hadoop@hadoop1 hadoop]$ vi yarn-site.xml?yarn.resourcemanager.hostname:yarn總管理器的IPC通訊地址
?yarn.nodemanager.aux-services:
<configuration><!-- Site specific YARN configuration properties --><property><name>yarn.resourcemanager.hostname</name><value>hadoop4</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value><description>YARN 集群為 MapReduce 程序提供的 shuffle 服務</description></property></configuration>?
F. slaves
[hadoop@hadoop1 hadoop]$ vi slaves hadoop1 hadoop2 hadoop34、把安裝包分別分發給其他的節點
重點強調: 每臺服務器中的hadoop安裝包的目錄必須一致, 安裝包的配置信息還必須保持一致
重點強調: 每臺服務器中的hadoop安裝包的目錄必須一致, 安裝包的配置信息還必須保持一致
重點強調: 每臺服務器中的hadoop安裝包的目錄必須一致, 安裝包的配置信息還必須保持一致
5、配置Hadoop環境變量
千萬注意:
1、如果你使用root用戶進行安裝。 vi /etc/profile 即可 系統變量
2、如果你使用普通用戶進行安裝。 vi ~/.bashrc 用戶變量
[hadoop@hadoop1 ~]$ vi /etc/profile export HADOOP_HOME=/usr/local/src/hadoop-2.6.5 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:使環境變量生效
[hadoop@hadoop1 bin]$ source /etc/profile6、查看hadoop版本
[hadoop@hadoop1 bin]$ hadoop version Hadoop 2.7.5 Subversion Unknown -r Unknown Compiled by root on 2017-12-24T05:30Z Compiled with protoc 2.5.0 From source with checksum 9f118f95f47043332d51891e37f736e9 This command was run using /home/hadoop/apps/hadoop-2.7.5/share/hadoop/common/hadoop-common-2.7.5.jar [hadoop@hadoop1 bin]$7、Hadoop初始化
注意:HDFS初始化只能在主節點上進行
[hadoop@hadoop1 ~]$ hadoop namenode -format?View Code
8、啟動
A. 啟動HDFS
注意:不管在集群中的那個節點都可以
[root@WEB40 hadoop]# start-dfs.sh? 19/04/15 10:42:02 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Starting namenodes on [WEB40] WEB40: starting namenode, logging to /usr/local/src/hadoop-2.6.5/logs/hadoop-root-namenode-WEB40.out WEB40: starting datanode, logging to /usr/local/src/hadoop-2.6.5/logs/hadoop-root-datanode-WEB40.out WEB39: starting datanode, logging to /usr/local/src/hadoop-2.6.5/logs/hadoop-root-datanode-WEB39.out service: starting datanode, logging to /usr/local/src/hadoop-2.6.5/logs/hadoop-root-datanode-service.out Starting secondary namenodes [WEB40] WEB40: starting secondarynamenode, logging to /usr/local/src/hadoop-2.6.5/logs/hadoop-root-secondarynamenode-WEB40.outB. 啟動YARN
注意:只能在主節點中進行啟動
[root@WEB40 hadoop]# start-yarn.sh? starting yarn daemons starting resourcemanager, logging to /usr/local/src/hadoop-2.6.5/logs/yarn-root-resourcemanager-WEB40.out WEB40: starting nodemanager, logging to /usr/local/src/hadoop-2.6.5/logs/yarn-root-nodemanager-WEB40.out WEB39: starting nodemanager, logging to /usr/local/src/hadoop-2.6.5/logs/yarn-root-nodemanager-WEB39.out service: starting nodemanager, logging to /usr/local/src/hadoop-2.6.5/logs/yarn-root-nodemanager-service.out9、查看4臺服務器的進程
hadoop1
hadoop2
hadoop3
10、啟動HDFS和YARN的web管理界面
HDFS : http://192.168.1.40:50070
YARN : http://192.168.1.40:8088
疑惑: fs.defaultFS = hdfs://hadoop1:9000
解答:客戶單訪問HDFS集群所使用的URL地址
同時,HDFS提供了一個web管理界面 端口:50070
HDFS界面
點擊Datanodes可以查看四個節點
YARN界面
點擊Nodes可以查看節點
回到頂部
Hadoop的簡單使用
創建文件夾
在HDFS上創建一個文件夾/test/input
[hadoop@hadoop1 ~]$ hadoop fs -mkdir -p /test/input查看創建的文件夾
[hadoop@hadoop1 ~]$ hadoop fs -ls / Found 1 items drwxr-xr-x - hadoop supergroup 0 2018-03-03 11:33 /test [hadoop@hadoop1 ~]$ hadoop fs -ls /test Found 1 items drwxr-xr-x - hadoop supergroup 0 2018-03-03 11:33 /test/input [hadoop@hadoop1 ~]$上傳文件
創建一個文件words.txt
[hadoop@hadoop1 ~]$ vi words.txt hello zhangsan hello lisi hello wangwu上傳到HDFS的/test/input文件夾中
[hadoop@hadoop1 ~]$ hadoop fs -put ~/words.txt /test/input?查看是否上傳成功
[hadoop@hadoop1 ~]$ hadoop fs -ls /test/input Found 1 items -rw-r--r-- 2 hadoop supergroup 39 2018-03-03 11:37 /test/input/words.txt [hadoop@hadoop1 ~]$下載文件
將剛剛上傳的文件下載到~/data文件夾中
[hadoop@hadoop1 ~]$ hadoop fs -get /test/input/words.txt ~/data查看是否下載成功
[hadoop@hadoop1 ~]$ ls data hadoopdata words.txt [hadoop@hadoop1 ~]$運行一個mapreduce的例子程序: wordcount
[hadoop@hadoop1 ~]$ hadoop jar ~/apps/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount /test/input /test/output在YARN Web界面查看
?
查看結果
[hadoop@hadoop1 ~]$ hadoop fs -ls /test/output Found 2 items -rw-r--r-- 2 hadoop supergroup 0 2018-03-03 11:42 /test/output/_SUCCESS -rw-r--r-- 2 hadoop supergroup 35 2018-03-03 11:42 /test/output/part-r-00000 [hadoop@hadoop1 ~]$ hadoop fs -cat /test/output/part-r-00000 hello 3 lisi 1 wangwu 1 zhangsan 1 [hadoop@hadoop1 ~]$總結
以上是生活随笔為你收集整理的CentOS7.0下Hadoop2.7.3的集群搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysqli与pdo防sql注入源码
- 下一篇: Linux(CentOS 7)安装doc