大数据Hadoop完全分布式及心得体会

这篇具有很好参考价值的文章主要介绍了大数据Hadoop完全分布式及心得体会。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

认识hadoop,根据所学知识完成作业,并总结本学期心得体会。


一、认识hadoop

Hadoop是一个分布式系统基础技术框架,利用hadoop,开发用户可以在不了解分布式底层细节的情况下,开发分布式程序,从而达到充分利用集群的威力高速运算和存储的目的;而在本学期中,我们的专业老师带我们学习了Hadoop框架中最核心的设计:MapReduceHDFS
MapReduce从字面上就能看出,是由两个动词Map和Reduce组成,“Map” 就是将一个任务分解成为多个任务,“Reduce” 就是将分解后多任务处理的结果汇总起来,得出最后的分析结果。即把一个巨大的任务分割成许许多多的小任务单元,最后再将每个小任务单元的结果汇总,并求得最终结果。
而map的输出和reduce的输入之间的还有一个数据处理过程,即为shuffle过程。该过程涉及分区、排序、分组等操作。

数据流转过程
hadoop学习心得,hadoop,大数据,分布式
HDFS的中文翻译是Hadoop分布式文件系统(Hadoop Distributed File System)。它本质还是程序,主要还是以树状目录结构来管理文件(和linux类似,/表示根路径),且可以运行在多个节点上(即分布式);它可以存储海量离线数据(如TB、PB、ZB级别的数据),并且保证数据高可用,支持高并发访问。但并不适合将大量的小文件存到HDFS。其主要原因是:HDFS的NameNode进程在内存中存储文件的元数据,故文件越多,消耗的内存就越大。大量的小文件,耗尽NameNode节点的内存,而实际存的文件总量却很小,HDFS存海量数据的优势没有发挥出来。

HDFS的框架
hadoop学习心得,hadoop,大数据,分布式
hadoop学习心得,hadoop,大数据,分布式
HDFS存文件的时候,会将文件按照一定的大小(默认是128M)进行分割,独立存储,这些独立的文件即为数据块(Block)。


二、一课一得作业讲解

题: 模拟生成新能源车辆数据编写一个程序,每天凌晨3点模拟生成当天的新能源车辆数据(字段信息必须包含:车架号、行驶总里程、车速、车辆状态、充电状态、剩余电量SOC、SOC低报警、数据生成时间等)。

1、最终部署时,要将这些数据写到第一题的HDFS中。

2、车辆数据要按天存储,数据格式是JSON格式,另外如果数据文件大于100M,则另起一个文件存。每天的数据总量不少于300M。比如假设程序是2023-01-1 03点运行,那么就将当前模拟生成的数据写入到HDFS的/can_data/2023-01-01文件夹的can-2023-01-01.json文件中,写满100M,则继续写到can-2023-01-01.json.2文件中,依次类推;

3、每天模拟生成的车辆数据中,必须至少包含20辆车的数据,即要含有20个车架号(一个车架号表示一辆车,用字符串表示);

4、每天生成的数据中要有少量(20条左右)重复数据(所有字段都相同的两条数据则认为是重复数据),且同一辆车的两条数据的数据生成时间间隔两秒;

5、每天生成的数据中要混有少量前几天的数据(即数据生成时间不是当天,而是前几天的)。

实现步骤

  1. 搭建集群
  2. 模拟生成新能源车辆数据编写一个程序
  3. 最终部署,将这些数据写到HDFS中。

1. 搭建集群

集群规划

主机IP 主机名 HDFS YARN
192.168.91.4 master NameNode DataNode ResourceManager NodeManager
192.168.91.5 save1 SecondaryNameNode DataNode NodeManager
192.168.91.6 save2 DataNode NodeManager

(1) 准备三台虚拟机,之前在伪分布式中部署过一台虚拟机了,因此直接复制三份虚拟机即可

