目標: 搭建基於CDH的分佈式集羣
安裝環境服務部署計劃
準備工作
1.關閉防火牆/etc/init.d/iptables stop
chkconfig iptables off
2.關閉selinux
3.修改主機名 vi /etc/sysconfig/network
主節點爲: node01
從節點分別爲: node02 node03
4.ssh無密碼拷貝數據
特別說明(在主節點無密碼訪問到從節點)
ssh-keygen
ssh-copy-id 192.168.100.201
ssh-copy-id 192.168.100.202
ssh-copy-id 192.168.100.203
5.設置主機名和IP的對應
vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.201 node01 (使用自己的IP)
192.168.100.202 node02
192.168.100.203 node03
6.jdk1.8 安裝
文章目錄
第一步: 上傳壓縮包並解壓
- 創建文件夾
mkdir -p /export/servers
mkdir -p /export/soft
- 上傳壓縮包到 mkdir -p /export/soft 目錄下
- 將 jdk1.8解壓至 /export/servers 目錄下
- 並設置 jdk1.8的環境變量
vi /etc/profile.d/java.sh
export JAVA_HOME=/export/servers/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
- 遠程發送jdk配置文件到從節點上
scp -r /etc/profile.d/java.sh node02:/etc/profile.d/
scp -r /etc/profile.d/java.sh node03:/etc/profile.d/
- 改hadoop安裝包的名字 (可用自己下載的安裝包,改成對應的名字即可)
mv hadoop-2.6.0-cdh5.14.0-自己編譯後的版本.tar.gz hadoop-2.6.0-cdh5.14.0.tar.gz
- 解壓
tar -zxvf /export/soft/hadoop-2.6.0-cdh5.14.0.tar.gz -C /export/servers/
第二步: 查看Hadoop支持的壓縮方式以及本地庫
第一臺機器執行以下命令
cd /export/servers/hadoop-2.6.0-cdh5.14.0
bin/hadoop checknative
如果出現openssl爲false
,那麼所有機器在線安裝openssl即可,執行以下命令,虛擬機聯網之後就可以在線進行安裝了
yum -y install openssl-devel
第三步:修改配置文件
修改core-site.xml
第一臺機器執行以下命令
cd /export/servers/hadoop-2.6.0-cdh5.14.0/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>/export/servers/hadoop-2.6.0-cdh5.14.0/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>
注意:在文件中一定要對應好自己的主機名稱和hadoop所在路徑
修改hdfs-site.xml
第一臺機器執行以下命令
cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
vim hdfs-site.xml
<configuration>
<!-- NameNode存儲元數據信息的路徑,實際工作中,一般先確定磁盤的掛載目錄,然後多個目錄用,進行分割 -->
<!-- 集羣動態上下線
<property>
<name>dfs.hosts</name>
<value>/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/accept_host</value>
</property>
<property>
<name>dfs.hosts.exclude</name>
<value>/export/servers/hadoop-2.6.0-cdh5.14.0/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:///export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/namenodeDatas</value>
</property>
<!-- 定義dataNode數據存儲的節點位置,實際工作中,一般先確定磁盤的掛載目錄,然後多個目錄用,進行分割 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/datanodeDatas</value>
</property>
<property>
<name>dfs.namenode.edits.dir</name>
<value>file:///export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/edits</value>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>file:///export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/snn/name</value>
</property>
<property>
<name>dfs.namenode.checkpoint.edits.dir</name>
<value>file:///export/servers/hadoop-2.6.0-cdh5.14.0/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所在路徑
修改Hadoop-env.sh
第一臺機器執行以下命令
cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
vim hadoop-env.sh
export JAVA_HOME=/export/servers/jdk1.8.0_144
修改mapred-site.xml
第一臺機器執行以下命令
cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
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 /export/servers/hadoop-2.6.0-cdh5.14.0/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 /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
vim slaves
node01
node02
node03
第四步: 創建文件存放目錄
第一臺機器執行以下命令
node01機器上面創建以下目錄
mkdir -p /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/tempDatas
mkdir -p /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/namenodeDatas
mkdir -p /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/datanodeDatas
mkdir -p /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/edits
mkdir -p /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/snn/name
mkdir -p /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/snn/edits
第五步: 安裝包的分發
第一臺機器執行以下命令
cd /export/servers/
scp -r hadoop-2.6.0-cdh5.14.0/ node02:$PWD
scp -r hadoop-2.6.0-cdh5.14.0/ node03:$PWD
第六步: 配置Hadoop的環境變量
方式一 :
三臺機器都要進行配置Hadoop的環境變量
三臺機器執行以下命令
vim /etc/profile.d/hadoop.sh
export HADOOP_HOME=/export/servers/hadoop-2.6.0-cdh5.14.0
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
方式二 :
主節點配置Hadoop的環境變量
vim /etc/profile.d/hadoop.sh
export HADOOP_HOME=/export/servers/hadoop-2.6.0-cdh5.14.0
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
通過遠程發送的方式給從節點
scp -r /etc/profile.d/hadoop.sh node02:/etc/profile.d/
scp -r /etc/profile.d/hadoop.sh node03:/etc/profile.d/
配置完成之後生效
source /etc/profile
第七步: 集羣啓動
要啓動 Hadoop 集羣,需要啓動 HDFS 和 YARN 兩個集羣。
注意:首次啓動HDFS時,必須對其進行格式化操作。本質上是一些清理和準備工作,因爲此時的 HDFS 在物理上還是不存在的。
bin/hdfs namenode
腳本一鍵啓動HDFS、Yarn
node01節點上執行以下命令
第一臺機器執行以下命令
cd /export/servers/hadoop-2.6.0-cdh5.14.0/
sbin/start-dfs.sh
sbin/start-yarn.sh
停止集羣:沒事兒不要去停止集羣
sbin/stop-dfs.sh
sbin/stop-yarn.sh
腳本一鍵啓動所有
一鍵啓動集羣
sbin/start-all.sh
一鍵關閉集羣
sbin/stop-all.sh
第八步: 集羣啓動驗證
主節點 jps
從節點jps
第九步: 瀏覽器查看啓動頁面
hdfs集羣訪問地址: http://192.168.100.100:50070/dfshealth.html#tab-overview (使用自己ip地址訪問)
yarn集羣訪問地址: http://192.168.100.100:8088/cluster (使用自己ip地址訪問)