大数据技术之Hadoop(入门)概述、运行环境搭建、运行模式

大数据开发之Hadoop Hadoop的发展,Hadoop的三个功能组件:一、HDFS 分布式文件系统,二、MapReduce 分布式计算,三、Yarn 分布式资源调度。提交MapReduce程序至YARN运行 阅读详情


1 Hadoop 概述

1.1 Hadoop 是什么

(1)Hadoop是一个由Apache基金会所开发的分布式系统基础架构
(2)主要解决海量数据的存储和海量数据的分析计算问题
(3)广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈

1.2 Hadoop 优势

(1)高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。
(2)高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。
(3)高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。
(4)高容错性:能够自动将失败的任务重新分配。

1.3 Hadoop 组成(面试重点)

在这里插入图片描述
在Hadoop1.x 时代,Hadoop中的MapReduce同时处理业务逻辑运算和资源的调度,耦合性较大。
在Hadoop2.x时代,增加了Yarn。Yarn只负责资源的调度,MapReduce 只负责运算。
Hadoop3.x在组成上没有变化。

1.3.1 HDFS 架构概述

Hadoop Distributed File System,简称HDFS,是一个分布式文件系统。

(1)NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。
(2)DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。
(3)Secondary NameNode(2nn):每隔一段时间对NameNode元数据备份。

1.3.2 YARN 架构概述

Yet Another Resource Negotiator 简称YARN ,另一种资源协调者,是Hadoop 的资源管理器。
在这里插入图片描述

ResourceManager(RM):整个集群资源(内存、CPU等)的管理者
NodeManager(NM):单个节点服务器资源的管理者。
ApplicationMaster(AM):单个任务运行的管理者。
Container:容器,相当于一台独立的服务器,里面封装了任务运行所需要的资源,如内存、CPU、磁盘、网络等。

说明:
(1)客户端可以有多个
(2)集群上可以运行多个ApplicationMaster
(3)每个NodeManager上可以有多个Container

1.3.3 MapReduce 架构概述

MapReduce 将计算过程分为两个阶段:Map 和Reduce
1)Map 阶段并行处理输入数据
2)Reduce 阶段对Map 结果进行汇总
在这里插入图片描述

1.3.4 HDFS、YARN、MapReduce 三者关系

如图所示:
在这里插入图片描述

1.3.5 大数据技术生态体系

如图所示:
在这里插入图片描述
图中涉及的技术名词解释如下:

(1)Sqoop:Sqoop 是一款开源的工具,主要用于在Hadoop、Hive 与传统的数据库(MySQL)间进行数据的传递,可以将一个关系型数据库(例如 :MySQL,Oracle 等)中的数据导进到Hadoop 的HDFS 中,也可以将HDFS 的数据导进到关系型数据库中。
(2)Flume:Flume 是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume 支持在日志系统中定制各类数据发送方,用于收集数据。
(3)Kafka:Kafka 是一种高吞吐量的分布式发布订阅消息系统。
(4)Spark:Spark 是当前最流行的开源大数据内存计算框架。可以基于Hadoop 上存储的大数据进行计算。
(5)Flink:Flink 是当前最流行的开源大数据内存计算框架。用于实时计算的场景较多。
(6)Oozie:Oozie 是一个管理Hadoop 作业(job)的工作流程调度管理系统。
(7)Hbase:HBase 是一个分布式的、面向列的开源数据库。HBase 不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。
(8)Hive:Hive 是基于Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL 查询功能,可以将SQL 语句转换为MapReduce 任务进行运行。其优点是学习成本低,可以通过类SQL 语句快速实现简单的MapReduce 统计,不必开发专门的MapReduce 应用,十分适合数据仓库的统计分析。
(9)ZooKeeper:它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。

1.3.6 推荐系统框架图

推荐系统项目框架
在这里插入图片描述

2 Hadoop 运行环境搭建(开发重点)

2.1 模板虚拟机环境准备

2.1.1 hadoop100 虚拟机配置要求如下

(1)使用 yum 安装需要虚拟机可以正常上网,yum 安装前可以先测试下虚拟机联网情况

[root@hadoop100 ~]# ping www.baidu.com

   
  • 1

