利用大数据技术分析新浪财经美股行情
时间:2022-02-19 08:31 来源:未知 作者:admin 点击:次
利用大数据技术分析新浪财经美股行情练习大数据时间有一段工夫了,之前也写过极少零零星散的博客,动作本人练习的极少记载,然而每篇博客都只是涵盖一面时间。这回念写一篇对比完好的博客,记载一个完好的项目原原本本临盆的进程,也是对本人练习的一个总结 一条是离线经管。爬虫爬到股票数据后,先交给 Map Reduce 冲洗一下,天生体式化的数据,然后倒入 hive 举行剖释,之后交给 sqoop 导出至 mysql 并用 echarts 可视化暴露
另一条是及时经管。爬虫向来爬取数据,flume 监控爬虫趴下来的文献所正在目次,并接续传送给 kafka,spark streaming 会按期从 kafka 那里拿到数据,及时剖释并将数据保留到 mysql,末了可视化。
F12,掀开斥地者器械,挑选 network 面板,F5 改良页面,找到股票的 json 数据的 api 接口。 差别的网站寻找 api 接口的格式不太相似,给专家一个小诀窍,日常的接口都是 xhr 或 script 类型,并且它的 url 后面日常都市随着一个 page 参数,代外着这是第几页 这里可能看到返回的数据不是法式的 json 体式,前面随着一串IO.XSRV2.CallbackList[QGNtUNkM_FleaeT1],并且咱们也可能正在 url 内部看到这一串字符,现正在正在 url 里他删掉,结果就酿成了下面如许子。 现正在数据的体式根本法式了,只然而最前面众了两对小括号,咱们正在会正在爬虫步伐内部去掉它。依据上面拿到的的 url ,开首编写咱们的爬虫。 爬虫步伐我写了两种计划,一种是用 python 措辞写的;尚有一种是利用 java 措辞完成的 webmagic 框架写的,因为篇幅题目,python 的计划就不正在这篇博客内部采用了,此后大概会单开一篇博客先容 python 版的股票爬虫。 正在 eclipse 内部新修一个 Java Project,正在工程根目次下新修一个文献夹,将依赖包解压至文献夹中,全选之后增添到 Build Path 最初构修要仰求的 Site ,这里当心一点,代码最上面的) 内部的这个.cn 便是下图中的 Host,同时也是爬虫步伐下载的网页所存放的目次 爬虫运转完了后,会鄙人面天生很众 json 文献,查看某一个文献,可能看到内部的 json 字符串。 接下来咱们把这些文献上传到 hdfs 上面,然后开首编写 MapReduce 步伐冲洗脏数据 数据冲洗从名字上也看的出便是把“脏”的数据“洗掉”,指发掘并改正数据文献中可识其它毛病的末了一道步伐,席卷反省数据同等性,经管无效值和缺失值等。 这里咱们把 json 体式的数据最终洗成可能直接导入 hive 的以 \t 为隔离符文本体式。并且 json 数据中有的字段会有缺失的形势呈现,是以咱们还要补充空值,维系数据的同等性 然后新修一个外部外 stock ,之是以新修一个外部外,是由于外部外不会转移数据,它只是存放元数据,当外部外删除后,只是删除了元数据,而数据不会被删掉,是以相对更太平 hive 剖释完之后,接下来利用 sqoop 将 hive 中的数据导出到 mysql ,由于咱们的数据量只要 8000 众条,是以这里直接导出总共外。
可视化进程我之前写过一篇博客操纵ECharts可视化mysql数据库中的数据和这回的意义差不众,只然而这回的 echarts 用到了 ajax 动态加载,并且全部的仰求都归到了一个 servlet ,是以这里只贴一下 echarts 和 servlet 的代码 差别的上市地所占比例,可能看到挑选纽约证券贸易所上市的股票仍然占了一半以上 差别上市地的涨跌幅统计,可能看到纽约证券贸易所的涨跌幅总量最大,但这也和正在这里上市的股票最众相合系,然而每个上市地都是跌幅大于涨幅的,是以你可能看到股票并不是很容易就可能玩的溜的 最受迎接的十大股票板块,可能看到股权是排正在第一的,排正在第二的是银行,软件排正在第五 市值最高的十支股票,可能看到苹果公司以赶上 8000 亿的数目领先,有个股票的名字 “HSBC Holdings, plc. Perpetual Sub Cap Secs” 对比长,把其它股票名字都盖住了,阿里巴巴排正在第十
到这里离线剖释的流程就告一段落了,hadoop 合用于对时延央浼不高的离线经管,而当咱们需求及时经管的时期,就需求用到 Storm 或者 Spark Streaming 了
这回咱们要及时爬取各只股票的最高价,然后以 echarts 动态图的形状暴露出来,是以这回需求批改一下爬虫 这里咱们成立了爬虫每爬一次就睡 1500 毫秒,比之前的爬虫少睡了 500 毫秒,由于我成立的 echarts 动态图是每 2000 毫秒改良一次,是以起码要保障数据更新的速率要比显示的速率疾。 正在 process 步骤中批改爬虫的逻辑,这回咱们不需求全体的 json 数据,只需求此中的 cname(股票名称) 和 high(最高价) 字段,是以需求正在爬虫代码中解析 json 数据,将这两个字段取出来 正在 main 步骤里咱们批改了 url 里的 num 参数,由从来的每次爬 60 条数据改成每次爬 20 条数据,这是为了让爬虫跑的工夫长一点,以使动态图可能显示的久一点。其余,咱们还批改了输出目次,然后咱们将从来的 JsonFilePipeline 改成了 FilePipeline ,如许可能裁减 Spark Streaming 中的及时经管代码量 可能看到咱们爬到的文献最前面两行不是咱们需求的,是以咱们需求正在 Spark Streaming 中过滤掉,然后将剩下的股票名称和最高价存到数据库内部,同时用 echarts 及时显现 为了过滤掉前两行,咱们发掘了一个次序,假使以 : 将每行文本豆割,第一行被分成三段,第二行被分成一段,而其余咱们需求的数据都被分成了两段。以这个次序,正在 Spark Streaming 中编写代码来过滤出咱们需求的数据。 末了对 Dstream 实行计划,这里当心一点,咱们是对每个 RDD 分区设置一个数据库连结。由于假使对每一行设置一个连结的话,频仍的新修和合上数据库连结对体例开销很大,影响及时经管的速率;而对直接每个 RDD 设置一个连结的话又会报不行序列化的很是。 然后掀开 mysql 切换到 sina 数据库,新修一个外,这里咱们新增了一个自增的 id 字段,由于正在做可视化的时期,要向来显示最新的数据,这时咱们就可能根据 id 来降序查找,以保障每次查到的数据都差别 咱们先用操纵台来当 kafka 的 producer,模仿输入极少数据,看看能不行确切的插入到 mysql 中 好了,由于方才的外插入了新的数据,是以咱们把方才的外删掉,从新创修一个不异的外备用 然后成立 batchSize = 1 是为了让数据库更新的实时一点,以便咱们可能观测到动态图的变动 可视化的一面仍然花了很大的篇幅讲过了,这里就不烦琐了,直接贴上 echarts 动态图的代码 然而有一点需求当心, dao 层的 sql 我是这么写的,以保障每次查到的数据都差别 然而由于数据库更新的对比疾,是以咱们每查一次大概 id 仍然涨了几十上百了,是以端庄来说这也不太算及时,然而意义照旧相似的 履历了四个月的大数据练习,我学到了许众趣味的东西,此中既有对已有学问的稳定,也知道到了大数据这个新兴行业的魅力。感激诸君师长的悉心指示,尚有诸君小伙伴的互结交流,指望专家向来维系着茂盛的好奇心与求知欲,永恒年青。 目前为止,仍然议论了机械练习和批经管形式的数据开掘。现正在审视赓续经管流数据,及时检测此中的实情和形式,坊镳从湖泊来... 注:转自 大数据经典练习道道.Linux根柢和散布式集群时间 学完此阶段可职掌的焦点才力: 熟练使... 近来正在练习分享一下心得。有许众人都是念要理财的但没有搞明白一个题目便是理财≠投资,而投资=理财。合于投资的若干个问... 向日葵凋零的眼泪 一再品味 也能品尝出血的香甜 面临太阳的呻吟 我乐了 然而没有乐作声 (责任编辑:admin) |
- 上一篇:股市行情走势图
- 下一篇:新浪财经美股行情(新浪股票首页行情)