1.1 先创建三个文件夹,并分别在每一个文件夹中复制一个虚拟机

hadoop学习心得,hadoop,大数据,分布式

1.2 启动VMware,重命名三个节点的名称分别为master save1 save2

1.3 分别修改master、save1、save2中的ip并重启网卡

hadoop学习心得,hadoop,大数据,分布式

修改IP命令
vi /etc/sysconfig/network-scripts/ifcfg-ens33;

Esc 保存退出
:wq

重启网卡命令:service network restart;


(2) 修改master、save1、save2的主机名

hadoop学习心得,hadoop,大数据,分布式

重命名命令:
hostnamectl set-hostname master  //master
hostnamectl set-hostname save1  //save1
hostnamectl set-hostname save2  //save2

(3) 添加IP的映射
hadoop学习心得,hadoop,大数据,分布式

添加IP的映射命令
vi /etc/hosts

Esc 保存退出
:wq

(4) 免密登录
因为master、save1、save2三个节点都是从之前的已经安装好Hadoop伪分布式的虚拟机复制得来,而当时已经设置了免密登录,故不需再设置了。也就是master可以免密登录到master、save1、save2。

(5) 关闭防火墙
同理,之前已经设置不允许防火墙开机自启,默认开机是关闭的,故也不需要操作。

(6) 删除伪分布式data的数据

切换到该路径下
cd /usr/local/hadoop-2.7.1/

删除命令
rm -rf ./data/

(7) 修改master 的配置文件

7.1
hadoop学习心得,hadoop,大数据,分布式

命令示例
vi core-site.xml;

Esc 保存退出
:wq

7.2
hadoop学习心得,hadoop,大数据,分布式

命令示例

vi hdfs-site.xml;

Esc 保存退出
:wq

7.3
hadoop学习心得,hadoop,大数据,分布式

命令示例

vi yarn-site.xml;

Esc 保存退出
:wq

7.4
hadoop学习心得,hadoop,大数据,分布式

命令示例

vi saves;

Esc 保存退出
:wq

(8)将刚才master的配置信息同步到saev1、saev2上

hadoop学习心得,hadoop,大数据,分布式

同步到saev1
scp /etc/hosts root@save1:/etc;

同步到saev2
scp /etc/hosts root@save2:/etc;

(9)时间同步

  1. 下载ntpdate插件
    yum install -y ntpdata
    2.时间同步命令
    ntpdate ntp4.aliyun.com;

(10)将NameNode格式化

hdfs namenode -format

ps:禁止重复格式化


(11)启动集群

分别在master、save1,save2节点上都输入一遍start-all.sh

代码示例:
start-all.sh

至此,三个节点的集群就可以算搭建成功!

2. 模拟生成新能源车辆数据编写一个程序

2.1 生成车辆数据
(1)先随机生成20辆车的车架号,并把它存入一个空的列表中;
(2)设置每一个值的状态;
(3)设置数据生成的时间;
(4)把数据存入列表中;

hadoop学习心得,hadoop,大数据,分布式

代码示例:

