Hadoop运行模式

Hadoop运行模式

(1)Hadoop官方网站:Apache Hadoop

(2)Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式。

a.本地模式:单机运行,只是用来演示一下官方案例。生产环境不用。

b.伪分布式模式:也是单机运行,但是具备Hadoop集群的所有功能,一台服务器模拟一个分布式的环境。个别缺钱的公司用来测试,生产环境不用。

c.完全分布式模式:多台服务器组成分布式环境。生产环境使用。

目录

Hadoop运行模式

一、本地运行模式(官方WordCount)

二、完全分布式运行模式(开发重点)

1.虚拟机准备

2.编写集群分发脚本xsync

3.SSH无密登录配置

4.集群配置

5.群起集群

6.配置历史服务器

7.配置日志的聚集

8.集群启动/停止方式总结

9.编写Hadoop集群常用脚本

10、常用端口号说明

11、集群时间同步

四、常见错误

五、Hadoop入门面试题


一、本地运行模式(官方WordCount)

(1)创建在hadoop-3.1.3文件下面创建一个wcinput文件夹

[atguigu@hadoop102 hadoop-3.1.3]$ mkdir wcinput

(2)在wcinput文件下创建一个word.txt文件

[atguigu@hadoop102 hadoop-3.1.3]$ cd wcinput

(3)编辑word.txt文件

[atguigu@hadoop102 wcinput]$ vim word.txt

在文件中输入如下内容

hadoop yarn
hadoop mapreduce
atguigu
atguigu

(4)回到Hadoop目录/opt/module/hadoop-3.1.3

(5)执行程序

[atguigu@hadoop102 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount wcinput wcoutput

(6)结果

[atguigu@hadoop102 hadoop-3.1.3]$ cat wcoutput/part-r-00000

输出

atguigu 2
hadoop  2
mapreduce       1
yarn    1

二、完全分布式运行模式(开发重点)

分析:

1)准备3台客户机(关闭防火墙、静态IP、主机名称)

2)安装JDK

3)配置环境变量

4)安装Hadoop

5)配置环境变量

6)配置集群

7)单点启动

8)ssh

9)群起并测试集群

1.虚拟机准备

2.编写集群分发脚本xsync

1)scp(secure copy)安全拷贝

(1)scp定义

scp可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)

(2)基本语法

scp    -r        $pdir/$fname             $user@$host:$pdir/$fname

命令 递归 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称

(3)案例实操

前提:在hadoop102、hadoop103、hadoop104都已经创建好的/opt/module、/opt/software两个目录,并且已经把这两个目录修改为atguigu:atguigu

[atguigu@hadoop102 ~]$ sudo chown atguigu:atguigu -R /opt/module

a.在hadoop102上,将hadoop102中/opt/module/jdk1.8.0_212目录拷贝到hadoop103上。

[atguigu@hadoop102 ~]$ scp -r /opt/module/jdk1.8.0_212  atguigu@hadoop103:/opt/module

b.在hadoop103上,将hadoop102中/opt/module/hadoop-3.1.3目录拷贝到hadoop103上。

[atguigu@hadoop103 ~]$ scp -r atguigu@hadoop102:/opt/module/hadoop-3.1.3 /opt/module/

c.在hadoop103上操作,将hadoop102中/opt/module目录下所有目录拷贝到hadoop104上。

