文章目錄
- 前言
- 1. 安裝大資料集群前的環境準備
- 3. hadoop集群的安裝
- 2. hadoop集群的安裝
- 第一步:上傳壓縮包并解壓
- 第二步:查看hadoop支持的壓縮方式以及本地庫
- 第三步:修改組態檔
- 修改hadoop-env.sh
- 修改core-site.xml
- 修改hdfs-site.xml
- 修改mapred-site.xml
- 修改yarn-site.xml
- 修改slaves檔案
- 第四步:創建檔案存放目錄
- 第五步:安裝包的分發scp
- 第六步:配置hadoop的環境變數
- 第七步:集群啟動
- 1. 格式化集群
- 2. 腳本一鍵啟動
- 第八步:瀏覽器查看啟動頁面
- 1. 所有機器查看行程腳本
- 總結
前言
接上一篇大資料服務器環境準備,
1. 安裝大資料集群前的環境準備
- 三臺虛擬機關閉防火墻
三臺機器執行以下命令(root用戶來執行)
systemctl stop firewalld
systemctl disable firewalld
- 三臺機器關閉selinux
三臺機器執行以下命令關閉selinux
vi /etc/sysconfig/selinux
SELINUX=disabled
- 三臺機器更改主機名
三臺機器執行以下命令更改主機名
vi /etc/hostname
第一臺機器更改內容
node01
第二臺機器更改內容
node02
第三臺機器更改內容
node03
- 三臺機器做主機名與IP地址的映射
三臺機器執行以下命令更改主機名與IP地址的映射
vi /etc/hosts
192.168.52.100 node01
192.168.52.110 node02
192.168.52.120 node03
- 三臺機器時鐘同步
通過網路連接外網進行時鐘同步,必須保證虛擬機連上外網
三臺機器都安裝ntpdate
yum -y install ntpdate
阿里云時鐘同步服務器
ntpdate ntp4.aliyun.com
三臺機器定時任務
crontab -e
添加如下內容
*/1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com;
- 三臺機器添加普通用戶
三臺linux服務器統一添加普通用戶hadoop,并給以sudo權限,用于以后所有的大資料軟體的安裝,并統一設定普通用戶的密碼為 123456
useradd hadoop
passwd hadoop
普通用戶的密碼設定為123456
三臺機器為普通用戶添加sudo權限
visudo
hadoop ALL=(ALL) ALL
- 三臺定義統一目錄
定義三臺linux服務器軟體壓縮包存放目錄,以及解壓后安裝目錄,三臺機器執行以下命令,創建兩個檔案夾,一個用于存放軟體壓縮包目錄,一個用于存放解壓后目錄
mkdir -p /kkb/soft # 軟體壓縮包存放目錄
mkdir -p /kkb/install # 軟體解壓后存放目錄
chown -R hadoop:hadoop /kkb # 將檔案夾權限更改為hadoop用戶
創建hadoop用戶之后,我們三臺機器都通過hadoop用戶來進行操作,以后再也不需要使用root用戶來操作了
三臺機器通過 su hadoop命令來切換到hadoop用戶
su hadoop
- 三臺機器hadoop用戶免密碼登錄
第一步:三臺機器在hadoop用戶下執行以下命令生成公鑰與私鑰
ssh-keygen -t rsa
執行上述命令之后,按三次Enter鍵即可生成了
第二步:三臺機器在hadoop用戶下,執行命令拷貝公鑰到node01服務器
ssh-copy-id node01
第三步:node01服務器將公鑰拷貝給node02與node03
node01在hadoop用戶下,執行以下命令,將authorized_keys拷貝到node02與node03服務器
cd /home/hadoop/.ssh/
scp authorized_keys node02:$PWD
scp authorized_keys node03:$PWD
第四步:驗證;從任意節點是否能免秘鑰登陸其他節點;如node01免密登陸node02
ssh node02
- 三臺機器關機重啟
三臺機器在hadoop用戶下執行以下命令,實作關機重啟
sudo reboot -h now
- 三臺機器安裝jdk
-
使用hadoop用戶來重新連接三臺機器,然后使用hadoop用戶來安裝jdk軟體
-
自行下載jdk8的壓縮包,然后上傳壓縮包到第一臺服務器的/kkb/soft下面,然后進行解壓,配置環境變數即可,三臺機器都依次安裝即可
cd /kkb/soft/
tar -xzvf jdk-8u141-linux-x64.tar.gz -C /kkb/install/
sudo vim /etc/profile
#添加以下配置內容,配置jdk環境變數
export JAVA_HOME=/kkb/install/jdk1.8.0_141
export PATH=$PATH:$JAVA_HOME/bin
讓修改馬上生效
source /etc/profile
建議:三臺機器準備好后,打個快照,便于出錯后恢復
至此三臺機器已完全打通,jdk也已經安裝完成,接下來就可以開始安裝hadoop和zookeeper的集群了,
3. hadoop集群的安裝
這里又一個Hadoop安裝包需要自己編譯的問題需要注意下:
由于CDH的所有安裝包版本都給出了對應的軟體版本,一般情況下是不需要自己進行編譯的,但是由于cdh給出的hadoop的安裝包沒有提供帶C程式訪問的介面,所以我們在使用本地庫(本地庫可以用來做壓縮,以及支持C程式等等)的時候就會出問題,
注意:不建議自己編譯hadoop原始碼,直接使用提供的包“hadoop-2.6.0-cdh5.14.2_after_compile.tar.gz”安裝部署集群即可,或者自己找資源下載,
編譯沒有什么技巧,主要跟網路好壞有關,
鏈接: https://pan.baidu.com/s/1V_Y6uoNXDm80X_UnlasX3g 密碼: 3t7m
2. hadoop集群的安裝
安裝環境服務部署規劃
| 服務器IP | 192.168.52.100 | 192.168.52.110 | 192.168.52.120 |
|---|---|---|---|
| HDFS | NameNode | ||
| HDFS | SecondaryNameNode | ||
| HDFS | DataNode | DataNode | DataNode |
| YARN | ResourceManager | ||
| YARN | NodeManager | NodeManager | NodeManager |
| 歷史日志服務器 | JobHistoryServer |
第一步:上傳壓縮包并解壓
- 將我們重新編譯之后支持snappy壓縮的hadoop包上傳到第一臺服務器并解壓;第一臺機器執行以下命令
cd /kkb/soft/
tar -xzvf hadoop-2.6.0-cdh5.14.2_after_compile.tar.gz -C /kkb/install/
第二步:查看hadoop支持的壓縮方式以及本地庫
第一臺機器執行以下命令
cd /kkb/install/hadoop-2.6.0-cdh5.14.2
bin/hadoop checknative
如果出現openssl為false,那么所有機器在線安裝openssl即可,執行以下命令,虛擬機聯網之后就可以在線進行安裝了
sudo yum -y install openssl-devel
第三步:修改組態檔
修改hadoop-env.sh
第一臺機器執行以下命令
cd /kkb/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop
vim hadoop-env.sh
加入以下內容
export JAVA_HOME=/kkb/install/jdk1.8.0_141
修改core-site.xml
第一臺機器執行以下命令
cd /kkb/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop
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-2.6.0-cdh5.14.2/hadoopDatas/tempDatas</value>
</property>
<!-- 緩沖區大小,實際作業中根據服務器性能動態調整 -->
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
<!-- 開啟hdfs的垃圾桶機制,洗掉掉的資料可以從垃圾桶中回收,單位分鐘 -->
<property>
<name>fs.trash.interval</name>
<value>10080</value>
</property>
</configuration>
修改hdfs-site.xml
第一臺機器執行以下命令
cd /kkb/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop
vim hdfs-site.xml
<configuration>
<!-- NameNode存盤元資料資訊的路徑,實際作業中,一般先確定磁盤的掛載目錄,然后多個目錄用,進行分割 -->
<!-- 集群動態上下線
<property>
<name>dfs.hosts</name>
<value>/kkb/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop/accept_host</value>
</property>
<property>
<name>dfs.hosts.exclude</name>
<value>/kkb/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop/deny_host</value>
</property>
-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node01:50090</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>node01:50070</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/namenodeDatas</value>
</property>
<!-- 定義dataNode資料存盤的節點位置,實際作業中,一般先確定磁盤的掛載目錄,然后多個目錄用,進行分割 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/datanodeDatas</value>
</property>
<property>
<name>dfs.namenode.edits.dir</name>
<value>file:///kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/nn/edits</value>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>file:///kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/snn/name</value>
</property>
<property>
<name>dfs.namenode.checkpoint.edits.dir</name>
<value>file:///kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/nn/snn/edits</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
</property>
</configuration>
修改mapred-site.xml
第一臺機器執行以下命令
cd /kkb/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop
mv mapred-site.xml.template mapred-site.xml
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>
</configuration>
修改yarn-site.xml
第一臺機器執行以下命令
cd /kkb/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop
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>
修改slaves檔案
第一臺機器執行以下命令
cd /kkb/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop
vim slaves
原內容替換為
node01
node02
node03
第四步:創建檔案存放目錄
第一臺機器執行以下命令
node01機器上面創建以下目錄
mkdir -p /kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/tempDatas
mkdir -p /kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/namenodeDatas
mkdir -p /kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/datanodeDatas
mkdir -p /kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/nn/edits
mkdir -p /kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/snn/name
mkdir -p /kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/nn/snn/edits
第五步:安裝包的分發scp
scp(secure copy)安全拷貝
可以通過scp進行不同服務器之間的檔案或者檔案夾的復制
使用語法
scp -r sourceFile username@host:destpath
node01執行以下命令進行拷貝
cd /kkb/install/
scp -r hadoop-2.6.0-cdh5.14.2/ node02:$PWD
scp -r hadoop-2.6.0-cdh5.14.2/ node03:$PWD
第六步:配置hadoop的環境變數
三臺機器都要進行配置hadoop的環境變數
三臺機器執行以下命令
sudo vim /etc/profile
export HADOOP_HOME=/kkb/install/hadoop-2.6.0-cdh5.14.2
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
配置完成之后生效
source /etc/profile
第七步:集群啟動
1. 格式化集群
要啟動 Hadoop 集群,需要啟動 HDFS 和 YARN 兩個集群,
注意:首次啟動HDFS時,必須對其進行格式化操作,本質上是一些清理和準備作業,因為此時的 HDFS 在物理上還是不存在的,格式化操作只有在首次啟動的時候需要,以后再也不需要了
node01執行一遍即可
hdfs namenode -format
下圖高亮表示格式化成功;