def generate_data():
    vin_list = ['VIN{}'.format(i) for i in range(1,21)] # 车架号列表
    data_list = []
    for vin in vin_list:
    mileage = round(random.uniform(1000,10000),2) # 行驶总里程
        speed = round(random.uniform(0,120),2) # 车速
        status = random.choice(['running’,'stopped']) # 车辆状态
        charge_status = random.choice(['charging','discharging','idle']) # 充电状态
        soc = round(random.uniform(0,100),2) # 剩余电量SOC
        soc_Low_alert = random.choice([True,False]) # SOC低报警
        timestamp = int(time.time()) # 数据生成时间
        data = {
            'vin': vin,
            'mileage': mileage
            ' speed': speed,
            ' status': status ,
            ' charge_status': charge_status
            ' soc': soc,
            'soc_low_alert': soc_low_alert
            'timestamp': timestamp
        }
        data_list.append(data)
    return data_list


2.2.添加重复数据
(1)添加重复数据,使用随机添加,在20辆车中随机添加一些重复的数据;
(2)看题目要求:每天生成的数据中要混有少量前几天的数据(即数据生成时间不是当天,而是前几天的),所以我们要添加前几天的数据;
(3)按时间排序:data.sort(key=lambda x:x[‘timestamp’])
(4)添加时间间隔为2秒的重复数据
(5)将数据写入HDFS

hadoop学习心得,hadoop,大数据,分布式
代码示例:

data = generate_data()
#添加重复数据
repeat_data = random.sample(data, 20)
data += repeat_data
#添加前几天的数据
for i in range(20):
	timestamp = int(time.time()) - (i + 1) * 24 * 60 * 60
	vin = 	random.choice(['VIN{}'.format(i) for i in range(1,21)])
	data.append({
		' vin': vin,
		'mileage': round(random.uniform(1000,10000),2),
		'speed': round(random.uniform(0,120), 2),
		' status': random.choice(['running','stopped']),
		'charge_status': random.choice(['charging','discharging','idle']),
		' soc': round(random.uniform(0, 100),2),
		'soc_Low_alert': random.choice([True, False]),
		'timestamp': timestamp
	})
	#按时间排序
data.sort(key=lambda x: x['timestamp'])  #添加时间间隔为2秒的重复数据
for i in range(len(data) - 1):
	if data[i]['vin'] == data[i + 1]['vin']:
	data.insert(i + 1,data[i].copy())
	data[i + 1]['timestamp'] += 2
	#写入HDFS
write_to_hdfs(data, hdfs_path)


3. 最终部署,将这些数据写到HDFS中。

1.打包生成jar包,并提交至Hadoop集群运行
2.设置定时任务,规定每天凌晨三点的第一分钟运行一次

三、学习收获

互联网的快速发展带来了数据快速增加,海量数据的存储已经不是一台机器所能处理的问题了。Hadoop的技术就应运而生。在本学期中专业老师的授课下,我对于这个概念有了一个比较系统的了解。
大数据Hadoop是一个非常重要的实际项目,对于所有想要了解大数据和Hadoop生态系统的人来说都是一个很好的机会。在课上课后的实操过程中,我不仅学到了Hadoop的基础知识,同时也学到了如何使用Hadoop来处理大数据。实操的过程需要我们掌握一些关于大数据的技能,如如何使用MapReduce算法,以及如何使用IDEA API来进行大数据分析。
总的来说,通过学习本学期这门课程,我对大数据和Hadoop系统有了较深入的了解,并且也加深了我的实操应用能力。我相信,随着大数据和人工智能的不断发展,这项技能将在未来发挥更大的作用。文章来源地址https://www.toymoban.com/news/detail-716476.html

到了这里,关于大数据Hadoop完全分布式及心得体会的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hadoop完全分布式搭建

    1.下载VM 2.下载Centos镜像 3.下载hadoop 4.下载FinalShell 5.下载jdk文件  6.下载hive,数据仓库学习大数据专业的用的到     注:开启虚拟机把鼠标放入屏幕点击后消失,使用键盘上下键进行选择   注:点击之后,什么都不动,再点击完成(因为它自动帮我们分区了) 注:我们配置

    2024年02月04日
    浏览(48)
  • 搭建完全分布式Hadoop

    登录三个虚拟机 执行命令: vim /etc/hosts 1、上传安装包 上传hadoop安装包 查看hadoop安装包 2、解压缩安装包 执行命令: tar -zxvf hadoop-3.3.4.tar.gz -C /usr/local 查看解压后的目录 3、配置环境变量 执行命令: vim /etc/profile 存盘退出,执行命令: source /etc/profile ,让配置生效 查看had

    2024年02月04日
    浏览(54)
  • Hadoop 完全分布式部署

    前期准备 分析: 准备3台客户机(关闭防火墙、静态IP、主机名称) 【CentOS 7】 安装JDK 【jdk1.8】 安装Hadoop 【hadoop 3.3.4】 配置环境变量 配置ssh 配置集群 单点启动 群起并测试集群 Hadoop 集群规划: node1 node2 node3 IP 10.90.100.121 10.90.100.122 10.90.100.123 HDFS NameNode 、 DataNode DataNode D

    2024年03月23日
    浏览(48)
  • Hadoop完全分布式集群搭建

    1.在虚拟机关机的状态下选择克隆 2.开始克隆 3.选择从当前状态创建 4.创建一个完整的克隆 5.选择新的虚拟机存储位置(选择内存充足的磁盘) 6.开始克隆 7.克隆完成 8.同样的方法克隆第二台虚拟机 9.在计算机中存在三台虚拟机 将第一台虚拟机更名为hadoop01 修改hadoop01的主机

    2024年02月02日
    浏览(47)
  • Hadoop的完全分布式搭建

    主机名 Hadoop10 Hadoop11 Hadoop12 网络 192.168.10.10 192.168.10.11 192.168.10.12 用户 hadoop root hadoop root hadoop root HDFS NameNode DateNode DateNode Secondary NameNode DataNode YARN NodeManager NodeManager ResourceManager NodeManager 安装虚拟机系统,省略 第一步:网卡配置 使用 vi 编辑器编辑系统的网卡配置文件,配置以下

    2024年02月08日
    浏览(41)
  • hadoop平台完全分布式搭建

    安装前准备 一、设置ssh免密登录 1.编辑hosts文件,添加主机名映射内容 vim  /etc/hosts 添加内容: 172.17.0.2      master 172.17.0.3      slave1 172.17.0.4      slave2 2.生成公钥和私钥 ssh-keygen –t rsa 然后按三次回车 3.复制公钥到其他容器(包括自己) ssh-copy-id master ssh-copy-id slav

    2024年03月17日
    浏览(47)
  • 【Hadoop】完全分布式集群搭建

    大家好,我是向阳花花花花,这篇文章是我历时三天,推翻重做两小时进行搭建的Hadoop集群(完全分布式)个人笔记和感想,收录于初心的《大数据》专栏。 🏠 个人主页:初心%个人主页 🧑 个人简介:大家好,我是初心,一名正在努力的双非二本院校计算机专业学生 💕

    2024年02月15日
    浏览(41)
  • Hadoop 完全分布式集群搭建

    部署前可以先了解下 Hadoop运行模式及目录结构-CSDN博客 服务 hadoop102 hadoop103 hadoop104 NameNode √ DataNode √ √ √ Secondary NameNode √ ResourceManager √ NodeManager √ √ √ JobHistoryServer √ IPv4 192.168.88.102 192.168.88.103 192.168.88.104 NodeObject master worker1 worker2 最小化安装 Neokylin7.0 用于搭建 Had

    2024年02月04日
    浏览(56)
  • Hadoop完全分布式搭建(Hadoop-3.3.0)

            本教程讲解Hadoop-3.3.0在Ubuntu系统下集群的搭建。         在正式开始之前,需要自己先安装好一台虚拟机。下面给大家整理了过程中需要用到的资源包,可以自行获取: 1.打开终端,输入命令,创建新用户 2.为hadoop用户设置密码 3.为了我们后面操作方便,这里可以给

    2024年04月11日
    浏览(37)
  • hadoop01_完全分布式搭建

    Hadoop运行模式包括: 本地模式 (计算的数据存在Linux本地,在一台服务器上 自己测试)、 伪分布式模式 (和集群接轨 HDFS yarn,在一台服务器上执行)、 完全分布式模式 。 本地模式 :(hadoop默认安装后启动就是本地模式,就是将来的数据存在Linux本地,并且运行MR程序的时

    2024年02月04日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包