MapReduce共享单车练习

编程入门 行业动态 更新时间:2024-10-08 00:28:53

MapReduce共享<a href=https://www.elefans.com/category/jswz/34/1768999.html style=单车练习"/>

MapReduce共享单车练习

MapReduce 本机运行

文章目录

  • MapReduce 本机运行
    • ✅前置工作
      • 1. 配置JDK
      • 2. 创建Java项目
      • 3. 导入所需JAR包
    • 编程实现以下题目
      • 1. 统计各个月份共享单车使用的总数
      • 2. 统计不同天气情况下共享单车使用的总数
      • 3. 统计每个季度共享单车使用的总数
      • 4. 统计每个月份的注册数量
      • 5. 统计每天12:00-15:00时间段内的共享单车的使用总数
      • 6. 统计不同温度(取整)下共享单车的使用总数(如24度100)

自行车共享系统是租赁自行车的一种新模式,客户通过整个城市的自助服务终端网络实现自动获得会员资格、租赁和返还自行车,全过程无需他人的参与。自行车共享系统生成的数据明确记录了旅行的时间,出发地点,和到达地点。因此,自行车共享系统作为传感器网络,可用于研究城市中的移动性。

附件1:train.csv(共11个字段,5422条数据)给出了某共享单车2011年1月-2011年12月实际气象参数、天气、季节、假期等数据记录。主要包括以下内容:

列名类型说明示例
idstring数据唯一标识10886
datetimestring数据记录时间(s)2011/12/100:00
seasonint数据记录季度1
holidayboolean数据记录假期0
workingdayboolean数据记录工作日1
weatherint数据记录天气3
tempfloat温度(0.01℃)10.66
humidityint湿度56
windspeedfloat风速26.0027
registeredint注册数量10
countint总数13

附件2:weather列说明

Weather列数据说明
1晴朗,很少云,部分多云,部分多云
2小雪,小雨+雷电+少云,小雨+少云
3雾+多云,薄雾+少云,薄雾+少量云雾,雾
4大雨+冰雹+雷电+雾,雪+雾

✅前置工作

传入src代码包,可以使用XFTP工具进行上传

cd /home/hadoop/
mkdir workSpace
mv src/ workSpace
cd /usr/local/eclipse# 启动eclipse
./eclipse

1. 配置JDK

  1. 打开eclipse后 → \rightarrow →点击Window → \rightarrow →点击Preference

  2. 在搜索框中输入 jre → \rightarrow →点击Installed JREs → \rightarrow →点击Add…

  3. 点击Standard VM

  4. 找到自己的JDK安装路径

  5. 勾选JDK

2. 创建Java项目

  1. 点击Create a project

  2. 选择Java Project

  3. 创建一个项目名为 ShareBike 的项目

  4. 在src下创建entity包

3. 导入所需JAR包

  1. 选中 ShareBike 项目 → \rightarrow →右键点击Properties

  2. 点击Java Build Path → \rightarrow →点击Add External JARs…

  3. 选中导入 /usr/local/hadoop/share/hadoop/common/ 中的全部jar包

  4. 选中导入 /usr/local/hadoop/share/hadoop/common/lib/ 中的全部jar包

  5. 选中导入 /usr/local/hadoop/share/hadoop/hdfs/ 下的全部jar包

  6. 选中导入 /usr/local/hadoop/share/hadoop/hdfs/lib 下的全部jar包

  7. 选中导入 /usr/local/hadoop/share/hadoop/mapreduce/ 下的全部jar包

  8. 选中导入 /usr/local/hadoop/share/hadoop/mapreduce/lib/ 下的全部jar包

  9. 选中导入 /usr/local/hadoop/share/hadoop/yarn/ 下的全部jar包

编程实现以下题目

1. 统计各个月份共享单车使用的总数

  1. 把 train1.csv 上传到HDFS的 /user/hadoop/input 文件夹中

    # 在HDFS的/user/hadoop中创建一个input文件夹
    hdfs dfs -mkdir /user/hadoop/input# 把当前目录中的train1.csv文件上传到input文件夹下
    hdfs dfs -put train1.csv /user/hadoop/input
    
  2. 把代码中的 sharedbikecountbymonth/ 文件夹复制到eclipse的src工作目录下

  3. 然后把 SharedBikeCountByMonth.java 其中的代码路径代码改成下面的代码

    // 6 设置输入输出路径
    FileInputFormat.setInputPaths(job, new Path("hdfs://localhost:9000/input/train1.csv"));
    FileOutputFormat.setOutputPath(job, new Path("hdfs://localhost:9000/output"));// 修改后的代码如下
    FileInputFormat.setInputPaths(job, new Path("hdfs://localhost:9000/user/hadoop/input/train1.csv"));
    FileOutputFormat.setOutputPath(job, new Path("hdfs://localhost:9000/user/hadoop/output"));
    
  4. 在运行程序前需要先删除HDFS中的output目录,否则会运行失败

    hdfs dfs -rm -r /user/hadoop/output
    
  5. 然后运行如下代码查看结果

    hdfs dfs -cat /output/part-r-00000
    

