Hadoop(3) Hadoop僞分佈式的搭建和重複格式化namenode的問題解決


Hadoop(3)
Hadoop僞分佈式的搭建和重複格式化namenode的問題解決

Hadoop僞分佈式

Hadoop僞分佈式介紹

僞分佈式指只有一個節點,模擬了Hadoop的分佈式搭建

Hadoop僞分佈式的搭建

HDFS僞分佈式搭建
  1. 修改配置文件 hadoop-env.sh,配置Java路徑,這一步與本地模式一樣
vim <Hadoop安裝目錄>/etc/hadoop/hadoop-env.sh

找到export JAVA_HOME=${JAVA_HOME},大約在25行

然後將自己的Java安裝路徑填上

export JAVA_HOME=<自己的Java安裝路徑>
  1. 修改配置文件core-site.xml
vim <Hadoop安裝目錄>/etc/hadoop/core-site.xml

找到<configuration>標籤,在裏面添加以下內容

<!-- 指定HDFS中NameNode的地址,這裏同時指定了文件系統 -->
<property>
<name>fs.defaultFS</name>
    <value>hdfs://<當前主機名>:9000</value>
</property>

<!-- 指定Hadoop運行時產生文件的存儲目錄 -->
<property>
	<name>hadoop.tmp.dir</name>
	<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>

注意

如果不指定文件系統,則默認是本地的文件系統(Linux系統下一般是xfs或者ext4

  1. 修改配置文件hdfs-site.xml
vim <Hadoop安裝目錄>/etc/hadoop/hdfs-site.xml

同上,在<configuration>標籤,在裏面添加以下內容

<!-- 指定HDFS副本的數量 -->
<property>
	<name>dfs.replication</name>
	<value>1</value>
</property>

注意

因爲這是僞分佈式,只有一個節點,所以HDFS的副本數量只能爲1,即便是指定了多個副本,在僞分佈模式下依然沒有效果

  1. 格式化hdfs系統
<Hadoop安裝目錄>/bin/hdfs namenode -format

如果出現以下內容說明格式化成功
在這裏插入圖片描述

注意

只有在第一次啓動Hadoop時,才必須格式化,格式化成功之後,以後啓動Hadoop就不需要在此格式化了

  1. 啓動NameNode
sbin/hadoop-daemon.sh start namenode
  1. 啓動datanode
sbin/hadoop-daemon.sh start datanode
  1. 使用jps命令,查看namenode和datanode是否啓動成功
jps

注意

jps是jdk裏的命令,不是Linux自帶的命令,作用是查看所有的java進程,如果沒有安裝jdk,則無法使用jps命令

如果出現namenodedatanode,說明啓動成功

如果啓動失敗,檢查一下配置是否正確

如果配置正確但是沒有namenode,在hosts文件裏添加上域名綁定:

sudo vim /etc/hosts

添加以下內容:

<你的主機名> <IP地址>

例如我的是:

host01 192.168.8.101
  1. 打開瀏覽器,訪問namenode的50070端口
<namenode的IP>:50070

如果出現Hadoop的頁面說明name主機可以訪問,如果namenode啓動成功但是無法訪問,檢查一下防火牆是否關閉

  1. 關閉namenode和datanode
sbin/hadoop-daemon.sh stop namenode
sbin/hadoop-daemon.sh stop datanode
yarn僞分佈式搭建
  1. 修改配置文件 hadoop-env.sh,配置Java路徑,這一步與本地模式一樣,如果之前做過可以跳過
vim <Hadoop安裝目錄>/etc/hadoop/hadoop-env.sh

找到export JAVA_HOME=${JAVA_HOME},大約在25行

然後將自己的Java安裝路徑填上

export JAVA_HOME=<自己的Java安裝路徑>
  1. 修改配置文件yarn-site.xml

同HDFS的配置一樣,在<configuration>標籤裏添加

<!--Reducer獲取數據的方式-->
<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
</property>
<!--指定yarn的ResourceManager的地址-->
<property>
	<name>yarn.resourcemanager.hostname</name>
	<value><當前主機名></value>
</property>
  1. 修改配置文件mapred-env.sh,配置其中的JAVA_HOME,大約在16行左右,需要將前面的註釋去掉
export JAVA_HOME=/opt/module/jdk1.8.0_11
  1. 複製一份<Hadoop安裝目錄>/etc/hadoop/mapred-site.xml.template,命名爲 mapred-site.xml
cp <Hadoop安裝路徑>/etc/hadoop/mapred-site.xml.template <Hadoop安裝路徑>/etc/hadoop/mapred-site.xml

修改mapred-site.xml,同上在<configuration>中添加:

<!--指定mapreduce運行在yarn上-->
<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>
  1. 啓動yarn
yarn-daemon.sh start resourcemanager
yarn-daemon.sh start nodemanager
  1. 在瀏覽器上訪問Yarn的8088端口,如果出現Hadoop的資源調度頁面,說明訪問成功,同HDFS,如果resourcemanager和nodemanager都啓動成功,但是訪問失敗,檢查防火牆是否關閉

重複格式化namenode產生的問題及其解決方法

格式化NameNode,會產生新的集羣id,導致NameNode和DataNode的集羣id不一致,集羣找不到已往數據.所以,格式NameNode時,一定要先刪除data數據和log日誌,然後再格式化NameNode

rm -rf <Hadoop安裝路徑>/data/tmp/dfs/data

這個路徑是我們剛剛在配置文件core-site.xml裏配置的路徑

格式化namenode產生的問題及其解決方法

格式化NameNode,會產生新的集羣id,導致NameNode和DataNode的集羣id不一致,集羣找不到已往數據.所以,格式NameNode時,一定要先刪除data數據和log日誌,然後再格式化NameNode

rm -rf <Hadoop安裝路徑>/data/tmp/dfs/data

這個路徑是我們剛剛在配置文件core-site.xml裏配置的路徑

然後重新啓動datanode即可

發佈了29 篇原創文章 · 獲贊 3 · 訪問量 1878
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章