(2)安装epel-release

[root@hadoop100 ~]# yum install -y epel-release

   
  • 1

(3)注意:如果Linux 安装的是最小系统版,还需要安装如下工具;如果安装的是Linux桌面标准版,不需要执行如下操作
net-tool:工具包集合,包含ifconfig 等命令
vim:编辑器

[root@hadoop100 ~]# yum install -y net-tools
[root@hadoop100 ~]# yum install -y vim

   
  • 1
  • 2

2.1.2 关闭防火墙,关闭防火墙开机自启

[root@hadoop100 ~]# systemctl stop firewalld
[root@hadoop100 ~]# systemctl disable firewalld.service

   
  • 1
  • 2

2.1.3 创建普通用户,并修改普通用户的密码

[root@hadoop100 ~]# useradd Tom
[root@hadoop100 ~]# passwd Tom

   
  • 1
  • 2

2.1.4 配置普通用户具有 root 权限,方便后期加sudo 执行 root 权限的命令

[root@hadoop100 ~]# vim /etc/sudoers

   
  • 1

修改/etc/sudoers 文件,在%wheel 这行下面添加一行,如下所示:
在这里插入图片描述
注意:Tom这一行不要直接放到 root行下面,因为所有用户都属于 wheel组,你先配置了Tom具有免密功能,但是程序执行到 %wheel行时, 该功能又被覆盖回需要密码 。所以Tom要放到 %wheel这行下面。

2.1.5 在 /opt目录下创建文件夹 ,并修改所属用户和所属组
在这里插入图片描述
2.1.6 卸载虚拟机自带的 JDK

[root@hadoop100 ~]# rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps

   
  • 1

rpm -qa:查询所安装的所有rpm软件包
grep -i:忽略大小写
xargs -n1:表示每次只传递一个参数
rpm -e --nodeps:强制卸载软件
注意:注意:如果你的虚拟机是最小化安装不需要执行这一步。

2.1.7 重启虚拟机

[root@hadoop100 ~]# reboot

   
  • 1

2.2 克隆虚拟机

2.2.1 利用模板机 hadoop100,克隆 三台虚拟机 hadoop102 hadoop103 hadoop104

注意:克隆时,要先关闭 hadoop100

2.2.2 修改克隆机 IP,以 hadoop102 举例说明

(1)修改克隆虚拟机的静态 IP:

[Tom@hadoop100 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 

   
  • 1

在这里插入图片描述
(2)查看 Linux虚拟机的虚拟网络编辑器,编辑 ->虚拟网络编辑器 ->VMnet8
在这里插入图片描述
在这里插入图片描述
(3)查看 Windows系统适配器 VMware Network Adapter VMnet8的 IP地址

在这里插入图片描述
(4)保证 Linux系统 ifcfg-ens33文件中 IP地址、虚拟网络编辑器地址和 Windows系统 VMnet8网络 IP地址相同。

2.2.3 修改克隆机主机名 ,以 hadoop102举例说明

(1)修改主机名称

[root@hadoop100 ~]# vim /etc/hostname 

   
  • 1

(2)配置 Linux克隆机主机名称映射 hosts文件 打开 /etc/hosts

[root@hadoop100 ~]# vim /etc/hosts

   
  • 1

在这里插入图片描述
2.2.4 重启克隆机 hadoop102

[root@hadoop100 ~]# reboot

   
  • 1

2.2.5 修改 windows的主机映射文件(hosts文件)

进入C:\Windows\System32\drivers\etc路径,打开 hosts文件并添加如下内容 ,然后保存。
在这里插入图片描述

2.3 在 hadoop102 安装 JDK

(1)卸载现有 JDK
注意:安装 JDK前,一定确保提前删除了虚拟机自带的 JDK。

(2)用 XShell传输工具将 JDK导入到 opt目录下面的 software文件夹下面

(3)在 Linux系统下的 opt目录中查看软件包是否导入成功

[Tom@hadoop102 ~]$ ls /opt/software/
jdk-8u212-linux-x64.tar.gz

   
  • 1
  • 2

(4)解压 JDK到 /opt/module目录下

[Tom@hadoop102 software]$ tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/

   
  • 1

(5)配置 JDK环境变量

[Tom@hadoop102 software]$ sudo vim /etc/profile.d/my_env.sh 

   
  • 1

在这里插入图片描述
source一下 /etc/profile文件 ,让新的环境变量 PATH生效

[Tom@hadoop102 software]$ source /etc/profile

   
  • 1

测试JDK是否安装成功

[Tom@hadoop102 software]$ java -version
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)
[Tom@hadoop102 software]$ 

   
  • 1
  • 2
  • 3
  • 4
  • 5

