模拟生成新能源车辆数据,并写入HDFS中

目录

基本要求如下

一、虚拟机的准备

二、生成新能源车辆数据

1、导入需要用到的库

2、生成车辆数据

三、将数据写入json文件

四、将文件写入HDFS

1、下载pyhdfs

2、将文件写入HDFS中

五、总结


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

基本要求如下

1、最终部署时,要将这些数据写到HDFS

2、车辆数据要按天存储,数据格式是JSON格式,另外如果数据文件大于100M,则另起一个文件存。每天的数据总量不少于300M

3、每天模拟生成的车辆数据中,必须至少包含20辆车的数据,即要含有20个车架号

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

5、每天生成的数据中要混有少量前几天的数据

本人也是一位正在学习中的新手,了解有限,有什么错误的地方大家多多指点。

一、虚拟机的准备

1、首先部署好三个节点(此节点是从伪分布式复制过来的,伪分布式已经部署过部分内容

192.168.216.101   master
192.168.216.102   slave1
192.168.216.103   slave2

2、使用vi /etc/sysconfig/network-scripts/ifcfg-ens33对IP进行修改

 修改IP之后重启网卡:systemctl restart network

3、设置主机名和映射

 

 master的hosts映射配置好后,可以通过scp命令,将master修改好的/etc/hosts文件,同步到slave1、slave2主机上。

scp /etc/hosts root@slavel:/etc

将hosts同步到另外两个虚拟机的/etc路径下,默认覆盖原有文件

验证映射是否成功:ping 主机名,能ping成功说明映射成功

4、设置免密登录、关闭防火墙,并禁止防火墙开机自启

关闭防火墙

systemctl stop firewalld

5、修改master主机上的hadoop配置文件,配置好后同步到其他两个主机上

分别是:

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要将RabbitMQ数据写入HDFS,可以使用Flume来实现。Flume是一个分布式、可靠、高可用的日志收集和聚合系统,支持从多个数据源(包括RabbitMQ)获取数据,并将数据写入到多个目的地(包括HDFS。 下面是一个使用Flume读取RabbitMQ数据写入HDFS的简单示例: 1. 安装RabbitMQ和Flume 首先需要安装RabbitMQ和Flume,可参考官方文档进行安装。 2. 配置RabbitMQ 需要在RabbitMQ创建一个Exchange和一个Queue,并将它们绑定在一起。这样当有消息到达Exchange时,会被路由到Queue。 3. 配置Flume 需要创建一个Flume配置文件,指定RabbitMQ作为数据源,HDFS作为目的地,并定义数据的格式和转换规则。 示例配置文件如下: ``` # Name the components on this agent agent.sources = rabbitmq-source agent.sinks = hdfs-sink agent.channels = memory-channel # Describe/configure the source agent.sources.rabbitmq-source.type = org.apache.flume.source.rabbitmq.RabbitMQSource agent.sources.rabbitmq-source.uri = amqp://guest:guest@localhost:5672 agent.sources.rabbitmq-source.queue = my-queue # Describe the sink agent.sinks.hdfs-sink.type = hdfs agent.sinks.hdfs-sink.hdfs.path = hdfs://localhost:9000/flume/rabbitmq-data/ agent.sinks.hdfs-sink.hdfs.fileType = DataStream agent.sinks.hdfs-sink.hdfs.writeFormat = Text # Use a channel which buffers events in memory agent.channels.memory-channel.type = memory # Bind the source and sink to the channel agent.sources.rabbitmq-source.channels = memory-channel agent.sinks.hdfs-sink.channel = memory-channel ``` 上述配置文件,我们定义了一个名为“rabbitmq-source”的数据源,使用RabbitMQSource来接收来自RabbitMQ的数据。然后,我们定义了一个名为“hdfs-sink”的目的地,使用HDFS Sink将数据写入HDFS。最后,我们定义了一个名为“memory-channel”的通道,用于缓存事件。 4. 启动Flume 使用以下命令启动Flume: ``` $ bin/flume-ng agent -n agent -c conf -f conf/flume.conf ``` 其,`-n`指定代理的名称,`-c`指定配置文件目录,`-f`指定配置文件路径。 5. 测试 向RabbitMQ发送一些消息,可以通过以下命令查看HDFS是否成功写入数据: ``` $ bin/hadoop fs -cat /flume/rabbitmq-data/* ``` 注意:这只是一个简单的示例,实际应用需要根据具体情况进行配置和调整。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值