【大数据】Hadoop环境搭建图文教程(VM安装教程+Linux环境下配置+搭建三节点的Hadoop集群)
文章目錄
- 大數(shù)據(jù)Hadoop環(huán)境搭建
- 一、基本配置
- 二、即將完成的任務
- 三、實驗背景
- 四、知識要點
- 文檔說明:
- VMware版本:
- linux版本
- 1. 三臺linux服務器的安裝
- 1. 安裝VMware
- 2. 通過Vmware安裝第一臺linux機器
- 3. 為我們創(chuàng)建的linux虛擬機掛載操作系統(tǒng)
- 4. 為我們的linux虛擬機設置網(wǎng)絡配置
- 5. 克隆第一臺機器
- 6. 更改克隆機器的IP地址
- 2. 安裝大數(shù)據(jù)集群前的環(huán)境準備
- 1. 三臺虛擬機關(guān)閉防火墻
- 2. 三臺機器關(guān)閉selinux
- 3. 三臺機器更改主機名
- 4. 三臺機器做主機名與IP地址的映射
- 5. 三臺機器時鐘同步
- 第一種同步方式:通過網(wǎng)絡進行時鐘同步
- 第二種同步方式:內(nèi)網(wǎng)某機器作為時鐘同步服務器
- 第一步:三臺機器確定是否安裝了ntpd的服務
- 第二步:node01啟動ntpd服務
- 第三步:修改node01服務器配置
- 第四步:配置node02與node03同步node01的時間
- 6. 三臺機器添加普通用戶
- 7. 三臺定義統(tǒng)一目錄
- 8. 三臺機器hadoop用戶免密碼登錄
- 9. 三臺機器關(guān)機重啟
- 10. 三臺機器安裝jdk
- 3. hadoop集群的安裝
- 第一步:上傳壓縮包并解壓
- 第二步:查看hadoop支持的壓縮方式以及本地庫
- 第三步:修改配置文件
- 修改hadoop-env.sh
- 修改core-site.xml
- 修改hdfs-site.xml
- 修改mapred-site.xml
- 修改yarn-site.xml
- 修改workers文件
- 第四步:創(chuàng)建文件存放目錄
- 第五步:安裝包的分發(fā)scp與rsync
- 1. 通過scp直接拷貝
- 2. 通過rsync來實現(xiàn)增量拷貝
- 3. 通過rsync來封裝分發(fā)腳本
- 第六步:配置hadoop的環(huán)境變量
- 第七步:格式化集群
- 第八步:集群啟動
- 1. 啟動HDFS、YARN、Historyserver
- 2. 單個進程逐個啟動
- 3. 一鍵啟動hadoop集群的腳本
- 第九步:驗證集群是否搭建成功
- 1. 訪問web ui界面
- 2. 所有機器查看進程腳本
- 3. 運行一個mr例子
大數(shù)據(jù)Hadoop環(huán)境搭建
一、基本配置
二、即將完成的任務
安裝虛擬化軟件VMware
準備3臺linux虛擬機
搭建3節(jié)點的hadoop集群
- 按《虛擬化與云計算(第3版)》課本描述,實際上可以只搭一主一從兩臺虛擬機即可
- 筆者是因為大數(shù)據(jù)學習需求,會相對詳盡
三、實驗背景
四、知識要點
文檔說明:
- 在學習大數(shù)據(jù)課程的全程中,要求大家統(tǒng)一保持跟老師一樣的操作系統(tǒng)、軟件版本、環(huán)境設置
VMware版本:
- VMware建議使用比較新的版本,如VMware 15.5
- 關(guān)于VMware的安裝,直接使用安裝包一直下一步安裝即可,且安裝包當中附帶破解秘鑰,進行破解即可使用
linux版本
-
linux統(tǒng)一使用centos7.6 64位版本
-
種子文件下載地址:http://mirrors.aliyun.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.torrent
-
具體實操過程請參考視頻
1. 三臺linux服務器的安裝
1. 安裝VMware
- VMware虛擬機軟件是一個“虛擬PC”軟件,它使你可以在一臺機器上同時運行二個或更多Windows、DOS、LINUX系統(tǒng)。與“多啟動”系統(tǒng)相比,VMWare采用了完全不同的概念。
- 我們可以通過VMware來安裝我們的linux虛擬機,然后通過linux虛擬機來進行集群的安裝,VMware的安裝雙擊之后,一路下一步即可,盡量不要裝在操作系統(tǒng)盤里面了,VMware的安裝步驟省略
2. 通過Vmware安裝第一臺linux機器
- 我們通過Vmware可以安裝第一臺我們的linux機器,接下來我們來看如何通過VMWare創(chuàng)建linux虛擬機,并給我們的虛擬機掛載操作系統(tǒng)
1:雙擊Vmware打開之后,點擊創(chuàng)建新的虛擬機
2:選擇自定義安裝配置
3:選擇稍后安裝操作系統(tǒng)
4:選擇稍后安裝操作系統(tǒng)
5:選擇安裝路徑,盡量不要放在C盤,并且所在盤符的剩余空間盡量大些
6:CPU核數(shù),默認即可
7:虛擬機內(nèi)存根據(jù)自身windows電腦進行調(diào)整
例如如果windows是8GB內(nèi)存,那么每臺虛擬機內(nèi)存給2048M內(nèi)存,如果windows是16GB沒存,那么每臺虛擬機可以給3072M內(nèi)存即可
8:網(wǎng)絡配置一定要選擇NAT
9:磁盤大小盡量給40GB
注意:千萬不要勾選“立即分配所有磁盤空間”
10:完成
3. 為我們創(chuàng)建的linux虛擬機掛載操作系統(tǒng)
- 我們現(xiàn)在已經(jīng)有了一臺虛擬電腦了,就類似我們剛剛買了一臺電腦回來,只不過不同的是我們這臺虛擬電腦還沒有操作系統(tǒng)我們需要為這臺電腦掛在操作系統(tǒng)出來
1:通過設置來掛載操作系統(tǒng)
2:直接回車開始安裝
用鍵盤的方向鍵,選中“Install CentOS 7”,然后按回車,開始安裝
再按回車鍵
3:設置鍵盤為英文鍵盤
4:接下來配置這三項
(1)設置①時區(qū)為Asia/Shanghai
(2)設置②INSTALATION DESTINATION
(3)設置③NETWORK & HOST NAME
5:設置root用戶密碼
6:安裝完成之后重啟reboot即可
此過程稍長,耐心等待
4. 為我們的linux虛擬機設置網(wǎng)絡配置
- 我們的linux虛擬機已經(jīng)創(chuàng)建并掛載好了操作系統(tǒng),接下來我們可以為我們的第一臺虛擬機來設置網(wǎng)絡地址了,設置網(wǎng)絡地址比較麻煩,盡量參見視頻進行一步步的操作
1:設置虛擬機的網(wǎng)段
2:查看NAT模式的網(wǎng)關(guān),子網(wǎng)IP以及子網(wǎng)掩碼
3:設置window當中的VMNet8網(wǎng)絡地址
4:設置linux當中的網(wǎng)絡
-
我們已經(jīng)配置好了Vmware當中的網(wǎng)絡、windows當中的網(wǎng)絡;
-
剩下就是配置linux虛擬機當中的網(wǎng)絡,配置好了linux當中的網(wǎng)絡,我們的linux就可以聯(lián)網(wǎng)使用了
-
登錄linux
編輯配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33添加聯(lián)網(wǎng)四要素
IPADDR=192.168.51.100 NETMASK=255.255.255.0 GATEWAY=192.168.51.1 DNS1=8.8.8.8具體參考下圖
更改完成配置,重啟網(wǎng)絡服務
systemctl restart network安裝一些常用的軟件
yum -y install vim yum -y install net-tools關(guān)機
init 05. 克隆第一臺機器
- 現(xiàn)在我們已經(jīng)有了種子機器了,我們可以通過種子機器進行復制或者克隆出三臺機器
- 關(guān)閉linux種子機器,然后準備進行克隆
選擇創(chuàng)建完整克隆
6. 更改克隆機器的IP地址
-
三臺機器的ip地址分別是192.168.51.100、192.168.51.110、192.168.51.120
-
克隆出來的機器IP地址與種子的ip地址一樣,我們將第二臺機器的IP地址更改為192.168.51.110即可
-
啟動虛擬機,并通過root用戶,密碼123456來進行登錄,然后來更改linux機器的IP地址
- 依照上面步驟,接著克隆第三臺機器,并將第三臺機器的IP地址設置為
192.168.51.120
建議:三臺機器準備好后,打個快照,便于出錯后恢復
2. 安裝大數(shù)據(jù)集群前的環(huán)境準備
1. 三臺虛擬機關(guān)閉防火墻
三臺機器執(zhí)行以下命令(root用戶來執(zhí)行)
systemctl stop firewalld systemctl disable firewalld2. 三臺機器關(guān)閉selinux
三臺機器執(zhí)行以下命令關(guān)閉selinux
vi /etc/sysconfig/selinux SELINUX=disabled3. 三臺機器更改主機名
三臺機器執(zhí)行以下命令更改主機名
vi /etc/hostname第一臺機器更改內(nèi)容
node01.kaikeba.com第二臺機器更改內(nèi)容
node02.kaikeba.com第三臺機器更改內(nèi)容
node03.kaikeba.com4. 三臺機器做主機名與IP地址的映射
三臺機器執(zhí)行以下命令更改主機名與IP地址的映射
vi /etc/hosts 192.168.51.100 node01.kaikeba.com node01 192.168.51.110 node02.kaikeba.com node02 192.168.51.120 node03.kaikeba.com node035. 三臺機器時鐘同步
第一種同步方式:通過網(wǎng)絡進行時鐘同步
通過網(wǎng)絡連接外網(wǎng)進行時鐘同步,必須保證虛擬機連上外網(wǎng)
三臺機器都安裝ntpdate
yum -y install ntpdate阿里云時鐘同步服務器
ntpdate ntp4.aliyun.com三臺機器定時任務
crontab -e添加如下內(nèi)容
*/1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com;第二種同步方式:內(nèi)網(wǎng)某機器作為時鐘同步服務器
以下操作都在root用戶下面執(zhí)行,通過su root切換到root用戶
以192.168.51.100這臺服務器的時間為準進行時鐘同步
第一步:三臺機器確定是否安裝了ntpd的服務
三臺機器確認是否安裝ntpdate時鐘同步工具
rpm -qa | grep ntpdate如果沒有安裝,三臺機器執(zhí)行以下命令可以進行在線安裝
yum -y install ntpdate安裝后如下圖
node01安裝ntp
yum -y install ntp三臺機器,執(zhí)行以下命令,設置時區(qū)為中國上海時區(qū)
timedatectl set-timezone Asia/Shanghai第二步:node01啟動ntpd服務
我們需要啟動node01的ntpd服務,作為服務端,對外提供同步時間的服務
啟動ntpd的服務
#啟動ntpd服務 systemctl start ntpd#設置ntpd服務開機啟動 systemctl enable ntpd第三步:修改node01服務器配置
修改node01這臺服務器的時鐘同步配置,允許對外提供服務
vim /etc/ntp.conf添加以下兩行內(nèi)容
# 同意192.168.51.0網(wǎng)段(修改成自己的網(wǎng)段)的所有機器與node01同步時間 restrict 192.168.51.0 mask 255.255.255.0 nomodify notrap server 127.127.1.0注釋掉以下這四行內(nèi)容
#server 0.centos.pool.ntp.org iburst #server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org iburst #server 3.centos.pool.ntp.org iburst修改完成之后,重啟node01的ntpd服務
systemctl restart ntpd至此,ntpd的服務端已經(jīng)安裝配置完成,接下來配置客戶端與服務端進行同步
第四步:配置node02與node03同步node01的時間
客戶端node02與node03設置時區(qū)與node01保持一致Asia/Shanghai
node02與node03修改配置文件,保證每次時間寫入硬件時鐘
vim /etc/sysconfig/ntpdate SYNC_HWCLOCK=yesnode02與node03修改定時任務,定時與node01同步時間
[root@node03 hadoop]# crontab -e增加如下內(nèi)容
*/1 * * * * /usr/sbin/ntpdate node016. 三臺機器添加普通用戶
三臺linux服務器統(tǒng)一添加普通用戶hadoop,并給以sudo權(quán)限,用于以后所有的大數(shù)據(jù)軟件的安裝
(目的是避免用root用戶不小心執(zhí)行了一些不可逆的操作)
并統(tǒng)一設置普通用戶的密碼為 123456
useradd hadoop passwd hadoop普通用戶的密碼設置為123456
三臺機器為普通用戶添加sudo權(quán)限
visudo增加如下內(nèi)容
hadoop ALL=(ALL) ALL7. 三臺定義統(tǒng)一目錄
定義三臺linux服務器軟件壓縮包存放目錄,以及解壓后安裝目錄,三臺機器執(zhí)行以下命令,創(chuàng)建兩個文件夾,一個用于存放軟件壓縮包目錄,一個用于存放解壓后目錄
mkdir -p /kkb/soft # 軟件壓縮包存放目錄 mkdir -p /kkb/install # 軟件解壓后存放目錄 chown -R hadoop:hadoop /kkb # 將文件夾權(quán)限更改為hadoop用戶創(chuàng)建hadoop用戶之后,我們?nèi)_機器都通過hadoop用戶來進行操作,以后再也不需要使用root用戶來操作了
三臺機器通過 su hadoop命令來切換到hadoop用戶
su hadoop8. 三臺機器hadoop用戶免密碼登錄
重啟下3個linux虛擬機,讓主機名生效
第一步:三臺機器在hadoop用戶下執(zhí)行以下命令生成公鑰與私鑰
ssh-keygen -t rsa執(zhí)行上述命令之后,按三次Enter鍵即可生成了
第二步:三臺機器在hadoop用戶下,執(zhí)行命令拷貝公鑰到node01服務器
ssh-copy-id node01第三步:node01服務器將公鑰拷貝給node02與node03
node01在hadoop用戶下,執(zhí)行以下命令,將authorized_keys拷貝到node02與node03服務器
cd /home/hadoop/.ssh/ scp authorized_keys node02:$PWD scp authorized_keys node03:$PWD第四步:驗證;從任意節(jié)點是否能免秘鑰登陸其他節(jié)點;如node01免密登陸node02
ssh node029. 三臺機器關(guān)機重啟
三臺機器在hadoop用戶下執(zhí)行以下命令,實現(xiàn)關(guān)機重啟
sudo reboot -h now10. 三臺機器安裝jdk
- 使用hadoop用戶來重新連接三臺機器,然后使用hadoop用戶來安裝jdk軟件
- 上傳壓縮包到第一臺服務器的/kkb/soft下面,然后進行解壓,配置環(huán)境變量即可,三臺機器都依次安裝即可
讓修改馬上生效
source /etc/profile建議:三臺機器準備好后,打個快照,便于出錯后恢復
3. hadoop集群的安裝
- 安裝環(huán)境服務部署規(guī)劃
| HDFS | NameNode | ||
| HDFS | SecondaryNameNode | ||
| HDFS | DataNode | DataNode | DataNode |
| YARN | ResourceManager | ||
| YARN | NodeManager | NodeManager | NodeManager |
| 歷史日志服務器 | JobHistoryServer |
第一步:上傳壓縮包并解壓
- 將我們重新編譯之后支持snappy壓縮的hadoop包上傳到第一臺服務器并解壓;第一臺機器執(zhí)行以下命令
第二步:查看hadoop支持的壓縮方式以及本地庫
第一臺機器執(zhí)行以下命令
cd /kkb/install/hadoop-3.1.4/ bin/hadoop checknative如果出現(xiàn)openssl為false,那么所有機器在線安裝openssl即可,執(zhí)行以下命令,虛擬機聯(lián)網(wǎng)之后就可以在線進行安裝了
sudo yum -y install openssl-devel第三步:修改配置文件
下面是配置一些hadoop環(huán)境運行所需的一些文件,如果是實驗可跳過
修改hadoop-env.sh
第一臺機器執(zhí)行以下命令
cd /kkb/install/hadoop-3.1.4/etc/hadoop/ vim hadoop-env.sh export JAVA_HOME=/kkb/install/jdk1.8.0_141修改core-site.xml
第一臺機器執(zhí)行以下命令
vim core-site.xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://node01:8020</value> </property><property><name>hadoop.tmp.dir</name><value>/kkb/install/hadoop-3.1.4/hadoopDatas/tempDatas</value> </property> <!-- 緩沖區(qū)大小,實際工作中根據(jù)服務器性能動態(tài)調(diào)整;默認值4096 --> <property> <name>io.file.buffer.size</name> <value>4096</value> </property> <!-- 開啟hdfs的垃圾桶機制,刪除掉的數(shù)據(jù)可以從垃圾桶中回收,單位分鐘;默認值0 --><property> <name>fs.trash.interval</name> <value>10080</value> </property></configuration>修改hdfs-site.xml
第一臺機器執(zhí)行以下命令
vim hdfs-site.xml <configuration><!-- NameNode存儲元數(shù)據(jù)信息的路徑,實際工作中,一般先確定磁盤的掛載目錄,然后多個目錄用,進行分割 --> <!-- 集群動態(tài)上下線 <property> <name>dfs.hosts</name> <value>/kkb/install/hadoop-3.1.4/etc/hadoop/accept_host</value> </property> <property> <name>dfs.hosts.exclude</name> <value>/kkb/install/hadoop-3.1.4/etc/hadoop/deny_host</value></property>--><property><name>dfs.namenode.secondary.http-address</name> <value>node01:9868</value> </property> <property><name>dfs.namenode.http-address</name> <value>node01:9870</value> </property><!-- namenode保存fsimage的路徑 --><property> <name>dfs.namenode.name.dir</name> <value>file:///kkb/install/hadoop-3.1.4/hadoopDatas/namenodeDatas</value> </property> <!-- 定義dataNode數(shù)據(jù)存儲的節(jié)點位置,實際工作中,一般先確定磁盤的掛載目錄,然后多個目錄用,進行分割 --><property> <name>dfs.datanode.data.dir</name> <value>file:///kkb/install/hadoop-3.1.4/hadoopDatas/datanodeDatas</value> </property><!-- namenode保存editslog的目錄 --><property> <name>dfs.namenode.edits.dir</name><value>file:///kkb/install/hadoop-3.1.4/hadoopDatas/dfs/nn/edits</value></property><!-- secondarynamenode保存待合并的fsimage --><property> <name>dfs.namenode.checkpoint.dir</name> <value>file:///kkb/install/hadoop-3.1.4/hadoopDatas/dfs/snn/name</value> </property><!-- secondarynamenode保存待合并的editslog --><property><name>dfs.namenode.checkpoint.edits.dir</name> <value>file:///kkb/install/hadoop-3.1.4/hadoopDatas/dfs/nn/snn/edits</value></property> <property><name>dfs.replication</name><value>3</value></property><property><name>dfs.permissions.enabled</name><value>false</value></property><property><name>dfs.blocksize</name><value>134217728</value></property> </configuration>修改mapred-site.xml
第一臺機器執(zhí)行以下命令
vim mapred-site.xml <configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.job.ubertask.enable</name><value>true</value></property><property><name>mapreduce.jobhistory.address</name><value>node01:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>node01:19888</value></property><property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value></property><property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value></property><property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value></property> </configuration>修改yarn-site.xml
第一臺機器執(zhí)行以下命令
vim yarn-site.xml <configuration><property><name>yarn.resourcemanager.hostname</name><value>node01</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property> </configuration>修改workers文件
第一臺機器執(zhí)行以下命令
vim workers原內(nèi)容替換為
node01 node02 node03第四步:創(chuàng)建文件存放目錄
第一臺機器執(zhí)行以下命令
node01機器上面創(chuàng)建以下目錄
mkdir -p /kkb/install/hadoop-3.1.4/hadoopDatas/tempDatas mkdir -p /kkb/install/hadoop-3.1.4/hadoopDatas/namenodeDatas mkdir -p /kkb/install/hadoop-3.1.4/hadoopDatas/datanodeDatas mkdir -p /kkb/install/hadoop-3.1.4/hadoopDatas/dfs/nn/edits mkdir -p /kkb/install/hadoop-3.1.4/hadoopDatas/dfs/snn/name mkdir -p /kkb/install/hadoop-3.1.4/hadoopDatas/dfs/nn/snn/edits第五步:安裝包的分發(fā)scp與rsync
在linux當中,用于向遠程服務器拷貝文件或者文件夾可以使用scp或者rsync,這兩個命令功能類似都是向遠程服務器進行拷貝,只不過scp是全量拷貝,rsync可以做到增量拷貝,rsync的效率比scp更高一些
1. 通過scp直接拷貝
scp(secure copy)安全拷貝
可以通過scp進行不同服務器之間的文件或者文件夾的復制
使用語法
scp -r sourceFile username@host:destpath用法示例
scp -r hadoop-lzo-0.4.20.jar hadoop@node01:/kkb/node01執(zhí)行以下命令進行拷貝
cd /kkb/install/ scp -r hadoop-3.1.4/ node02:$PWD scp -r hadoop-3.1.4/ node03:$PWD2. 通過rsync來實現(xiàn)增量拷貝
rsync 遠程同步工具
rsync主要用于備份和鏡像。具有速度快、避免復制相同內(nèi)容和支持符號鏈接的優(yōu)點。
rsync和scp區(qū)別:用rsync做文件的復制要比scp的速度快,rsync只對差異文件做更新。scp是把所有文件都復制過去。
三臺機器執(zhí)行以下命令安裝rsync工具
sudo yum -y install rsync(1) 基本語法
node01執(zhí)行以下命令同步zk安裝包
rsync -av /kkb/soft/apache-zookeeper-3.6.2-bin.tar.gz node02:/kkb/soft/命令 選項參數(shù) 要拷貝的文件路徑/名稱 目的用戶@主機:目的路徑/名稱
選項參數(shù)說明
| -a | 歸檔拷貝 |
| -v | 顯示復制過程 |
(2)案例實操
(3)把node01機器上的/kkb/soft目錄同步到node02服務器的hadooop用戶下的/kkb/目錄
rsync -av /kkb/soft node02:/kkb/soft3. 通過rsync來封裝分發(fā)腳本
我們可以通過rsync這個命令工具來實現(xiàn)腳本的分發(fā),可以增量的將文件分發(fā)到我們所有其他的機器上面去
(1)需求:循環(huán)復制文件到所有節(jié)點的相同目錄下
(2)需求分析:
(a)rsync命令原始拷貝:
rsync -av /kkb/soft hadoop@node02:/kkb/soft(b)期望腳本使用方式:
xsync要同步的文件名稱
(c)說明:在/home/hadoop/bin這個目錄下存放的腳本,hadoop用戶可以在系統(tǒng)任何地方直接執(zhí)行。
(3)腳本實現(xiàn)
(a)在/home/hadoop目錄下創(chuàng)建bin目錄,并在bin目錄下xsync創(chuàng)建文件,文件內(nèi)容如下:
[hadoop@node01 ~]$ cd ~ [hadoop@node01 ~]$ mkdir bin [hadoop@node01 bin]$ cd /home/hadoop/bin [hadoop@node01 ~]$ touch xsync [hadoop@node01 ~]$ vim xsync在該文件中編寫如下代碼
#!/bin/bash #1 獲取輸入?yún)?shù)個數(shù),如果沒有參數(shù),直接退出 pcount=$# if ((pcount==0)); then echo no args; exit; fi#2 獲取文件名稱 p1=$1 fname=`basename $p1`echo $fname#3 獲取上級目錄到絕對路徑 pdir=`cd -P $(dirname $p1); pwd` echo $pdir#4 獲取當前用戶名稱 user=`whoami`#5 循環(huán) for((host=1; host<4; host++)); doecho ------------------- node0$host --------------rsync -av $pdir/$fname $user@node0$host:$pdir done(b)修改腳本 xsync 具有執(zhí)行權(quán)限
[hadoop@node01 bin]$ cd ~/bin/[hadoop@node01 bin]$ chmod 777 xsync(c)調(diào)用腳本形式:xsync 文件名稱
[hadoop@node01 bin]$ xsync /home/hadoop/bin/注意:如果將xsync放到/home/hadoop/bin目錄下仍然不能實現(xiàn)全局使用,可以將xsync移動到/usr/local/bin目錄下
第六步:配置hadoop的環(huán)境變量
三臺機器都要進行配置hadoop的環(huán)境變量
三臺機器執(zhí)行以下命令
sudo vim /etc/profile export HADOOP_HOME=/kkb/install/hadoop-3.1.4 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin配置完成之后生效
source /etc/profile第七步:格式化集群
-
要啟動 Hadoop 集群,需要啟動 HDFS 和 YARN 兩個集群。
-
注意:首次啟動HDFS時,必須對其進行格式化操作。本質(zhì)上是一些清理和準備工作,因為此時的 HDFS 在物理上還是不存在的。格式化操作只有在首次啟動的時候需要,以后再也不需要了
-
node01執(zhí)行一遍即可
- 或者
- 下圖高亮表示格式化成功;
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-4pcqb4hg-1621041358677)(assets/image-20201019211525368.png)]
第八步:集群啟動
-
啟動集群有兩種方式:
-
①腳本一鍵啟動;
-
②單個進程逐個啟動
1. 啟動HDFS、YARN、Historyserver
-
如果配置了 etc/hadoop/workers 和 ssh 免密登錄,則可以使用程序腳本啟動所有Hadoop 兩個集群的相關(guān)進程,在主節(jié)點所設定的機器上執(zhí)行。
-
啟動集群
-
主節(jié)點node01節(jié)點上執(zhí)行以下命令
- 停止集群(主節(jié)點node01節(jié)點上執(zhí)行):
2. 單個進程逐個啟動
# 在主節(jié)點上使用以下命令啟動 HDFS NameNode: # 已過時 hadoop-daemon.sh start namenode hdfs --daemon start namenode# 在主節(jié)點上使用以下命令啟動 HDFS SecondaryNamenode: # 已過時 hadoop-daemon.sh start secondarynamenode hdfs --daemon start secondarynamenode# 在每個從節(jié)點上使用以下命令啟動 HDFS DataNode: # 已過時 hadoop-daemon.sh start datanode hdfs --daemon start datanode# 在主節(jié)點上使用以下命令啟動 YARN ResourceManager: # 已過時 yarn-daemon.sh start resourcemanager yarn --daemon start resourcemanager# 在每個從節(jié)點上使用以下命令啟動 YARN nodemanager: # 已過時 yarn-daemon.sh start nodemanager yarn --daemon start nodemanager以上腳本位于$HADOOP_HOME/sbin/目錄下。如果想要停止某個節(jié)點上某個角色,只需要把命令中的start 改為stop 即可。3. 一鍵啟動hadoop集群的腳本
- 為了便于一鍵啟動hadoop集群,我們可以編寫shell腳本
- 在node01服務器的/home/hadoop/bin目錄下創(chuàng)建腳本
- 內(nèi)容如下
- 修改腳本權(quán)限
第九步:驗證集群是否搭建成功
1. 訪問web ui界面
- hdfs集群訪問地址
http://192.168.51.100:9870/
- yarn集群訪問地址
http://192.168.51.100:8088
- jobhistory訪問地址:
http://192.168.51.100:19888
- 若將linux的/etc/hosts文件的如下內(nèi)容,添加到本機的hosts文件中(ip地址根據(jù)自己的實際情況進行修改)
-
windows的hosts文件路徑是C:\Windows\System32\drivers\etc\hosts
-
mac的hosts文件是/etc/hosts
-
那么,上邊的web ui界面訪問地址可以分別寫程
-
hdfs集群訪問地址
http://node01:9870/ -
yarn集群訪問地址
http://node01:8088 -
jobhistory訪問地址:
http://node01:19888
2. 所有機器查看進程腳本
- 我們也可以通過jps在每臺機器上面查看進程名稱,為了方便我們以后查看進程,我們可以通過腳本一鍵查看所有機器的進程
- 在node01服務器的/home/hadoop/bin目錄下創(chuàng)建文件xcall
- 添加以下內(nèi)容
- 然后一鍵查看進程并分發(fā)該腳本
- 各節(jié)點應該啟動的hadoop進程如下圖
3. 運行一個mr例子
- 任一節(jié)點運行pi例子
- 最后計算出pi的近似值
提醒:如果要關(guān)閉電腦時,清一定要按照以下順序操作,否則集群可能會出問題
-
關(guān)閉hadoop集群
-
關(guān)閉虛擬機
-
關(guān)閉電腦
總結(jié)
以上是生活随笔為你收集整理的【大数据】Hadoop环境搭建图文教程(VM安装教程+Linux环境下配置+搭建三节点的Hadoop集群)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 今天星期六
- 下一篇: 给大家推荐一个优质Linux内核技术公众