2.4 在 hadoop102 安装 Hadoop

(1)用 XShell文件传输 工具将 hadoop-3.1.3.tar.gz导入到 opt目录下面的 software文件夹下面

(2)解压安装文件到 /opt/module下面

[Tom@hadoop102 software]$ tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/

   
  • 1

(3)查看是否解压成功

[Tom@hadoop102 software]$ ls /opt/module/
hadoop-3.1.3  jdk1.8.0_212

   
  • 1
  • 2

(4)将 Hadoop添加到环境变量

[Tom@hadoop102 software]$ sudo vim /etc/profile.d/my_env.sh 

   
  • 1

在这里插入图片描述
让修改后的文件生效

[Tom@hadoop102 software]$ source /etc/profile

   
  • 1

(5)测试是否安装成功

[Tom@hadoop102 software]$ hadoop version
Hadoop 3.1.3
Source code repository https://gitbox.apache.org/repos/asf/hadoop.git -r ba631c436b806728f8ec2f54ab1e289526c90579
Compiled by ztang on 2019-09-12T02:47Z
Compiled with protoc 2.5.0
From source with checksum ec785077c385118ac91aadde5ec9799
This command was run using /opt/module/hadoop-3.1.3/share/hadoop/common/hadoop-common-3.1.3.jar
[Tom@hadoop102 software]$ 

   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

(6)重启 如果 Hadoop命令不能用再重启虚拟机

[Tom@hadoop102 hadoop-3.1.3]$ sudo reboot

   
  • 1

2.5 Hadoop 目录结构

查看 Hadoop目录结构

[Tom@hadoop102 hadoop-3.1.3]$ ll
总用量 184
-rw-rw-r--. 1 Tom Tom     25 5月  28 16:49 a.txt
drwxr-xr-x. 2 Tom Tom    183 9月  12 2019 bin
drwxrwxr-x. 4 Tom Tom     37 5月  29 10:54 data
drwxr-xr-x. 3 Tom Tom     20 9月  12 2019 etc
drwxrwxr-x. 3 Tom Tom     18 5月  29 10:53 hdfsdata
drwxr-xr-x. 2 Tom Tom    106 9月  12 2019 include
drwxr-xr-x. 3 Tom Tom     20 9月  12 2019 lib
drwxr-xr-x. 4 Tom Tom    288 9月  12 2019 libexec
-rw-rw-r--. 1 Tom Tom 147145 9月   4 2019 LICENSE.txt
drwxrwxr-x. 3 Tom Tom   4096 5月  29 15:36 logs
-rw-rw-r--. 1 Tom Tom  21867 9月   4 2019 NOTICE.txt
-rw-rw-r--. 1 Tom Tom   1366 9月   4 2019 README.txt
drwxr-xr-x. 3 Tom Tom   4096 9月  12 2019 sbin
drwxr-xr-x. 4 Tom Tom     31 9月  12 2019 share
drwxrwxr-x. 2 Tom Tom     22 5月   6 22:23 wcinput
[Tom@hadoop102 hadoop-3.1.3]$ 

   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

重要目录

(1) bin目录:存放对 Hadoop相关服务( hdfs yarn mapred)进行操作的脚本
(2)etc目录: Hadoop的配置文件目录,存放 Hadoop的配置文件
(3) lib目录:存放 Hadoop的本地库(对数据进行压缩解压缩功能)
(4) sbin目录:存放启动或停止 Hadoop相关服务的脚本
(5) share目录:存放 Hadoop的依赖 jar包 、文档和官方案例

3 Hadoop 运行模式

Hadoop官方网站: http://hadoop.apache.org/

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

