# Hadoop股票日线数据分析 **Repository Path**: EHOH/StockVolume ## Basic Information - **Project Name**: Hadoop股票日线数据分析 - **Description**: GUET大作业:使用Hadoop的MapReduce对深证A股日线数据进行数据分析 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: HDFSapp - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 1 - **Created**: 2024-11-16 - **Last Updated**: 2025-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: hadoop, mapreduce ## README # 主分支HDFSapp #### 介绍 使用Hadoop的FileSystem实现批量上传股票数据,并设计4个MapReduce程序负责进行数据处理。不再需要手动输入命令上传jar包至HDFS再进行数据处理,而是在IDEA中点击运行即可自动完成上传、处理、输出。 结合SpringBoot以及Vue实现数据的可视化展示可参考我们团队的大作业项目: 数据处理流程为: * Hadoop上传股票数据到HDFS系统指定目录 * HDFS将指定的MapReduce的java类上传至HDFS所在虚拟机 * 进行股票数据处理 * 将处理结果输出至本地主机(非虚拟机) #### 使用前提 * 1.输入文件一定是CSV结尾的文件 * 2.输入文件包含以下内容 >代码,简称,日期,前收盘价(元),开盘价(元) > >最高价(元),最低价(元),收盘价(元),成交量(股),成交金额(元) > >涨跌(元),涨跌幅(%),均价(元),换手率(%),A股流通市值(元) > >B股流通市值(元),总市值(元),A股流通股本(股),B股流通股本(股),总股本(股) > >市盈率,市净率,市销率,市现率 举例: 需要使用的数据字段为 >代码,日期,成交量(股) 对应代码如下 ``` String code = fields[0].trim(); String dateStr = fields[2].trim(); String volumeStr = fields[8].trim(); ``` 分别对应第1,第3,第9个数据字段,如果你的数据字段不同,请手动修改 * 3.使用的Hadoop安装在虚拟机上,但如果你使用的是windows,需要在本地安装windows版本的Hadoop。 其原理是HDFSapp通过本地的Hadoop连接并操作虚拟机上的Hadoop。安装教程可参考网上其他人的。 #### 使用说明 * 使用MapReduce任务计算时要注意顺序 * 计算1、深圳指数 季 K线图:先将原始数据进行StockKline计算,得出 每日 K线数据 * 再将季K线数据进行StockKlineQ计算,得出 季 K线数据 * 计算2、深证指数 季收盘价走势 折线图:可以直接使用 计算1 的结果绘制 * 计算3、深证指数 季成交量 柱状图:使用原始数据进行StockVolume计算,得出 季度 成交量数据 * 计算4、深证指数 月涨跌幅 热力图:使用StockKline计算的结果,再进行StockChg计算,得出 月 平均涨幅度数据 * 计算5、深证指数 成交量季度占比 饼图:可以直接使用 计算3 的结果数据绘制饼图 1.启动hadoop >start-dfs.sh 2.清空输出文件目录 由于hadoop执行MapReduce后输出的文件不会覆盖旧目录,必须把旧的output目录清空 3.修改连接参数 ``` //连接用的基本参数 public static final String HDFS_PATH = "hdfs://192.168.10.128:9000";//虚拟机的HDFS地址 public static final String LOCAL_DIR = "D:\\bigdata";//上传win11本地文件的地址 public static final String HDFS_DIR = "app_test";//HDFS目标目录 //使用客户端执行的配置参数 public static final String inputPath = "app_test/output";//输入HDFS文件路径 public static final String outputPath = "app_test/output2";//输出的HDFS目录 ``` 4.在IDEA中运行HDFSapp类 最后计算会输出两个文件:_SUCCESS和part-r-00000 这里默认将part-r-00000读取至终端