大資料筆記02--HDFS的搭建
阿新 • • 發佈:2018-12-15
HDFS搭建
三種模式
1.偽分散式:只有一臺伺服器,執行所有節點(僅用於測試學習) 2.完全分散式:各個節點分佈在不同伺服器上,資源使用不衝突 3.高可用的完全分散式:提高HDFS的可用性
偽分散式
僅使用hadoop01一臺伺服器
搭建步驟
- 配置免密登入 hadoop01->hadoop01 在~/.ssh目錄下
生成私鑰
ssh-keygen -t rsa
將公鑰傳給自己
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
- 配置JDK 在/etc/profile寫入
export JAVA_HOME=/opt/software/jdk/jdk1.8.0_151
export PATH=\$PATH:$JAVA_HOME/bin
- 修改hdfs-site.xml配置檔案
<property>
<-- 副本數量 預設3 -->
<name>dfs.replication</name>
<value>1</value>
</property>
<-- SNN節點地址 偽分散式配置在當前地址-->
<property>
<name>dfs.namenode.secondary.http-address</ name>
<value>hadoop01:50090</value>
</property>
- 修改core-site.xml配置檔案
<property>
<-- 字首 -->
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<property>
<-- 儲存目錄 沒有則建立 -->
<name>hadoop.tmp.dir</ name>
<value>/var/abc/hadoop/local</value>
</property>
- 修改slaves配置檔案 即從節點名,偽分散式從節點為自己,所以寫
hadoop01
- 配置hadoop環境變數 在使用者配置~/.bashrc內新增
export HADOOP_HOME=/opt/hadoop/hadoop-2.6.5
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
- 格式化NameNode(建立目錄以及檔案)
hdfs namenode -format
- 啟動HDFS
start-dfs.sh
遇到的問題
- 找不到JAVA_HOME --> 在使用者配置檔案~/.bashrc中也配置JAVA_HOME
- 找不到hadoop01的錯誤 --> 未修改/etc/hosts,寫入ip+主機名
- 初始化時找不到namenode主類 --> 檢查命令是否正確,或重新解壓檔案
完全分散式
node01 NameNode node02 SecondaryNameNode和DataNode node03 DataNode node04 DataNode
搭建步驟
- 時間同步 在各個節點安裝ntp命令
yum install ntp
查詢最新的時間伺服器
ntp1.aliyun.com
同步時間
ntpdate ntp1.aliyun.com
- 配置免密登入 node01->node01 | node01->node02 | node01->node03 | node01->node04
所有節點執行
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
在node01節點執行,將node01的公鑰加入到其他節點的白名單中
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
- 所有節點配置JDK 略
- 修改hdfs-site.xml配置檔案
<property>
<-- 副本數量 預設3 -->
<name>dfs.replication</name>
<value>3</value>
</property>
<-- SNN節點地址 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node02:50090</value>
</property>
- 修改core-site.xml配置檔案
<property>
<-- 字首 -->
<name>fs.defaultFS</name>
<value>hdfs://node01:9000</value>
</property>
<property>
<-- 儲存目錄 沒有則建立 -->
<name>hadoop.tmp.dir</name>
<value>/var/abc/hadoop/cluster</value>
</property>
- hadoop環境變數 略
- 修改slaves配置檔案 修改為
node02
node03
node04
- 將配置好的安裝包分發到其他節點上 在hadoop的上級目錄
scp -r hadoop-2.6.5 [email protected]:/opt/software/hadoop/
scp -r hadoop-2.6.5 [email protected]:/opt/software/hadoop/
scp -r hadoop-2.6.5 [email protected]:/opt/software/hadoop/
或簡寫為
scp -r hadoop-2.6.5 [email protected]:`pwd`
- 將所有的HDFS相關的程序關閉 格式化NameNode(建立目錄以及檔案) 在node01節點執行
hdfs namenode -format
- 啟動HDFS
start-dfs.sh
遇到的問題
- 分發公鑰時找不到節點 --> 未配置hosts
- 啟動後找不到存活節點 --> 所有節點都應該配置hosts
- 外部無法訪問hdfs --> 關閉防火牆
臨時關閉
service iptables stop
永久關閉
chkconfig iptables off
高可用的完全分散式
*虛擬機器的配置
- 檢視虛擬機器ip
ifconfig
- 根據查詢到的ip修改ipcfg檔案
cd /etc/sysconfig/network-scripts/
vim ifcfg-eth0
修改
ONBOOT=yes
BOOTPROTO=none
新增
IPADDR=192.168.180.128 (查詢到的ip)
PREFIX=24
GATEWAY=192.168.180.2 (根據ip修改)
DNS1=8.8.8.8
- 複製虛擬機器,並重新執行1和2 (可將JAVA_HOME和HADOOP_HOME一併配置好後再複製)
- 修改hostname
cd /etc/sysconfig/
vim network
- 修改hosts
vim /etc/hosts