本地模式:单机运行,只是用来演示一下官方案例。 生产环境不用。
伪分布式模式: 也是单机运行,但是具备 Hadoop集群的所有功能。一台服务器模拟一个分布式的环境 。个别缺钱的公司用来测试,生产环境不用。
完全分布式模式: 多台服务器组成分布式环境。 生产环境使用。

完全分布式模式搭建步骤:
(1)准备 3台客户机( 关闭防火墙、静态 IP、主机名称)
(2)安装 JDK
(3)配置环境变量
(4)安装 Hadoop
(5)配置环境变量
(6)配置集群
(7)单点启动
(8)配置ssh
(9)群起并测试集群

3.1 编写集群分发脚本 xsync

(1)scp (secure copy):安全拷贝

scp可以实现服务器与服务器之间的数据拷贝 。(from server1 to server2)
基本语法:
在这里插入图片描述
(2)rsync远程同步工具

rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync和 scp区别: 用 rsync做文件的复制要比 scp的速度快, rsync只对差异文件做更新。 scp是把所有文件都复制过去。
基本语法:
在这里插入图片描述
(3)xsync集群分发脚本

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

需求分析:
rsync命令原始拷贝:

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

   
  • 1

期望脚本:xsync要同步的文件名称
期望脚本在任何路径都能使用 (脚本放在声明了全局环境变量的路径)

[Tom@hadoop102 bin]$ echo $PATH

   
  • 1

脚本实现:在 /home/Tom/bin目录下创建 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

修改脚本 xsync 具有执行权限:

[Tom@hadoop102 bin]$ chmod +x xsync 

 
  • 1

测试脚本:

[Tom@hadoop102 bin]$ xsync /home/Tom/bin/

 
  • 1

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

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

 
  • 1

同步环境变量配置( root所有者)
注意:如果用了 sudo,那么 xsync一定要给它的路径补全。

[Tom@hadoop102 ~]$ sudo ./bin/xsync 

 
  • 1

让环境变量生效:

[Tom@hadoop103 ~]$ source /etc/profile
[Tom@hadoop104 ~]$ source /etc/profile

 
  • 1
  • 2

3.2 SSH 无密登录配置

配置 ssh
基本语法:ssh 另一台电脑的 IP地址

无密钥配置

免密登录原理:
在这里插入图片描述
生成公钥和私钥

[Tom@hadoop102 .ssh]$ pwd
/home/Tom/.ssh

[Tom@hadoop102 .ssh]$ ssh-keygen -t rsa

 
  • 1
  • 2
  • 3
  • 4

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

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

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

 
  • 1
  • 2
  • 3

注意:还需要在hadoop103 上采用 Tom账号配置一下无密登录到hadoop102、hadoop103、hadoop104 服务器上。
在hadoop104 上采用 Tom账号配置一下无密登录到hadoop102、hadoop103、hadoop104 服务器上。
在hadoop102 上采用root 账号,配置一下无密登录到hadoop102、hadoop103、hadoop104。

.ssh 文件夹下(~/.ssh)的文件功能解释
在这里插入图片描述

3.3 集群配置

集群部署规划

(1)NameNode和 SecondaryNameNode不要安装在同一台服务器。
(2)ResourceManager也很消耗内存,不要和 NameNode、SecondaryNameNode配置在同一台机器上。
在这里插入图片描述
配置文件说明

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

(1)默认配置文件
在这里插入图片描述
(2)自定义配置文件

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

配置集群

(1)核心配置文件 配置core-site.xml

[Tom@hadoop102 hadoop]$ vim /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml 

 
  • 1
<configuration>
<!--指定NameNode的地址-->
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop102:8020</value>
</property>

<!--指定hadoop数据的存储目录-->
<property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-3.1.3/data</value>
</property>

<!--配置HDFS网页登录使用的静态用户为Tom -->
<property>
        <name>hadoop.http.staticuser.user</name>
<value>Tom</value>
</property>
</configuration>

 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

(2)HDFS配置文件 配置 hdfs-site.xml

[Tom@hadoop102 hadoop]$ vim /opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml 

 
  • 1
