天天看點

Hadoop學習(2)—— Hadoop3.1 單機模式搭建

作者:技術閑聊DD

1 伺服器基礎環境準備

機器: Centos7

hadoop: 3.3.1 版本

jdk: 1.8

1.1 vim /etc/hostname

Hadoop學習(2)—— Hadoop3.1 單機模式搭建

1.2 vim /etc/hosts

Hadoop學習(2)—— Hadoop3.1 單機模式搭建

1.3 關閉防火牆

systemctl stop firewalld.service #關閉防火牆

systemctl disable firewalld.service #禁止防火牆開啟自啟

1.4 叢集時間同步

yum -y install ntpdate

ntpdate ntp4.aliyun.com

1.5 建立指定目錄

mkdir -p /export/server/ #軟體安裝路徑

mkdir -p /export/data/ #資料存儲路徑

mkdir -p /export/software/ #安裝包存放路徑

1.6 ssh免密登入

ssh-keygen #4個回車 生成公鑰、私鑰

ssh-copy-id node1

否則在啟動的時候有警告提示如下:

Hadoop學習(2)—— Hadoop3.1 單機模式搭建

2 上傳安裝包、解壓安裝包

2.1 安裝jdk

Hadoop學習(2)—— Hadoop3.1 單機模式搭建

2.2 上傳、解壓Hadoop安裝包

tar zxvf hadoop-3.3.1.tar.gz

Hadoop學習(2)—— Hadoop3.1 單機模式搭建

3 Hadoop安裝包目錄結構

Hadoop學習(2)—— Hadoop3.1 單機模式搭建

配置檔案概述

  • 第一類1個:hadoop-env.sh
  • 第二類4個:xxxx-site.xml ,site表示的是使用者定義的配置,會覆寫default中的預設配置。

    core-site.xml 核心子產品配置

    hdfs-site.xml hdfs檔案系統子產品配置

    mapred-site.xml MapReduce子產品配置

    yarn-site.xml yarn子產品配置

  • 第三類1個:workers
  • 所有的配置檔案目錄:/export/server/hadoop-3.3.1/etc/hadoop/

4 配置hadoop-env.sh

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root           

5 配置core-site.xml

<!-- 設定預設使用的檔案系統 Hadoop支援file、HDFS、GFS、ali|Amazon雲等檔案系統 
按照自己要求配置 可以是ip+端口,端口不固定
-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:8020</value>
</property>
<!-- 設定Hadoop本地儲存資料路徑 按照自己的路徑配置-->
<property>
<name>hadoop.tmp.dir</name>
<value>/export/data/hadoop-3.3.1</value>
</property>
<!-- 設定HDFS web UI使用者身份 -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
<!-- 整合hive 使用者代理設定 -->
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<!-- 垃圾桶檔案儲存時間 -->
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>           

6 配置hdfs-site.xml

<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- 按照自己的路徑配置-->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/export/data/hadoop-3.3.1/tmp/dfs/name</value>
</property>
<!-- 按照自己的路徑配置-->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/export/data/hadoop-3.3.1/tmp/dfs/data</value>
</property>           

7 配置mapred-site.xml

<!-- 設定MR程式預設運作模式: yarn叢集模式 local本地模式 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- MR程式曆史伺服器端位址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10020</value>
</property>
<!-- 曆史伺服器web端位址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node1:19888</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>           

注意: HADOOP_HOME待會要在環境變量中配置。

8 配置yarn-site.xml

<!-- 設定YARN叢集主角色運作機器位置 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 是否将對容器實施實體記憶體限制 -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!-- 是否将對容器實施虛拟記憶體限制。 -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<!-- 開啟日志聚集 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 設定yarn曆史伺服器位址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://node1:19888/jobhistory/logs</value>
</property>
<!-- 儲存的時間7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>           

9 配置環境變量

vim /etc/profile
export HADOOP_HOME=/export/server/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
重新加載環境變量 驗證是否生效
source /etc/profile
驗證環境變量是否生效
hadoop            

10 啟動hadoop環境

10.1 格式化

  • NameNode format(格式化操作)
  • 首次啟動HDFS時,必須對其進行格式化操作。
  • format本質上是初始化工作,進行HDFS清理和準備工作
  • 指令:hdfs namenode -format

format隻能進行一次,後續不再需要,如果多次format除了造成資料丢失外,還會導緻hdfs叢集主從角色之間互不識别。通過删除所有機器hadoop.tmp.dir目錄重新format解決。

注意:

如果執行多次在put檔案的時候會報錯如下:

Hadoop學習(2)—— Hadoop3.1 單機模式搭建

解決辦法:

首先關閉服務,然後删除data下的tmp檔案夾,最後重新格式化并啟動就可以解決。

10.2 啟動

在node1上,使用軟體自帶的shell腳本一鍵啟動。

HDFS叢集

start-dfs.sh

stop-dfs.sh

YARN叢集

start-yarn.sh

stop-yarn.sh

Hadoop整體叢集

start-all.sh

stop-all.sh

啟動完畢之後可以使用jps指令檢視程序是否啟動成功。

Hadoop啟動日志路徑:/export/server/hadoop-3.3.1/logs/。

Hadoop學習(2)—— Hadoop3.1 單機模式搭建
Hadoop學習(2)—— Hadoop3.1 單機模式搭建

11 網址通路

需要在本地host配置映射後通路。

11.1 HDFS叢集

位址:http://namenode_host:9870

其中namenode_host是namenode運作所在機器的主機名或者ip

如果使用主機名通路,别忘了在Windows配置hosts

http://node1:9870/

Hadoop學習(2)—— Hadoop3.1 單機模式搭建

HDFS檔案系統Web頁面浏覽

Hadoop學習(2)—— Hadoop3.1 單機模式搭建

11.2 YARN叢集

位址:http://resourcemanager_host:8088

其中resourcemanager_host是resourcemanager運作所在機器的主機名或者ip

如果使用主機名通路,别忘了在Windows配置hosts

http://node1:8088/cluster

Hadoop學習(2)—— Hadoop3.1 單機模式搭建

12 HDFS 初體驗

  1. HDFS本質就是一個檔案系統。
  2. 有目錄樹結構 和Linux類似,分檔案、檔案夾。

12.1 shell指令操作

//建立檔案夾

hadoop fs -mkdir /itcast

//上傳檔案

hadoop fs -put test.out /itcast

// 列出HDFS線上根目錄

hadoop fs -ls /

12.2 Web UI頁面操作

Hadoop學習(2)—— Hadoop3.1 單機模式搭建

13 MapReduce+YARN 初體驗

13.1 評估圓周率π

執行Hadoop官方自帶的MapReduce案例,評估圓周率π的值。

cd /export/server/hadoop-3.3.1/share/hadoop/mapreduce/

hadoop jar hadoop-mapreduce-examples-3.3.1.jar pi 2 4

Hadoop學習(2)—— Hadoop3.1 單機模式搭建
Hadoop學習(2)—— Hadoop3.1 單機模式搭建

13.2 單詞統計

繼續閱讀