indows 10構(gòu)建基于Linux環(huán)境的Hadoop集群
軟件版本
安裝VMware
----安裝虛機(jī)
----配置網(wǎng)絡(luò)
----配置主機(jī)與IP地址映射
----關(guān)閉防火墻
-----配置SSH免密登錄
安裝JDK
----解壓JDK
----設(shè)置環(huán)境變量
安裝Hadoop
----安裝
----配置Hadoop
----啟動(dòng)Hadoop
訪問(wèn)Hadoop集群信息
測(cè)試驗(yàn)證
----上傳測(cè)試文件
-----運(yùn)行hadoop示例程序
VMvare使用免費(fèi)的開(kāi)發(fā)版本Download VMware Workstation Player | VMware | CN
Centos-7和JDK鏡像可以從華為云下載,速度快點(diǎn)https://repo.huaweicloud.com/
Hadoop直接從官網(wǎng)下載即可。
MobaXterm是一款比較好用的終端工具,可以方便地通過(guò)ssh訪問(wèn)虛機(jī)和資源拷貝,直接從官網(wǎng)下載免費(fèi)版。
安裝過(guò)程,直接選用典型安裝即可,按向?qū)б徊揭徊綀?zhí)行,需要提前下載好CentOS的鏡像,并指定鏡像的目錄。
剛裝完的虛機(jī)無(wú)法連接網(wǎng)絡(luò),無(wú)法進(jìn)行yum安裝,所以需要先配置網(wǎng)絡(luò)。
配置要求:
設(shè)置wlan網(wǎng)絡(luò)共享
設(shè)置wlan網(wǎng)絡(luò)共享
配置虛擬網(wǎng)絡(luò),設(shè)置nat模式,子網(wǎng)和網(wǎng)關(guān)設(shè)置成與宿主機(jī)上設(shè)置的一致。比如子網(wǎng)都是192.168.137.0,
網(wǎng)關(guān)都是192.168.137.2。
查看宿主機(jī)設(shè)置的虛機(jī)子網(wǎng)和網(wǎng)關(guān)
設(shè)置虛機(jī)的子網(wǎng)和網(wǎng)關(guān)
配置每個(gè)虛機(jī)的靜態(tài)地址,因?yàn)椴幌M刂访看巫儊?lái)變?nèi)ィ@里設(shè)置成靜態(tài)地址
配置vi /etc/sysconfig/network-srcipts/ifcfg-ens33
修改配置后執(zhí)行service network restart重啟網(wǎng)絡(luò)服務(wù)即可。
配置虛機(jī)的靜態(tài)地址
虛機(jī)可以ping通公網(wǎng)
虛機(jī)訪問(wèn)公網(wǎng)
虛機(jī)之間互通ping通,虛機(jī)可以ping通宿主機(jī)
虛機(jī)互訪
宿主機(jī)可以ping通訊機(jī)
宿主機(jī)訪問(wèn)虛機(jī)
由于在VMware上訪問(wèn)虛機(jī)很不方便,需要和宿主機(jī)之間不斷切換,可以安裝MobaXterm訪問(wèn)虛機(jī),如下:
通過(guò)終端工具M(jìn)obaXterm訪問(wèn)虛機(jī)
至此,虛機(jī)1可以訪問(wèn)公網(wǎng),虛機(jī)之間互通,虛機(jī)和宿主機(jī)之間可以互通。
配置主機(jī)和IP地址的映射可以通過(guò)主機(jī)名訪問(wèn)主機(jī)
配置/etc/hosts如下:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.137.10 master
192.168.137.11 slave1
192.168.137.12 slave2
設(shè)置后,可以通過(guò)主機(jī)名互通
通過(guò)主機(jī)名訪問(wèn)主機(jī)
其他節(jié)點(diǎn)也一樣設(shè)置即可。
firewall-cmd --state
systemctl stop firewalld.service
systemctl disable firewalld.service
在NameNode節(jié)點(diǎn)上生成密鑰
生成ssh密鑰
分別拷貝到三臺(tái)機(jī)器上
驗(yàn)證免密登錄
驗(yàn)證ssh免密登錄
至此安裝hadoop的前期三臺(tái)虛機(jī)的安裝,網(wǎng)絡(luò)配置,ssh配置,防火墻配置等都已經(jīng)完成,下面就開(kāi)始進(jìn)入到安裝環(huán)節(jié)。
把壓縮包拖到linux目錄下:
拷貝JDK壓縮包
拷貝到/usr/local/目錄下并解壓:
cp openjdk-15.0.2_linux-x64_bin.tar.gz /usr/local/
tar -zxvf openjdk-15.0.2_linux-x64_bin.tar.gz
在/etc/profile配置文件最后加上:
export JAVA_HOME=/usr/local/software/jdk-15.0.2
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
執(zhí)行source /etc/profile即可。
通過(guò)java --version驗(yàn)證是否生效。
驗(yàn)證JDK
將壓縮文件分別拷貝到/usr/local/software/目錄下解壓tar -zxvf hadoop-3.3.0.tar.gz即可。
設(shè)置環(huán)境變量后執(zhí)行source /etc/profile
export JAVA_HOME=/usr/local/software/jdk-15.0.2
export HADOOP_HOME=/usr/local/software/hadoop-3.3.0
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
配置hadoop-env.sh
配置jdk的路徑:
export JAVA_HOME=/usr/local/software/jdk-15.0.2
配置core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/software/hadoop-3.3.0/tmp</value>
</property>
</configuration>
配置hdfs-site.xml
<configuration>
<!-- 設(shè)置namenode的http通訊地址 -->
<property>
<name>dfs.namenode.http-address</name>
<value>master:50070</value>
</property>
<!-- 設(shè)置secondarynamenode的http通訊地址 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave1:50090</value>
</property>
<!-- 設(shè)置namenode存放的路徑 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/software/hadoop-3.3.0/name</value>
</property>
<!-- 設(shè)置hdfs副本數(shù)量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 設(shè)置datanode存放的路徑 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/software/hadoop-3.3.0/data</value>
</property>
</configuration>
配置mapred-site.xml
<configuration>
<!-- 通知框架MR使用YARN -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.application.classpath</name>
<value>
/usr/local/software/hadoop-3.3.0/etc/hadoop,
/usr/local/software/hadoop-3.3.0/share/hadoop/common/lib/*,
/usr/local/software/hadoop-3.3.0/share/hadoop/common/*,
/usr/local/software/hadoop-3.3.0/share/hadoop/hdfs,
/usr/local/software/hadoop-3.3.0/share/hadoop/hdfs/lib/*,
/usr/local/software/hadoop-3.3.0/share/hadoop/hdfs/*,
/usr/local/software/hadoop-3.3.0/share/hadoop/mapreduce/*,
/usr/local/software/hadoop-3.3.0/share/hadoop/yarn,
/usr/local/software/hadoop-3.3.0/share/hadoop/yarn/lib/*,
</value>
</property>
</configuration>
配置yarn-site.xml
<configuration>
<!-- 設(shè)置 resourcemanager 在哪個(gè)節(jié)點(diǎn)-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<!-- reducer取數(shù)據(jù)的方式是mapreduce_shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.application.classpath</name>
<value>
/usr/local/software/hadoop-3.3.0/etc/hadoop,
/usr/local/software/hadoop-3.3.0/share/hadoop/common/lib/*,
/usr/local/software/hadoop-3.3.0/share/hadoop/common/*,
/usr/local/software/hadoop-3.3.0/share/hadoop/hdfs,
/usr/local/software/hadoop-3.3.0/share/hadoop/hdfs/lib/*,
/usr/local/software/hadoop-3.3.0/share/hadoop/hdfs/*,
/usr/local/software/hadoop-3.3.0/share/hadoop/mapreduce/*,
/usr/local/software/hadoop-3.3.0/share/hadoop/yarn,
/usr/local/software/hadoop-3.3.0/share/hadoop/yarn/lib/*,
</value>
</property>
</configuration>
配置workers
指定工作節(jié)點(diǎn)
master
slave1
slave2
格式化namenode
[root@master bin]# ./hdfs namenode -format
啟動(dòng)失敗,原因是通過(guò)root創(chuàng)建的時(shí)候,要配置hdfs和yarn的root賬戶(hù):
在start-dfs.sh和stop-dfs.sh開(kāi)始增加如下配置
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
在start-yarn.sh和stop-yarn.sh開(kāi)始的地方增加如下配置
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
重新啟動(dòng)
[root@master sbin]# ./start-all.sh
一鍵啟動(dòng)集群
查看啟動(dòng)情況,三個(gè)虛機(jī)的hadoop各組件已正常啟動(dòng)
master
NameNode啟動(dòng)結(jié)果
slave1
Slave1啟動(dòng)結(jié)果
slave2
Slave2啟動(dòng)結(jié)果
可以看到一個(gè)NameNode和三個(gè)DataNode節(jié)點(diǎn)
通過(guò)網(wǎng)頁(yè)訪問(wèn)集群信息
[root@master mapreduce]# hadoop fs -mkdir /input
[root@master mapreduce]# hadoop fs -put /home/lulu/test.txt /input
上傳測(cè)試文件.txt里面存儲(chǔ)英文單詞
運(yùn)行過(guò)程如下:
運(yùn)行wordcount Hadoop程序
可以看到在hdfs上已經(jīng)生成了輸出out文件
查看hdfs輸出文件
查看運(yùn)行的結(jié)果如下,可以看出來(lái)wordcount程序已正確運(yùn)行并輸出。
查看hdfs的文件輸出結(jié)果
至此,一個(gè)完整的linux環(huán)境下的Hadoop集群環(huán)境就搭建和運(yùn)行完成了,后續(xù)可以在這個(gè)環(huán)境進(jìn)行學(xué)習(xí)會(huì)更貼合實(shí)際的部署的環(huán)境,也可以基于這個(gè)環(huán)境去做一些demo驗(yàn)證或參數(shù)調(diào)測(cè)等。
安裝并配置hadoop-2.6.4(在master中)
(1)將hadoop-2.6.4.tar.gz安裝包復(fù)制到hadoop文件目錄下(與windows環(huán)境下類(lèi)似)。
(2)解壓hadoop-2.6.4.tar.gz
cd
cd hadoop
tar -zxvf hadoop-2.6.4.tar.gz
添加環(huán)境變量: vim /etc/profile
在最后添加
export HADOOP_HOME=/usr/hadoop-2.6.2
export PATH=HADOOP_HOME/bin:$HADOOP_HOME/sbin
生效:source /etc/profile
配置Hadoop (cd /usr/hadoop-2.6.2)
1、vi core-site.xml
hadoop.tmp.dir
/usr/hadoop-2.6.2/tmp
Abase for other temporary directories.
fs.defaultFS
hdfs://master:9000
io.file.buffer.size
4096
2、vi hadoop-env.sh 在開(kāi)頭加上 export JAVA_HOME=/usr/jdk1.7.0_79
3、vi yarn-env.sh 在開(kāi)頭加上 export JAVA_HOME=/usr/jdk1.7.0_79
4、vi hdfs-site.xml
dfs.namenode.name.dir
file:///usr/hadoop-2.6.2/dfs/name
dfs.datanode.data.dir
file:///usr/hadoop-2.6.2/dfs/data
dfs.replication
2
dfs.nameservices
hadoop-cluster1
dfs.namenode.secondary.http-address
master:50090
dfs.webhdfs.enabled
true
5、vi mapred-site.xml
mapreduce.framework.name
yarn
true
mapreduce.jobtracker.http.address
master:50030
mapreduce.jobhistory.address
master:10020
mapreduce.jobhistory.webapp.address
master:19888
mapred.job.tracker
http://master.Hadoop:9001
6、vi yarn-site.xml
yarn.resourcemanager.hostname
master
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.address
master:8032
yarn.resourcemanager.scheduler.address
master:8030
yarn.resourcemanager.resource-tracker.address
master:8031
yarn.resourcemanager.admin.address
master:8033
yarn.resourcemanager.webapp.address
master:8088
7、vi slaves
slave1
slave2
8、復(fù)制到slave上 scp -r /usr/hadoop-2.6.2/ root@slave1:/usr/
9、配置slave上的Hadoop環(huán)境變量
添加環(huán)境變量: vim /etc/profile
在最后添加
export HADOOP_HOME=/usr/local/hadoop-2.8.4
export PATH=HADOOP_HOME/bin:$HADOOP_HOME/sbin
生效:source /etc/profile
10、啟動(dòng)
先啟動(dòng)hadoop集群start-all.sh