<configuration>
        <!--nn web端访问地址-->
        <property>
                <name>dfs.namenode.http-address</name>
                <value>hadoop102:9870</value>
        </property>
        <!--2nn web端访问地址-->
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>hadoop104:9868</value>
        </property>
</configuration>

 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

(3)YARN配置文件 配置 yarn-site.xml

[Tom@hadoop102 hadoop]$ vim /opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml 

 
  • 1
<configuration>
        <!--指定MR走shuffle -->
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <!--指定ResourceManager的地址-->
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>hadoop103</value>
        </property>
        <!--环境变量的继承-->
        <property>
                <name>yarn.nodemanager.env-whitelist</name>
                <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
        </property>
</configuration>

 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

(4)MapReduce配置文件 配置 mapred-site.xml

[Tom@hadoop102 hadoop]$ vim /opt/module/hadoop-3.1.3/etc/hadoop/mapred-site.xml 

 
  • 1
<configuration>
    <!--指定MapReduce程序运行在Yarn上-->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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

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

 
  • 1

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

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

 
  • 1
  • 2

3.4 群起集群

配置 workers

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

 
  • 1

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

hadoop102
hadoop103
hadoop104

 
  • 1
  • 2
  • 3

同步所有节点配置文件

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

 
  • 1

启动集群

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

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

 
  • 1

(2)启动 HDFS

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

 
  • 1

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

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

 
  • 1

(4)Web端查看 HDFS的 NameNode
(a)浏览器中输入 http://hadoop102:9870
(b)查看 HDFS上存储的数据信息
在这里插入图片描述
(5)Web端查看 YARN的 ResourceManager
(a)浏览器 中输入 http://hadoop103:8088
(b)查看 YARN上运行的 Job信息
在这里插入图片描述
集群基本测试

(1)上传文件到集群

[Tom@hadoop102 hadoop-3.1.3]$ hadoop fs -put wcinput/ /input
[Tom@hadoop102 hadoop-3.1.3]$ hadoop fs -put /opt/software/jdk-8u212-linux-x64.tar.gz /

 
  • 1
  • 2

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

[Tom@hadoop102 subdir0]$ pwd
/opt/module/hadoop-3.1.3/data/dfs/data/current/BP-572133316-192.168.10.102-1623663396433/current/finalized/subdir0/subdir0
[Tom@hadoop102 subdir0]$

 
  • 1
  • 2
  • 3

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

[Tom@hadoop102 subdir0]$ cat blk_1073741825
yes
ok
thanks
ok
you
yes
yes
[Tom@hadoop102 subdir0]$ 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

(3)拼接

[Tom@hadoop102 subdir0]$ cat blk_1073741826>>tmp.tar.gz
[Tom@hadoop102 subdir0]$ cat blk_1073741827>>tmp.tar.gz
[Tom@hadoop102 subdir0]$ tar -zxvf tmp.tar.gz

 
  • 1
  • 2
  • 3

(4)下载

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

 
  • 1

3.5 配置历史服务器

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

配置 mapred-site.xml

[Tom@hadoop102 hadoop-3.1.3]$ vim etc/hadoop/mapred-site.xml 

 
  • 1
 <!--历史服务器端地址-->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>hadoop102:10020</value>
    </property>
    <!--历史服务器web端地址-->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop102:19888</value>
    </property>

 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

分发配置

[Tom@hadoop102 hadoop-3.1.3]$ xsync etc/hadoop/mapred-site.xml 

 
  • 1

在 hadoop102启动历史服务器

[Tom@hadoop102 hadoop-3.1.3]$ mapred --daemon start historyserver

 
  • 1

查看历史服务器是否启动

[Tom@hadoop102 hadoop-3.1.3]$ jps

 
  • 1

查看 JobHistory

http://hadoop102:19888/jobhistory

3.6 配置日志的聚集

日志聚集概念:应用运行完成以后,将程序运行日志信息上传到 HDFS系统上。
在这里插入图片描述
日志聚集功能好处 :可以方便的查看到程序运行详情,方便开发调试 。
开启日志聚集功能需要重新启动 NodeManager 、ResourceManager和HistoryServer。

开启日志聚集功能具体步骤如下:
(1)配置 yarn-site.xml

