1. 程式人生 > >大資料筆記02--HDFS的搭建

大資料筆記02--HDFS的搭建

HDFS搭建

三種模式

1.偽分散式:只有一臺伺服器,執行所有節點(僅用於測試學習) 2.完全分散式:各個節點分佈在不同伺服器上,資源使用不衝突 3.高可用的完全分散式:提高HDFS的可用性

偽分散式

僅使用hadoop01一臺伺服器

搭建步驟

  1. 配置免密登入 hadoop01->hadoop01 在~/.ssh目錄下
生成私鑰
	
ssh-keygen -t rsa
	
將公鑰傳給自己
	
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
  1. 配置JDK 在/etc/profile寫入
export JAVA_HOME=/opt/software/jdk/jdk1.8.0_151
export PATH=\$PATH:$JAVA_HOME/bin
  1. 修改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>
  1. 修改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>
  1. 修改slaves配置檔案 即從節點名,偽分散式從節點為自己,所以寫
hadoop01
  1. 配置hadoop環境變數 在使用者配置~/.bashrc內新增
export HADOOP_HOME=/opt/hadoop/hadoop-2.6.5
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
  1. 格式化NameNode(建立目錄以及檔案)
hdfs namenode -format
  1. 啟動HDFS
start-dfs.sh

遇到的問題

  1. 找不到JAVA_HOME --> 在使用者配置檔案~/.bashrc中也配置JAVA_HOME
  2. 找不到hadoop01的錯誤 --> 未修改/etc/hosts,寫入ip+主機名
  3. 初始化時找不到namenode主類 --> 檢查命令是否正確,或重新解壓檔案

完全分散式

node01 NameNode node02 SecondaryNameNode和DataNode node03 DataNode node04 DataNode

搭建步驟

  1. 時間同步 在各個節點安裝ntp命令
yum install ntp

查詢最新的時間伺服器

ntp1.aliyun.com

同步時間

ntpdate ntp1.aliyun.com
  1. 配置免密登入 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]
  1. 所有節點配置JDK 略
  2. 修改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>
  1. 修改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>
  1. hadoop環境變數 略
  2. 修改slaves配置檔案 修改為
node02
node03
node04
  1. 將配置好的安裝包分發到其他節點上 在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`
  1. 將所有的HDFS相關的程序關閉 格式化NameNode(建立目錄以及檔案) 在node01節點執行
hdfs namenode -format
  1. 啟動HDFS
start-dfs.sh

遇到的問題

  1. 分發公鑰時找不到節點 --> 未配置hosts
  2. 啟動後找不到存活節點 --> 所有節點都應該配置hosts
  3. 外部無法訪問hdfs --> 關閉防火牆
臨時關閉
service iptables stop

永久關閉
chkconfig iptables off

高可用的完全分散式

*虛擬機器的配置

  1. 檢視虛擬機器ip
ifconfig
  1. 根據查詢到的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. 複製虛擬機器,並重新執行1和2 (可將JAVA_HOME和HADOOP_HOME一併配置好後再複製)
  2. 修改hostname
cd /etc/sysconfig/
vim network
  1. 修改hosts
vim /etc/hosts