大数据处理技术导论(1) | Datawhale组队学习46期

前言

2023年2月份,本月又要参加 datawhale 组队学习了,本次是第 46 期,本期参加的课程是《大数据处理技术导论》,项目地址 https://github.com/datawhalechina/juicy-bigdata,感谢项目团队的付出。

1. 大数据概述

20 世纪以来,在全世界范围内,电子化、信息化高速发展,人们逐步进入”后纸化时代“。相比于之前的物理载体(有陶器,动物甲骨,青铜器,竹简,木牍,缣帛,纸等),电子媒介所承载的信息以指数级增长。可以说”电子媒介的出现是信息传播史上的重大革命“。电子媒介所承载的信息不再局限于文字,已经扩展到图像,音频、视频等。电子媒介的快速发展,产生了海量的数据(电子信息),如果高效处理这些电子信息便于大数据处理技术研究的方向。
那么,到底什么是大数据呢?
简而言之,大数据有如下几个特征:

1.1 数据量大 Volume

20 世纪 80 年代以来,全球数据的数量以指数级的方式增长,特点就是多。

1.2 数据种类多 Variety

数据总量增长如此之快,跟期产生途径种类繁多有关。每天一醒来,我们看到的新闻资讯、和小度的日常交流、与早餐店交易、刷刷微博、看看抖音等等,都是产生大量的数据。

1.3 处理速度快 Velocity

我们每天产生的数据是海量的,而日常信息是应当被及时、快速处理的。比如:购买商品后,银行卡存款余额应实时变化;各大媒体都想发布第一版咨询等等。

1.4 价值密度低 Value

数据总量多了,其信息密度就会降低。几个 GB 的日志文件中,关键信息只有几条。

如果高效处理大数据,便是本次课程所研究的内容。

2. hadoop

2.1 hadoop 简介

hadoop 是 apache 基金会旗下的一款开源的、廉价的分布式计算平台。hadoop 的诞生得益于 Google 的两篇论文,分别是关于 GFS 文件系统和 MapReduce 编程模型。Hadoop 之父 Doug Cutting 基于这两篇论文开发了 hdfs 和 hadoop。不得不承认 Google 是一家伟大的公司,因为它成功的推进了世界的发展进程。

2.2 hadoop 特性

Hadoop 的快速发展,得益于它的如下几个特性:

  • 高可靠:采用冗余备份存储,不同副本存储于集群的不同位置,大大提高了数据的可靠性。
  • 高效:采取分布式架构进行存储和计算,有效利用集群资源,可处理 PB 级别数据。
  • 可水平扩展:hadoop 可水平扩展至上千台节点。
  • 高容错:采用冗余备份模型进行存储,可自动将失败的任务进行重新分配。
  • 低成本:可采用廉价的服务器进行集群的部署,成本较低。甚至,普通用户可以使用个人 PC 搭建 hadoop 运行环境(伪分布式或者集群模式)。

2.3 hadoop 环境部署

2.3.1 准备材料

  • VMware
    windows10 操作系统,VMware 好用一些,windows11 操作系统使用 VMware 创建虚拟机有坑,我曾经尝试了很多版本的 VMware 差点都要放弃了,最终在一位热心群友的帮助下拿到了一款可用的 VMware ,下边是下载链接

VMware Pro 16.1.0
链接:https://pan.baidu.com/s/1OoDkzloqLxfz3yleLt9Sng?pwd=f5ec
提取码:f5ec

  • CentOS
    我使用 CentOS 7 版本进行部署。
  • jdk(需先删除虚拟机自带的 jdk 版本)
    jdk 版本:jdk-8u212-linux-x64.tar.gz,上传至虚拟机 /opt/software 目录

链接:https://pan.baidu.com/s/16VWE-VJJniJPbiXHeYUoYA?pwd=ydlh
提取码:ydlh

将 jdk 解压至 /opt/module 目录

[root@hadoop102 ~]$ tar -xzvf /opt/software/jdk-8u212-linux-x64.tar -C /opt/module
  • hadoop
    hadoop 版本:3.1.3,上传至虚拟机 /opt/software 目录

2.3.2 操作步骤

2.3.2.1 创建 omc 用户

创建 omc 用户用于 hadoop 相关操作。

[root@hadoop102 ~]$ adduser omc # 创建 omc 用户

切换到 omc 用户

[root@hadoop102 ~]$ su omc # 切换到 omc 用户

将 jdk 目录的属组权限调整为 omc

[root@hadoop102 ~]$ chown -R omc:omc /opt/module/jdk1.8.0_212

2.3.2.2 配置环境变量

  • 新建 /etc/profile.d/my_env.sh 文件
[omc@hadoop102 ~]$ sudo vim /etc/profile.d/my_env.sh

添加如下内容并保存(:wq!

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin

输入如下命令,使得环境变量生效

[omc@hadoop102 ~]$ source /etc/profile

验证 jdk 是否安装成功

[omc@hadoop102 ~]$ java -version

看到如下结果,说明 jdk 安装成功

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)

2.3.2.3 hadoop 安装(单机版)

解压 hadoop 到 /opt/module 目录下

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

修改环境变量

  • 打开 /etc/profile.d/my_env.sh 文件
[omc@hadoop102 ~]$ sudo vim /etc/profile.d/my_env.sh