2. 统计不同天气情况下共享单车使用的总数

  1. 在运行程序前需要先删除HDFS中的output目录,否则会运行失败

    hdfs dfs -rm -r /user/hadoop/output
    
  2. 按下 Ctrl+C 复制 sharedbikecountbyweather 文件夹,到eclipse的src工作目录下按下 Ctrl+V 粘贴

  3. 依旧修改代码

    // 6 设置输入输出路径
    FileInputFormat.setInputPaths(job, new Path("hdfs://localhost:9000/input/train1.csv"));
    FileOutputFormat.setOutputPath(job, new Path("hdfs://localhost:9000/output"));// 修改后的代码如下
    FileInputFormat.setInputPaths(job, new Path("hdfs://localhost:9000/user/hadoop/input/train1.csv"));
    FileOutputFormat.setOutputPath(job, new Path("hdfs://localhost:9000/user/hadoop/output"));
    
  4. 运行该程序,出现下方情况即为成功

  5. 然后运行如下代码查看结果

    hdfs dfs -cat /output/part-r-00000
    

3. 统计每个季度共享单车使用的总数

  1. 在运行程序前需要先删除HDFS中的output目录,否则会运行失败

    hdfs dfs -rm -r /user/hadoop/output
    
  2. 按下 Ctrl+C 复制 sharedbikecountbyseason 文件夹,到eclipse的src工作目录下按下 Ctrl+V 粘贴

  3. 依旧修改代码

    // 6 设置输入输出路径
    FileInputFormat.setInputPaths(job, new Path("hdfs://localhost:9000/input/train1.csv"));
    FileOutputFormat.setOutputPath(job, new Path("hdfs://localhost:9000/output"));// 修改后的代码如下
    FileInputFormat.setInputPaths(job, new Path("hdfs://localhost:9000/user/hadoop/input/train1.csv"));
    FileOutputFormat.setOutputPath(job, new Path("hdfs://localhost:9000/user/hadoop/output"));
    
  4. 运行该程序,出现下方情况即为成功

  5. 然后运行如下代码查看结果

    hdfs dfs -cat /output/part-r-00000
    

4. 统计每个月份的注册数量

  1. 在运行程序前需要先删除HDFS中的output目录,否则会运行失败

    hdfs dfs -rm -r /user/hadoop/output
    
  2. 按下 Ctrl+C 复制 sharedbikecountbyregistered 文件夹,到eclipse的src工作目录下按下 Ctrl+V 粘贴

  3. 依旧修改代码

    // 6 设置输入输出路径
    FileInputFormat.setInputPaths(job, new Path("hdfs://localhost:9000/input/train1.csv"));
    FileOutputFormat.setOutputPath(job, new Path("hdfs://localhost:9000/output"));// 修改后的代码如下
    FileInputFormat.setInputPaths(job, new Path("hdfs://localhost:9000/user/hadoop/input/train1.csv"));
    FileOutputFormat.setOutputPath(job, new Path("hdfs://localhost:9000/user/hadoop/output"));
    
  4. 运行该程序,出现下方情况即为成功

  5. 然后运行如下代码查看结果

    hdfs dfs -cat /output/part-r-00000
    

5. 统计每天12:00-15:00时间段内的共享单车的使用总数

  1. 在运行程序前需要先删除HDFS中的output目录,否则会运行失败

    hdfs dfs -rm -r /user/hadoop/output
    
  2. 按下 Ctrl+C 复制 sharedbikecountbytime 文件夹,到eclipse的src工作目录下按下 Ctrl+V 粘贴

  3. 依旧修改代码

    // 6 设置输入输出路径
    FileInputFormat.setInputPaths(job, new Path("hdfs://localhost:9000/input/train1.csv"));
    FileOutputFormat.setOutputPath(job, new Path("hdfs://localhost:9000/output"));// 修改后的代码如下
    FileInputFormat.setInputPaths(job, new Path("hdfs://localhost:9000/user/hadoop/input/train1.csv"));
    FileOutputFormat.setOutputPath(job, new Path("hdfs://localhost:9000/user/hadoop/output"));
    
  4. 运行该程序,出现下方情况即为成功

  5. 然后运行如下代码查看结果

    hdfs dfs -cat /output/part-r-00000
    

6. 统计不同温度(取整)下共享单车的使用总数(如24度100)

  1. 在运行程序前需要先删除HDFS中的output目录,否则会运行失败

    hdfs dfs -rm -r /user/hadoop/output
    
  2. 按下 Ctrl+C 复制 sharedbikecountbytemp 文件夹,到eclipse的src工作目录下按下 Ctrl+V 粘贴

  3. 依旧修改代码

    // 6 设置输入输出路径
    FileInputFormat.setInputPaths(job, new Path("hdfs://localhost:9000/input/train1.csv"));
    FileOutputFormat.setOutputPath(job, new Path("hdfs://localhost:9000/output"));// 修改后的代码如下
    FileInputFormat.setInputPaths(job, new Path("hdfs://localhost:9000/user/hadoop/input/train1.csv"));
    FileOutputFormat.setOutputPath(job, new Path("hdfs://localhost:9000/user/hadoop/output"));
    

    >

  4. 运行该程序,出现下方情况即为成功

  5. 然后运行如下代码查看结果

    hdfs dfs -cat /output/part-r-00000
    

更多推荐

MapReduce共享单车练习

本文发布于:2024-02-14 01:33:51,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1761413.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:单车   MapReduce

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!