一、前序
在開始全分布式叢集搭建之前,首先應該安裝好三台虛拟機。。。。如果電腦比較卡,建議多加8G記憶體條。
我這裡是Centos7版本的。
hadoop編譯後的安裝包:
連結:https://pan.baidu.com/s/1xythD1ESNBlPfAW9Pi_3Cw
提取碼:7lct
二、大資料安裝前期準備
1、三台機器在root使用者下關閉防火牆
systemctl stop firewalld
systemctl disable firewalld
2、三台機器執行以下指令關閉selinux
打開檔案
vi /etc/selinux/config
修改檔案(修改下一行)
SELINUX=disabled
3、三台電腦修改電腦主機名
vi /etc/hostname
第一台機器更改内容:node01
第二台機器更改内容:node02
第三台機器更改内容:node03
4、三台機器做主機名與IP位址的映射
vi /etc/hosts
然後增加以下内容
192.168.52.100 node01
192.168.52.110 node02
192.168.52.120 node03
5、重新開機三台虛拟機
reboot -h now
6、三台電腦添加普通使用者并給普通使用者添加sudo權限
在root使用者下執行:第一行添加使用者,第二行設定密碼
useradd hadoop
passwd hadoop
添加sudo權限
打開檔案
visudo
給hadoop使用者sudo權限
hadoop ALL=(ALL) ALL
7、三台機器同一安裝目錄
mkdir -p /kkb/soft # 軟體壓縮包存放目錄
mkdir -p /kkb/install # 軟體解壓後存放目錄
chown -R hadoop:hadoop /kkb # 将檔案夾權限更改為hadoop使用者
然後, 三台機器通過 su hadoop指令來切換到hadoop使用者
8、設定免密登陸
第一步:三台機器在hadoop使用者下執行以下指令生成公鑰與私鑰
三台機器在hadoop使用者下執行以下指令,然後生成公鑰與私鑰
ssh-keygen -t rsa
執行上述指令之後,按三次Enter鍵即可生成了,生成後會發現有 .ssh目錄,用 ll -a 指令可以檢視
第二步:三台機器拷貝公鑰到node01伺服器上面去
三台機器在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
然後關虛拟機重新開機。
三、JDK安裝
使用hadoop使用者來重新連接配接三台機器,然後使用hadoop使用者來安裝jdk軟體
上傳壓縮包到第一台伺服器的/kkb/soft下面,然後進行解壓,配置環境變量即可,三台機器都依次安裝即可
cd /kkb/soft/
tar -zxf 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=:$JAVA_HOME/bin:$PATH
然後 執行 source /etc/profile 指令讓修改生效
四、Hadoop叢集安裝
1、安裝環境服務部署規劃
伺服器IP | node01 | node02 | node03 |
HDFS | NameNode | ||
HDFS | SecondaryNameNode | ||
HDFS | DataNode | DataNode | DataNode |
YARN | ResourceManager | ||
YARN | NodeManager | NodeManager | NodeManager |
曆史日志伺服器 | JobHistoryServer |
2、上傳安裝包并解壓(這個安裝包是編譯後的)
cd /kkb/soft/
tar -zxvf hadoop-2.6.0-cdh5.14.2.tar.gz -C /kkb/install
3、檢視hadoop支援的壓縮方式以及本地庫
第一台機器執行以下指令
cd /kkb/install/hadoop-2.6.0-cdh5.14.2
bin/hadoop checknative
如果出現openssl為false,那麼所有機器線上安裝openssl即可,執行以下指令,虛拟機聯網之後就可以線上進行安裝了
sudo yum -y install openssl-devel
4、修改配置檔案
core-site.xml hdfs-site.xml hadoop-env.sh mapred-site.xml yarn-site.xml slaves
一、修改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
<configuration>
<!-- NameNode存儲中繼資料資訊的路徑,實際工作中,一般先确定磁盤的挂載目錄,然後多個目錄用,進行分割 -->
<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>2</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
</property>
</configuration>
三、修改hadoop-env.sh
export JAVA_HOME=/kkb/install/jdk1.8.0_141
四、修改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
<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
node01
node02
node03
5、添加目錄(這些目錄都是在配置檔案 hdfs-site.xml 中涉及到的)
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
6、分發配置檔案
在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
7、配置hadoop環境變量
三台機器都要進行配置hadoop的環境變量
三台機器執行以下指令
sudo vim /etc/profile
然後添加一下内容
export HADOOP_HOME=/kkb/install/hadoop-2.6.0-cdh5.14.2
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
配置完成之後生效 source /etc/profile
8、格式化叢集
注意:首次啟動HDFS時,必須對其進行格式化操作。本質上是一些清理和準備工作,因為此時的 HDFS 在實體上還是不存在的。
格式化操作隻有在首次啟動的時候需要,以後再也不需要了
hdfs namenode -format 或者 hadoop namenode –format
9、叢集啟動
依次執行
start-dfs.sh
start-yarn.sh
mr-jobhistory-daemon.sh start historyserver
10、關閉叢集
依次執行
stop-dfs.sh
stop-yarn.sh
mr-jobhistory-daemon.sh stop historyserver
11、課外知識
本機hosts檔案所在位址,這個位址可以配置連接配接虛拟機的ip
C:\Windows\System32\drivers\etc
多次格式化可能導緻 datanode和namenode的clusterID不一樣,導緻datanode不能啟動,可以修改datanode的ID
使其和namenode的ID一樣
叢集中 namenode clusterID 所在的位置
/kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/nn/edits/current/VERSION
叢集中 datanode clusterID 所在的位置
/kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/datanodeDatas/current/VERSION
12 啟動後的web界面
hdfs叢集通路位址
http://192.168.52.100:50070/dfshealth.html#tab-overview
yarn叢集通路位址
http://192.168.52.100:8088/cluster
jobhistory通路位址:
http://192.168.52.100:19888/jobhistory