[Tom@hadoop102 hadoop-3.1.3]$ vim etc/hadoop/yarn-site.xml

 
  • 1
<!--开启日志聚集功能-->
        <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
        </property>
        <!--设置日志聚集服务器地址-->
        <property>
                <name>yarn.log.server.url</name>
                <value>http://hadoop102:19888/jobhistory/logs</value>
        </property>
        <!--设置日志保留时间为7天-->
        <property>
                <name>yarn.log-aggregation.retain-seconds</name>
                <value>604800</value>
        </property>

 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

(2)分发配置

[Tom@hadoop103 hadoop-3.1.3]$ xsync etc/hadoop/yarn-site.xml 

 
  • 1

(3)关闭 NodeManager 、 ResourceManager和 HistoryServer

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

 
  • 1
  • 2

(4)启动 NodeManager 、 ResourceManage和 HistoryServer

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

 
  • 1
  • 2

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

[Tom@hadoop102 hadoop-3.1.3]$ hadoop fs -rm -r /output

 
  • 1

(6)执行 WordCount程序

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

 
  • 1

(7)查看日志

历史服务器地址:http://hadoop102:19888/jobhistory
历史任务列表:
在这里插入图片描述
查看任务运行日志:
在这里插入图片描述
运行日志详情:
在这里插入图片描述

3.7 集群启动/停止方式总结

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

start dfs.sh/stop dfs.sh

 
  • 1

(2)整体启动 /停止 YARN

start yarn.sh/stop yarn.sh

 
  • 1

各个服务组件逐一启动 /停止
(1)分别启动 /停止 HDFS组件

hdfs daemon start/stop namenode/datanode/secondarynamenode

 
  • 1

(2)启动 /停止 YARN

yarn daemon start/stop resourcemanager/nodemanager

 
  • 1

3.8 编写 Hadoop集群常用脚本

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

[Tom@hadoop102 hadoop-3.1.3]$ cd /home/Tom/bin/
[Tom@hadoop102 bin]$ vim myhadoop.sh 

 
  • 1
  • 2
#!/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

 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

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

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

 
  • 1

查看三台服务器 Java进程脚本: jpsall.sh

[Tom@hadoop102 hadoop-3.1.3]$ cd /home/Tom/bin/
[Tom@hadoop102 bin]$ vim jpsall.sh 

 
  • 1
  • 2
#!/bin/bash

for host in hadoop102 hadoop103 hadoop104
do
        echo =============== $host ===============
        ssh $host jps
done

 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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

[Tom@hadoop102 bin]$ chmod +x jpsall.sh 

 
  • 1

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

[Tom@hadoop102 bin]$ xsync /home/Tom/bin/

 
  • 1

3.9 常用端口号说明

在这里插入图片描述


参考:
https://www.bilibili.com/video/BV1Qp4y1n7ENspm_id_from=333.788.b_636f6d6d656e74.7

Hadoop 入门教程(超详细) 文章目录1. Hadoop 框架1.1 Hadoop 介绍1.1.1 Hadoop 是什么1.1.2 Hadoop 的发展历史1.1.3 Hadoop 三大发行版本1.1.4 Hadoop 的优势1.1.5 Hadoop 的组成 1. Hadoop 框架 1.1 Hadoop 介绍 1.1.1 Hadoop 是什么 Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构。 主要... 阅读详情

相关推荐

大数据技术之Hadoop介绍

1.大数据概述 大数据是指无法利用传统计算技术进行处理的大规模数据集合。大数据概念不再只是数据,大数据已经成为一个全面的主题概念,包含各类工具、技术以及框架。 大数据包括各类信息设备以及应用程序所产生的数据。大数据所涵盖的一些数据领域如下: 黑盒子数据:是指直升机、普通飞机及喷气式飞机等的组成部分。该数据采集了飞行机组人员的声音、麦克风和耳机的录音以及飞机的性能信息。 社...

小强的博客 6533

大数据技术之Hadoop

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 第一章 大数据概述 1.大数据概念 大数据(Big Data) :指无去在一定时间范围内用常规软件工具进行捕捉、管理和处理的数居集合,是需要新处理模式才能具有更强的央策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。 主要解决,海量数据的存储....

weixin_52112640的博客 5434