啟動集群有兩種方式:①腳本一鍵啟動;②單個行程逐個啟動
2. 腳本一鍵啟動
如果配置了 etc/hadoop/slaves 和 ssh 免密登錄,則可以使用程式腳本啟動所有Hadoop 兩個集群的相關行程,在主節點所設定的機器上執行,
啟動集群
node01節點上執行以下命令
第一臺機器執行以下命令
start-dfs.sh
start-yarn.sh
mr-jobhistory-daemon.sh start historyserver
停止集群:
stop-dfs.sh
stop-yarn.sh
- 單個行程逐個啟動
在主節點上使用以下命令啟動 HDFS NameNode:
hadoop-daemon.sh start namenode
在每個從節點上使用以下命令啟動 HDFS DataNode:
hadoop-daemon.sh start datanode
在主節點上使用以下命令啟動 YARN ResourceManager:
yarn-daemon.sh start resourcemanager
在每個從節點上使用以下命令啟動 YARN nodemanager:
yarn-daemon.sh start nodemanager
以上腳本位于$HADOOP_HOME/sbin/目錄下,如果想要停止某個節點上某個角色,只需要把命令中的start 改為stop 即可,
第八步:瀏覽器查看啟動頁面
hdfs集群訪問地址
http://192.168.52.100:50070/
yarn集群訪問地址
http://192.168.52.100:8088
jobhistory訪問地址:
http://192.168.52.100:19888
我們也可以通過jps在每臺機器上面查看行程名稱,為了方便我們以后查看行程,我們可以通過腳本一鍵查看所有機器的行程
1. 所有機器查看行程腳本
在node01服務器的/home/hadoop/bin目錄下創建檔案xcall
[hadoop@node01 bin]$ cd ~/bin/
[hadoop@node01 bin]$ vim xcall
添加以下內容
#!/bin/bash
params=$@
for (( i=1 ; i <= 3 ; i = $i + 1 )) ; do
echo ============= node0$i $params =============
ssh node0$i "source /etc/profile;$params"
done
然后一鍵查看行程并分發該腳本
chmod 777 /home/hadoop/bin/xcall
cd /home/hadoop/bin
scp -r xcall node02:$PWD
scp -r xcall node03:$PWD
查看各節點的hadoop行程
xcall jps

提醒:如果要關閉電腦時,清一定要按照以下順序操作,否則集群可能會出問題
-
關閉hadoop集群
-
關閉虛擬機
-
關閉電腦
總結
以上就是hadoop集群的完整部署方法,歡迎關注我的公眾號,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/265368.html
標籤:其他
下一篇:解決echarts地圖geoJson報錯問題(“echarts.min.js:45 Uncaught Error: Invalid geoJson format Cannot read prope”)