添加如下内容并保存(:wq!

#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

输入如下命令,使得环境变量生效

[omc@hadoop102 ~]$ source /etc/profile

测试 hadoop 是否安装成功

[omc@hadoop102 hadoop-3.1.3]$ hadoop version

返回如下结果,说明 hadoop 安装成功

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

2.3.2.4 hadoop 集群搭建

搭建集群时,建议首先安装模板虚拟机,所谓模板虚拟机,就是这台虚拟机上应当具有集群服务器共有的东西,比如说用户、属组权限、目录、常用软件(epel-release、net-tools)等。
需要特别注意的是:建议给普通用户添加 root 权限,方便后期使用 sudo 执行 root 命令,具体方法为
打开 /etc/sudoers 进行编辑

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

%wheel 那一行下边添加

omc     ALL=(ALL)       NOPASSWD:ALL

如下图所示:
在这里插入图片描述
准备好模板机之后,就可以进行克隆了:(模板机关机状态下进行克隆)
在这里插入图片描述
使用模板机 hadoop100 克隆3太虚拟机,分别为 hadoop102、hadoop103、hadoop104。
然后,依次对克隆出来的虚拟机进行配置的修改。(以 hadoop102 为例)

  • 修改克隆机的静态 IP
[root@hadoop100 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
改成
DEVICE=ens33
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
NAME="ens33"
IPADDR=192.168.10.102
PREFIX=24
GATEWAY=192.168.10.2
DNS1=192.168.10.2
  • 查看Linux虚拟机的虚拟网络编辑器,编辑->虚拟网络编辑器->VMnet8
    在这里插入图片描述
    在这里插入图片描述
  • 查看Windows系统适配器VMware Network Adapter VMnet8的IP地址
    在这里插入图片描述
  • 修改主机名
[root@hadoop100 ~]# vim /etc/hostname
hadoop102
[root@hadoop102 ~]# vim /etc/hosts
添加如下内容
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
  • 重启 hadoop102
[root@hadoop102 ~]# reboot
  • 修改 windows hosts 文件(主机映射文件)
    路径:C:\Windows\System32\drivers\etc,打开后在尾部添加如下内容,保存后退出。
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104

至此,虚拟机 hadoop102 配置项修改完毕,hadoop103 / hadoop104 参照进行修改,此处不再赘述。

3台虚拟机准备好之后,模板机就可以删除了,之后,按照单机版 hadoop 操作过程按照 hadoop 即可。

2.3.2.5 群起hadoop 集群

  • 配置免密登录
[omc@hadoop102 ~]$ cd /home/omc/.ssh

[omc@hadoop102 .ssh]$ ssh-keygen -t rsa
连续敲三次回车,即可生成公钥 `id_rsa.pub` 和私钥 `id_rsa`
  • 拷贝公钥
[omc@hadoop102 .ssh]$ ssh-copy-id hadoop102
[omc@hadoop102 .ssh]$ ssh-copy-id hadoop103
[omc@hadoop102 .ssh]$ ssh-copy-id hadoop104

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

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

[root@hadoop102 .ssh]$ ssh-copy-id hadoop102
[root@hadoop102 .ssh]$ ssh-copy-id hadoop103
[root@hadoop102 .ssh]$ ssh-copy-id hadoop104
  • 集群规划
    1、NameNode和SecondaryNameNode不要安装在同一台服务器;
    2、ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上。
    具体规划如下:
    在这里插入图片描述
  • core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml四个配置文件参数修改
    1、配置core-site.xml
[omc@hadoop102 ~]$ cd $HADOOP_HOME/etc/hadoop
[omc@hadoop102 hadoop]$ vim core-site.xml
文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<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网页登录使用的静态用户为omc -->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>omc</value>
    </property>
</configuration>

2、配置hdfs-site.xml

[omc@hadoop102 hadoop]$ vim hdfs-site.xml
文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<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>

3、配置yarn-site.xml

[omc@hadoop102 hadoop]$ vim yarn-site.xml
文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<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>

4、配置mapred-site.xml

[omc@hadoop102 hadoop]$ vim mapred-site.xml
文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
	<!-- 指定MapReduce程序运行在Yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
  • 分发 hadoop 配置文件到集群的其他主机上
[omc@hadoop102 hadoop]$ xsync /opt/module/hadoop-3.1.3/etc/hadoop/

登录 hadoop103 / hadoop104 查看分发情况

[omc@hadoop103 ~]$ cat /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml
[omc@hadoop104 ~]$ cat /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml
  • 配置 workers
[omc@hadoop102 hadoop]$ vim /opt/module/hadoop-3.1.3/etc/hadoop/workers
在该文件中增加如下内容:
hadoop102
hadoop103
hadoop104

分发至其他节点

[omc@hadoop102 hadoop]$ xsync /opt/module/hadoop-3.1.3/etc
  • 启动集群
    1、初次启动集群,需要格式化 namenode
[omc@hadoop102 hadoop-3.1.3]$ hdfs namenode -format

2、启动 HDFS

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

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

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

4、浏览器访问 http://hadoop102:9870 查看 namenode 信息
在这里插入图片描述
5、浏览器访问 http://hadoop103:8088 查看 yarn 上运行的 job 信息
在这里插入图片描述
至此,hadoop 集群环境搭建完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值