Hadoop 运行环境搭建--初学者版本

初学者使用VMware搭建hadoop集群环境搭建

Noxiousli的博客 880

Hadoop概述、运行环境搭建、运行模式

Sqoop 是一款开源的工具,主要用于在Hadoop、Hive 与传统的数据库(MySQL)间进行数据的传递,可以将一个关系型数据库(例如 :MySQL,Oracle 等)中的数据导进到Hadoop 的HDFS 中,也可以将HDFS 的数据导进到关系型数据库中。:Flume 是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume 支持在日志系统中定制各类数据发送方,用于收集数据。:它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。

顺其自然~专栏 3244

大数据技术之Hadoop(入门)第3章 Hadoop运行环境搭建

3.1 虚拟机环境准备 1) 克隆虚拟机 2) 修改克隆虚拟机的静态ip 3) 修改主机名 4) 关闭防火墙 5) 创建atguigu用户 6) 配置atguigu用户具有root权限 以上6条内容详见《尚硅谷大数据技术之Linux》文档。 7)在/opt目录下创建文件夹 (1)在/opt目录下创建module、software文件夹 [atguigu@hadoop101 op...

尚硅谷铁杆粉丝的博客 723

hadoop运行环境搭建

部署hadoop集群环境查阅了很多同仁写的资料,对我搭建成功帮助很大,因此也分享出我总结的资料,希望对新人有帮助。另外,在阅读中有不明白的请加我qq,一起探讨。

yxb666888的博客 998

MAC下搭建Hadoop运行环境

Hadoop环境的搭建和配置还是有些麻烦的,尤其是mac,此处整理下自己搭建的过程和步骤。

公众号:白程序员的自习室 1万+

手把手教你获取全国街道级GeoJSON数据:前端地图开发必备技巧

本文详细介绍了获取全国街道级GeoJSON数据的多种方法,从前端地图开发的实际需求出发,涵盖了免费获取省市县级数据的工具如阿里云DataV.GeoAtlas和HashTang,以及进阶的街道级数据获取方案,包括使用Bigemap GIS Office和专业数据采购。文章还提供了数据处理与优化技巧,帮助开发者高效使用GeoJSON数据进行地图可视化。

weixin_29053383的博客 289

在idea中搭建hadoop运行环境

今天我将为大家讲解一下如何使用idea搭建Hadoop运行环境,它一共有一下几个步骤: (1)、下载hadoop jar包 根据自己电脑的操作系统到官网下载hadoop jar包到非中文路径(例如:D:\Develop\hadoop-2.7.2) (2)、配置HADOOP_HOME环境变量 (3)、配置Path环境变量 4.创建一个Maven工程HadoopDemo 5.在pom文件中导入相应的依赖坐标+日志添加 <dependencies> <dependency

qq_43742526的博客 5860

将pytorch的权值矩阵量化为定点数补码并导入FPGA中

Xilinx FPGA实现LSTM算法时对ROM的初始化 将pytorch框架的权重矩阵以定点数补码的形式导入到FPGA中 文章目录Xilinx FPGA实现LSTM算法时对ROM的初始化1. pytorch框架中的LSTM2. 初始化一个RNN模型 3. 初始化ROM的coe文件格式 4. 将参数转换为补码,并且输出到coe文件 5. 配置一个ROM 6. 结论7. 代码 1. pytorch框架中的LSTM pytorch框架将LSTM算法中的八个权值矩阵连接成两个矩阵,假设要导入的LSTM网络的输

随缘分享 4528

解决fetch_california_housing数据集403错误的三种实用方法

本文针对机器学习初学者加载fetch_california_housing数据集时常见的HTTPError 403: Forbidden错误,提供了三种经过实测的解决方案。详细介绍了手动下载与本地替换、修改源码下载路径以及配置网络访问策略的具体步骤,帮助用户根据自身网络环境和开发场景选择最佳方法,确保数据集顺利加载。

weixin_29074295的博客 550

Hadoop运行环境搭建

访问namenode、secondarynamenode、ResourceManager的web页面。路径 (C:\Windows\System32\drivers\etc\hosts)​ yum安装一些必要的命令或环境(如果安装的是桌面版,则直接跳过这一步)为了查看程序的历史运行情况,配置mapred-site.xml,增加如下内容。(19、20、21三个脚本都放在/usr/bin/目录下)在namenode所在的节点上启动namenode。官方wordcount案例。分发配置文件,即时更新。

bboy_longyi的博客 887

set_output_delay的本质

set_output_delay的本质

qq_33300585的博客 3393

大数据技术之Hadoop-运行环境搭建

Hadoop 运行环境搭建

qq_33934592的博客 1963

树莓派4在Bookworm Raspbian系统下无法进入桌面模式(启动后出现彩色画面,然后一直黑屏,但是可以正常启动和ssh)

本文记录了这段比较坎坷的探索之路,由于你的问题不一定是我最终解决方案的,可能是前面探索路上试过的,所以建议按顺序看排除前置问题。 双十一又买了个树莓派 4B,插上之前树莓派 4B 的 TF 卡直接就能使用(毕竟是一样规格的)。但是由于用来连接硬盘的 USB 线是坏的,我以为是系统问题就进行了重装(所以坏掉的线还是直接扔了好)。 重新安装系统就装了最新的 2023-10-10 版本的 64 位的 Raspberry Pi OS,但是出现了一个问题: 启动后出现彩色画面,然后一直黑屏。

ZhongUncle的博客 3735

文石NoteX3国行版安装 Google Play经验分享

文石NoteX3国行版安装 Google Play经验分享。

2301_80693261的博客 7618

大数据技术之Hadoop运行环境搭建

1、Hadoop是一个由Apache基金会所开发的分布式系统基础架构。2、主要解决,海量数据的存储和海量数据的分析计算问题。3、广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈。

Meguling的博客 1152

【100分】【等和子数组最小和】

逆序排序,这样能够使得在分组时优先选取较大的元素,以便将元素分配到较小的子集中,从而使得每个子集的和相对均衡。给定一个数组nums,将元素分为若干个组,使得每组和相等,求出满足条件的所有分组中,组内元素和的最小值。分成若干个组,使得每组的和相等,并求出满足条件的所有分组中,组内元素和的最小值。在递归的过程中,我们需要注意一个优化点,即避免将相同和的桶重复计算。4 个子集(5),(1,4),(2,3),(2,3)2 个子集(5, 1, 4),(2,3, 2,3)个子集,则返回子集和的最小值,如果不能,则将。

weixin_54707168的博客 1169

Hadoop三种模式运行环境搭建

core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml四个配置文件存放在$HADOOP_HOME/etc/hadoop这个路径上,用户可以根据项目需求重新进行修改配置。-rw-r–r–. 1 hadoop hadoop 15429 6月 29 2015 LICENSE.txt。-rw-r–r–. 1 hadoop hadoop 101 6月 29 2015 NOTICE.txt。

小Ti博客 1063

【100分- 求最多可以派出多少支团队】(题目+思路+Java&C++&Python解析+在线测试)

用数组代表每个人的能力,一个比赛活动要求参赛团队的最低能力值为N,每个团队可以由1人或者2人组成,且1个人只能参加1个团队,计算出最多可以派出多少只符合要求的团队。

m0_73659489的博客 313

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

大数据技术——Hadoop运行环境搭建

注:Extra Packages for Enterprise Linux是为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux。使用linux上面的工具yum下载epel软件库中的软件的时候,默认访问的是国外的地址,所有最好修改为国内的仓库地址,下载速度会显著提升。④将桌面hosts文件覆盖C:\Windows\System32\drivers\etc路径hosts文件。(2)查看Linux虚拟机的虚拟网络编辑器,编辑->虚拟网络编辑器->VMnet8。

weixin_63106307的博客 1540

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Hadoop-入门

高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。高容错性:能够自动将失败的任务重新分配。Hadoop Distributed File System,简称 HDFS,是一个分布式文件系统。NameNode(nn):存储文件的元数据,如文件名文件目录结构文件属性(生成时间、副本数、 文件权限)

Mi_Manchikkk的博客 1191

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

上一篇: 数据库 面试宝典
下一篇: java集合超详解
OpenSource_
博客等级 码龄5年 48粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值