[atguigu@hadoop103 opt]$ scp -r atguigu@hadoop102:/opt/module/* atguigu@hadoop104:/opt/module

2)rsync远程同步工具

sync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。

rsync和scp区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。

(1)基本语法

rsync    -av       $pdir/$fname             $user@$host:$pdir/$fname

命令 选项参数 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称

选项参数说明

选项 功能
-a 归档拷贝
-v 显示复制过程

(2)案例实操

a.删除hadoop103中/opt/module/hadoop-3.1.3/wcinput

[atguigu@hadoop103 hadoop-3.1.3]$ rm -rf wcinput/

b.同步hadoop102中的/opt/module/hadoop-3.1.3到hadoop103

[atguigu@hadoop102 module]$ rsync -av hadoop-3.1.3/ atguigu@hadoop103:/opt/module/hadoop-3.1.3/

3)xsync集群分发脚本

(1)需求:循环复制文件到所有节点的相同目录下

(2)需求分析:

a. rsync命令原始拷贝:

rsync  -av     /opt/module           atguigu@hadoop103:/opt/

b. 期望脚本:

xsync 要同步的文件名称

c. 期望脚本在任何路径都能使用(脚本放在声明了全局环境变量的路径)

[atguigu@hadoop102 ~]$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/atguigu/.local/bin:/home/atguigu/bin:/opt/module/jdk1.8.0_212/bin

(3)脚本实现:

a. 在/home/atguigu/bin目录下创建xsync文件

[atguigu@hadoop102 opt]$ cd /home/atguigu
[atguigu@hadoop102 ~]$ mkdir bin
[atguigu@hadoop102 ~]$ cd bin
[atguigu@hadoop102 bin]$ vim xsync

在该文件中编写如下代码

#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
    echo Not Enough Arguement!
    exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
    echo ====================  $host  ====================
    #3. 遍历所有目录,挨个发送
    for file in $@
    do
        #4. 判断文件是否存在
        if [ -e $file ]
            then
                #5. 获取父目录
                pdir=$(cd -P $(dirname $file); pwd)
                #6. 获取当前文件的名称
                fname=$(basename $file)
                ssh $host "mkdir -p $pdir"
                rsync -av $pdir/$fname $host:$pdir
            else
                echo $file does not exists!
        fi
    done
done

b. 修改脚本 xsync 具有执行权限

[atguigu@hadoop102 bin]$ chmod +x xsync

c. 测试脚本

[atguigu@hadoop102 ~]$ xsync /home/atguigu/bin

d.将脚本复制到/bin中,以便全局调用

[atguigu@hadoop102 bin]$ sudo cp xsync /bin/

e.同步环境变量配置(root所有者)

[atguigu@hadoop102 ~]$ sudo xsync /etc/profile.d/my_env.sh

让环境变量生效

[atguigu@hadoop103 bin]$ source /etc/profile
[atguigu@hadoop104 opt]$ source /etc/profile

3.SSH无密登录配置

1)配置ssh

(1)基本语法

ssh另一台电脑的IP地址

(2)ssh连接时出现Host key verification failed的解决方法

[atguigu@hadoop102 ~]$ ssh hadoop103

如果出现如下内容

Are you sure you want to continue connecting (yes/no)?

输出yes,并回车

(3)退回到hadoop102

[atguigu@hadoop103 ~]$ exit

2)无密钥配置

(1)免密登录原理

Hadoop运行模式_第1张图片

(2)生成公钥和私钥

[atguigu@hadoop102 .ssh]$ pwd
/home/atguigu/.ssh
[atguigu@hadoop102 .ssh]$ ssh-keygen -t rsa

然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

(3)将公钥拷贝到要免密登录的目标机器上

[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop102
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop103
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop104

注意:

还需要在hadoop103上采用atguigu账号配置一下无密登录到hadoop102、hadoop103、hadoop104服务器上。

还需要在hadoop104上采用atguigu账号配置一下无密登录到hadoop102、hadoop103、hadoop104服务器上。

还需要在hadoop102上采用root账号,配置一下无密登录到hadoop102、hadoop103、hadoop104;

3).ssh文件夹下(~/.ssh)的文件功能解释

known_hosts 记录ssh访问过计算机的公钥(public key)
id_rsa 生成的私钥
id_rsa.pub 生成的公钥
authorized_keys 存放授权过的无密登录服务器公钥

4.集群配置

1)集群部署规划

注意:

NameNode和SecondaryNameNode不要安装在同一台服务器

ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上。

hadoop102 hadoop103 hadoop104
HDFS NameNode DataNode DataNode SecondaryNameNode DataNode
YARN NodeManager ResourceManager NodeManager NodeManager

集群规划 hdfs nn 2nn yarn rm 老大不能放一起(nn,2nn,rm),小弟尽可能多(dn,nm)

 102        103        104
  nn         rm        2nn
  dn         dn         dn
  nm         nm         nm

2)配置文件说明

Hadoop配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值。

(1)默认配置文件:

要获取的默认文件 文件存放在Hadoop的jar包中的位置
[core-default.xml] hadoop-common-3.1.3.jar/core-default.xml
[hdfs-default.xml] hadoop-hdfs-3.1.3.jar/hdfs-default.xml
[yarn-default.xml] hadoop-yarn-common-3.1.3.jar/yarn-default.xml
[mapred-default.xml] hadoop-mapreduce-client-core-3.1.3.jar/mapred-default.xml

(2)自定义配置文件:

core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml四个配置文件存放在$HADOOP_HOME/etc/hadoop这个路径上,用户可以根据项目需求重新进行修改配置。

3)配置集群

(1)核心配置文件

[atguigu@hadoop102 ~]$ cd $HADOOP_HOME/etc/hadoop
[atguigu@hadoop102 hadoop]$ vim core-site.xml

文件内容如下:


    
    
        fs.defaultFS
        hdfs://hadoop102:8020
    
    
    
        hadoop.tmp.dir
        /opt/module/hadoop-3.1.3/data
    
    
    
        hadoop.http.staticuser.user
        atguigu
    
 
  

(2)HDFS配置文件

配置hdfs-site.xml

[atguigu@hadoop102 hadoop]$ vim hdfs-site.xml

文件内容如下:


    
    
        dfs.namenode.http-address
        hadoop102:9870
    
    
    
        dfs.namenode.secondary.http-address
        hadoop104:9868
    
 
  

(3)YARN配置文件

配置yarn-site.xml

[atguigu@hadoop102 hadoop]$ vim yarn-site.xml

文件内容如下:


    
    
        yarn.nodemanager.aux-services
        mapreduce_shuffle
    
    
    
        yarn.resourcemanager.hostname
        hadoop103
    
    
    
        yarn.nodemanager.env-whitelist
  JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
    
 
  

(4)MapReduce配置文件

配置mapred-site.xml

[atguigu@hadoop102 hadoop]$ vim mapred-site.xml

文件内容如下:


    
    
        mapreduce.framework.name
        yarn
    
 
  

4)在集群上分发配置好的Hadoop配置文件

[atguigu@hadoop102 hadoop]$ xsync /opt/module/hadoop-3.1.3/etc/hadoop/

5)去103和104上查看文件分发情况

[atguigu@hadoop103 ~]$ cat /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml
[atguigu@hadoop104 ~]$ cat /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml

5.群起集群

1)配置workers

[atguigu@hadoop102 hadoop]$ vim /opt/module/hadoop-3.1.3/etc/hadoop/workers

在该文件中增加如下内容:

hadoop102
hadoop103
hadoop104

注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。

同步所有节点配置文件

[atguigu@hadoop102 hadoop]$ xsync /opt/module/hadoop-3.1.3/etc

2)启动集群

(1)如果集群是第一次启动,需要在hadoop102节点格式化NameNode(注意:格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenode和datanode进程,并且要删除所有机器的data和logs目录,然后再进行格式化。)

[atguigu@hadoop102 hadoop-3.1.3]$ hdfs namenode -format

(2)启动HDFS

[atguigu@hadoop102 hadoop-3.1.3]$ sbin/start-dfs.sh

(3)在配置了ResourceManager的节点(hadoop103)启动YARN

[atguigu@hadoop103 hadoop-3.1.3]$ sbin/start-yarn.sh

(4)Web端查看HDFS的NameNode

(a)浏览器中输入:http://hadoop102:9870

(b)查看HDFS上存储的数据信息

(5)Web端查看YARN的ResourceManager

(a)浏览器中输入:http://hadoop103:8088

(b)查看YARN上运行的Job信息

3)集群基本测试

(1)上传文件到集群

上传小文件

[atguigu@hadoop102 ~]$ hadoop fs -mkdir /input
[atguigu@hadoop102 ~]$ hadoop fs -put $HADOOP_HOME/wcinput/word.txt /input

上传大文件

[atguigu@hadoop102 ~]$ hadoop fs -put  /opt/software/jdk-8u212-linux-x64.tar.gz  /

(2)上传文件后查看文件存放在什么位置

查看HDFS文件存储路径

[atguigu@hadoop102 subdir0]$ pwd
/opt/module/hadoop-3.1.3/data/dfs/data/current/BP-1436128598-192.168.10.102-1610603650062/current/finalized/subdir0/subdir0

查看HDFS在磁盘存储文件内容

[atguigu@hadoop102 subdir0]$ cat blk_1073741825
hadoop yarn
hadoop mapreduce 
atguigu
atguigu

(3)拼接

-rw-rw-r--. 1 atguigu atguigu 134217728 5月  23 16:01 blk_1073741836
-rw-rw-r--. 1 atguigu atguigu   1048583 5月  23 16:01 blk_1073741836_1012.meta
-rw-rw-r--. 1 atguigu atguigu  63439959 5月  23 16:01 blk_1073741837
-rw-rw-r--. 1 atguigu atguigu    495635 5月  23 16:01 blk_1073741837_1013.meta
[atguigu@hadoop102 subdir0]$ cat blk_1073741836>>tmp.tar.gz
[atguigu@hadoop102 subdir0]$ cat blk_1073741837>>tmp.tar.gz
[atguigu@hadoop102 subdir0]$ tar -zxvf tmp.tar.gz

(4)下载

[atguigu@hadoop104 software]$ hadoop fs -get /jdk-8u212-linux-x64.tar.gz ./

(5)执行wordcount程序

[atguigu@hadoop102 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input /output

6.配置历史服务器

为了查看程序的历史运行情况,需要配置一下历史服务器。具体配置步骤如下:

1)配置mapred-site.xml

[atguigu@hadoop102 hadoop]$ vim mapred-site.xml

在该文件里面增加如下配置。

    mapreduce.jobhistory.address
    hadoop102:10020

    mapreduce.jobhistory.webapp.address
    hadoop102:19888
 
  

2)分发配置

[atguigu@hadoop102 hadoop]$ xsync $HADOOP_HOME/etc/hadoop/mapred-site.xml

3)在hadoop102启动历史服务器

[atguigu@hadoop102 hadoop]$ mapred --daemon start historyserver

4)查看历史服务器是否启动

[atguigu@hadoop102 hadoop]$ jps

5)查看JobHistory

http://hadoop102:19888/jobhistory

7.配置日志的聚集

日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上。

Hadoop运行模式_第2张图片

日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。

注意:开启日志聚集功能,需要重新启动NodeManager 、ResourceManager和HistoryServer。

开启日志聚集功能具体步骤如下:

1)配置yarn-site.xml

[atguigu@hadoop102 hadoop]$ vim yarn-site.xml

在该文件里面增加如下配置。

    yarn.log-aggregation-enable
    true
 
  
  
    yarn.log.server.url  
    http://hadoop102:19888/jobhistory/logs
 
  
    yarn.log-aggregation.retain-seconds
    604800
 
  

2)分发配置

[atguigu@hadoop102 hadoop]$ xsync $HADOOP_HOME/etc/hadoop/yarn-site.xml

3)关闭NodeManager 、ResourceManager和HistoryServer

[atguigu@hadoop103 hadoop-3.1.3]$ sbin/stop-yarn.sh
[atguigu@hadoop102 hadoop-3.1.3]$ mapred --daemon stop historyserver

4)启动NodeManager 、ResourceManage和HistoryServer

[atguigu@hadoop103 ~]$ start-yarn.sh
[atguigu@hadoop102 ~]$ mapred --daemon start historyserver

5)删除HDFS上已经存在的输出文件

[atguigu@hadoop102 ~]$ hadoop fs -rm -r /output

6)执行WordCount程序

[atguigu@hadoop102 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input /output

7)查看日志

(1)历史服务器地址

http://hadoop102:19888/jobhistory

(2)历史任务列表

(3)查看任务运行日志

(4)运行日志详情

8.集群启动/停止方式总结

1)各个模块分开启动停止(配置ssh是前提)常用

(1)整体启动/停止HDFS

start-dfs.sh/stop-dfs.sh

(2)整体启动/停止YARN

start-yarn.sh/stop-yarn.sh

2)各个服务组件逐一启动/停止

(1)分别启动/停止HDFS组件

hdfs --daemon start/stop namenode/datanode/secondarynamenode

(2)启动/停止YARN

yarn --daemon start/stop resourcemanager/nodemanager

2)各个服务组件逐一启动/停止

(1)分别启动/停止HDFS组件

hdfs --daemon start/stop namenode/datanode/secondarynamenode

(2)启动/停止YARN

yarn --daemon start/stop resourcemanager/nodemanager

集群的启动/停止的方式 1.群起组件 hdfs /yarn/historyserver hdfs start/stop-dfs.sh yarn start/stop-yarn.sh mapred --daemon start/stop historyserver

  1. 按照每个小模块 nn dn 2nn rm nm hdfs hdfs --daemon start/stop namenode hdfs --daemon start/stop datanode hdfs --daemon start/stop secondarynamenode yarn yarn --daemon start/stop resourcemanager yarn --daemon start/stop nodemanager historyserver mapred --daemon start/stop historyserver

9.编写Hadoop集群常用脚本

1)Hadoop集群启停脚本(包含HDFS,Yarn,Historyserver):myhadoop.sh

[atguigu@hadoop102 ~]$ cd /home/atguigu/bin
[atguigu@hadoop102 bin]$ vim myhadoop.sh

输入如下内容

#!/bin/bash
if [ $# -lt 1 ]
then
    echo "No Args Input..."
    exit ;
fi
case $1 in
"start")
        echo " =================== 启动 hadoop集群 ==================="
        echo " --------------- 启动 hdfs ---------------"
        ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
        echo " --------------- 启动 yarn ---------------"
        ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
        echo " --------------- 启动 historyserver ---------------"
        ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;
"stop")
        echo " =================== 关闭 hadoop集群 ==================="
        echo " --------------- 关闭 historyserver ---------------"
        ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"
        echo " --------------- 关闭 yarn ---------------"
        ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
        echo " --------------- 关闭 hdfs ---------------"
        ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)
    echo "Input Args Error..."
;;
esac

保存后退出,然后赋予脚本执行权限

[atguigu@hadoop102 bin]$ chmod +x myhadoop.sh

2)查看三台服务器Java进程脚本:jpsall

[atguigu@hadoop102 ~]$ cd /home/atguigu/bin
[atguigu@hadoop102 bin]$ vim jpsall

输入如下内容

#!/bin/bash
for i in hadoop102 hadoop103 hadoop104
do
     echo "===========$i==========="
     ssh $i jps $1 | grep -v Jps
done

保存后退出,然后赋予脚本执行权限

[atguigu@hadoop102 bin]$ chmod +x jpsall

3)分发/home/atguigu/bin目录,保证自定义脚本在三台机器上都可以使用

[atguigu@hadoop102 ~]$ xsync /home/atguigu/bin/

10、常用端口号说明

端口名称 Hadoop2.x Hadoop3.x
NameNode内部通信端口 8020 / 9000 8020 / 9000/9820
NameNode HTTP UI 50070 9870
MapReduce查看执行任务端口 8088 8088
历史服务器通信端口 19888 19888

11、集群时间同步

如果服务器在公网环境(能连接外网),可以不采用集群时间同步,因为服务器会定期和公网时间进行校准;

如果服务器在内网环境,必须要配置集群时间同步,否则时间久了,会产生时间偏差,导致集群执行任务时间不同步。

1)需求

找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,生产环境根据任务对时间的准确程度要求周期同步。测试环境为了尽快看到效果,采用1分钟同步一次。

2)时间服务器配置(必须root用户)

(1)查看所有节点ntpd服务状态和开机自启动状态

[atguigu@hadoop102 ~]$ sudo systemctl status ntpd
[atguigu@hadoop102 ~]$ sudo systemctl start ntpd
[atguigu@hadoop102 ~]$ sudo systemctl is-enabled ntpd

(2)修改hadoop102的ntp.conf配置文件

[atguigu@hadoop102 ~]$ sudo vim /etc/ntp.conf

修改内容:

a.修改1(授权192.168.10.0-192.168.10.255网段上的所有机器可以从这台机器上查询和同步时间)

#restrict 192.168.10.0 mask 255.255.255.0 nomodify notrap

去掉#

b.修改2(集群在局域网中,不使用其他互联网上的时间)

server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

这四句加上注释

c.添加3(当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步)

server 127.127.1.0
fudge 127.127.1.0 stratum 10

(3)修改hadoop102的/etc/sysconfig/ntpd 文件

[atguigu@hadoop102 ~]$ sudo vim /etc/sysconfig/ntpd

增加内容如下(让硬件时间与系统时间一起同步)

SYNC_HWCLOCK=yes

(4)重新启动ntpd服务

[atguigu@hadoop102 ~]$ sudo systemctl start ntpd

(5)设置ntpd服务开机启动

[atguigu@hadoop102 ~]$ sudo systemctl enable ntpd

3)其他机器配置(必须root用户)

(1)关闭所有节点上ntp服务和自启动

[atguigu@hadoop103 ~]$ sudo systemctl stop ntpd
[atguigu@hadoop103 ~]$ sudo systemctl disable ntpd
[atguigu@hadoop104 ~]$ sudo systemctl stop ntpd
[atguigu@hadoop104 ~]$ sudo systemctl disable ntpd

(2)在其他机器配置1分钟与时间服务器同步一次

[atguigu@hadoop103 ~]$ sudo crontab -e

编写定时任务如下:

*/1 * * * * /usr/sbin/ntpdate hadoop102

(3)修改任意机器时间

[atguigu@hadoop103 ~]$ sudo date -s "2021-9-11 11:11:11"

(4)1分钟后查看机器是否与时间服务器同步

[atguigu@hadoop103 ~]$ sudo date

三、常见错误

1)防火墙没关闭、或者没有启动YARN

INFO client.RMProxy: Connecting to ResourceManager at hadoop108/192.168.10.108:8032

2)主机名称配置错误

3)IP地址配置错误

4)ssh没有配置好

5)root用户和atguigu两个用户启动集群不统一

6)配置文件修改不细心

7)不识别主机名称

解决办法:

(1)在/etc/hosts文件中添加192.168.10.102 hadoop102

(2)主机名称不要起hadoop hadoop000等特殊名称

8)DataNode和NameNode进程同时只能工作一个。

9)执行命令不生效,粘贴Word中命令时,遇到-和长–没区分开。导致命令失效

解决办法:尽量不要粘贴Word中代码。

10)jps发现进程已经没有,但是重新启动集群,提示进程已经开启。

原因是在Linux的根目录下/tmp目录中存在启动的进程临时文件,将集群相关进程删除掉,再重新启动集群。

11)jps不生效

原因:全局变量hadoop java没有生效。解决办法:需要source /etc/profile文件。

12)8088端口连接不上

[atguigu@hadoop102 桌面]$ cat /etc/hosts

注释掉如下代码

#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

#::1 hadoop102

四、Hadoop入门面试题

1.hadoop中有哪些比较重要的配置文件

两种 default site

        core-default/site-xml common

        hdfs-default/site-xml hdfs

        yarn-default/site-xml yarn

        mapred-default/site-xml mr

        3.x workers/ 2.x salvers dn nm

2.hadoop中常用的端口号

        hdfs 通信端 8020 web 9870 3.x /50070 2.x

        yarn 通信端 8032 web 8088

        历史服务器 通信端 10020 web 19888

你可能感兴趣的:(Hadoop,hadoop,hdfs,大数据)