唐诗三百首出现最多的字是什么?大数据分析告诉你
一个人要是长时间一直做一件事,思维容易固化。
就像那些从太空回来的宇航员,吃饭时容易丢开拿在手里的勺子。当勺子掉在地上时,哦,我已经回到地球了^_^。
所以,适当尝试新鲜事物,既是对大脑的放松,也是开阔思路的好机会,好方法。
那这次,博主尝试的新事物是什么呢?我们知道,大、物、移、智、云是近些年比较火的技术,具体来讲就是大数据、物联网、移动5G、人工智能、云计算。每一个都显得高大上。
所以,博主决定在其中选择一个来学习学习。其实,这些技术并不是割裂的,而是有内在的本质联系的,具体可参考博主的另一篇博文
一文将大数据、云计算、物联网、5G(移动网)、人工智能等最新技术串起来_wwwyuewww的专栏-CSDN博客
那么,选择哪一个方向来尝试一下呢?
这不,一年一度的诗词大会又开始了。
现在人工智能技术非常火,很多人就想着,要是让AI来写诗,会是什么样的。还有人真的做了这件事。
这里,博主就不尝试那么复杂的了,能力和时间都不允许。我们来个简单的,选择大数据方向,来分析分析唐诗三百首里,各个汉字出现的频率。
需要补充说明一下,就唐诗三百首而言,说实话,还不至于用大数据技术,简单写个程序就可以搞定。但是,如果有更多的数据,那么使用大数据技术,还是可以提升效率的。
好了,闲话少说,我们简单看看怎么做。我们使用Hadoop完成数据分析。
整个过程分为三个部分
第一部分 先作为分布式文件系统来使用
1 下载安装Hadoop。这里,我用了老版本2.8
因为Hadoop依赖Java,需要准备Java环境,导出Java环境变量
解压Hadoop安装包,然后在/etc/profile文件中导出Hadoop环境变量
同时,在Hadoop env中也导出Java环境变量
2 按照官方示例,格式化分布式文件系统,启动HDFS
Hadoop namenode -format
hdfs namenode -format上述两个命令都可以,不过后续都推荐第二个命令
关停之前的服务
stop dfs 和yarn 重启服务
start dfs 和 yarn
使用jps命令查看java进程
23232 Jps
20977 ResourceManager
20373 NameNode
20806 SecondaryNameNode
21147 NodeManager
20571 DataNode
为啥要查看java进程呢,因为一个基本的Hadoop集群中的节点主要有:
NameNode:负责协调集群中的数据存储
DataNode:存储被拆分的数据块
JobTracker:协调数据计算任务
TaskTracker:负责执行由JobTracker指派的任务
SecondaryNameNode:帮助NameNode收集文件系统运行的状态信息
要确定上述关键节点进程成功运行,否则,不利于后续错误的排除判断:倒地是程序问题还是环境问题。所以,最好检查一下。
实际中,发现缺少DataNode,将java JDK版本从10切换到8
删除/root/hadoop目录下的日志和临时文件(目录由配置文件中指定),重新启动服务,问题解决
但也有说《重新格式化名称节点之前需要清空DFS下的名称和数据文件夹以解决数据节点无法启动的问题。》可能不是JDK版本的问题
相对之前输出,也没有an illegal错误提示了,这个应该是java版本的原因
但是还是仍然有如下错误
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
其实把native目录下的库拷贝到上一层lib目录下,即可通过检测
但是会提示snappy库没有,这个需要下载源代码,编译安装
3 用命令方式,测试HDFS文件系统
查看目录
Hadoop fs -ls /
创建一个新的目录,创建后可以在web界面查看当前操作的结果。web界面的端口为50070
hdfs dfs -mkdir /user
对于文件系统操作命令,可以用Hadoop fs 和hdfs dfs两个命令,根据网上资料,第一个命令可以操作更多格式的文件系统,不止hdfs文件系统
命令的基本使用可以这样理解,将Hadoop fs看做一个整体,带选项,比如 -ls -mkdir等,然后指定操作目录即可。
注意,这里的目录是针对的hdfs分布式文件系统,不是电脑本地目录
本地和hdfs文件系统中文件相互拷贝命令选项如下:
[-copyFromLocal [-f] [-p] [-l] [-d] <localsrc> ... <dst>]
[-copyToLocal [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
第二部分,作为数据分析平台使用
4 执行一个MapReduce任务
创建一个input 和output 文件目录
将Hadoop配置文件拷贝到input目录,作为分析的源文件
执行grep 任务
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar grep /user/input /user/output 'dfs[a-z.]+'
提示无法连接8032端口
修改yarn的配置文件,增加如下内容,
<property> <name>yarn.resourcemanager.address</name> <value>master:8032</value>
</property>
<property> <name>yarn.resourcemanager.scheduler.address</name> <value>master:8030</value>
</property>
<property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>master:8031</value>
</property>
提示无法连接master:8032,意思貌似无法解析该地址
修改配置文件,将master替换为localhost
再次执行任务,提示
mapreduce.Job: Task Id : attempt_1578829933099_0001_m_000005_0, Status : FAILED
该问题同样在java版本退回到JDK8后未再出现,map-reduce任务通过。之前许多错误可能是java版本不兼容导致。
通过8088端口可以查看这类任务的执行情况及执行日志
第一次执行提示output目录已存在错误,修改为
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar grep /user/input /user/output/grepresult 'dfs[a-z.]+'
执行成功。将执行结果拷贝到本地
hdfs dfs -copyToLocal /user/output/ test/
查看本地中的执行结果,跟在本地单独执行命令检查,结果基本一致
root@ubuntu:/home/work/hadoop-2.8.5/test/output/grepresult# cat part-r-00000 1 dfs.replication1 dfs.permissions1 dfs.name.dir1 dfs.data.dir
本地单独命令执行结果
root@ubuntu:/home/work/hadoop-2.8.5/etc/hadoop# cat hdfs-site.xml | grep dfs[a-z.]<name>dfs.name.dir</name><name>dfs.data.dir</name><name>dfs.replication</name><name>dfs.permissions</name>
第三部分,通过Java编程,使用Hadoop提供的接口,执行MapReduce任务,完成古诗分析
5 编写MapReduce任务,分析古诗
现在可以编写程序,来进行分析统计了。程序很简单,读入古诗的每一个字符,然后统计它们出现的频率。
我们使用Windows环境的idea来编辑和编译Java库。
参考网上的例子,主要有三个文件,分别是WordCountDriver.java,WordCountMapper.java以及WordCountReducer.java。
第一个是框架文件,将后两个管理起来,第二是做Map操作,第三个是做Reduce操作。
具体统计操作写的很简陋,没有做过多的处理。
最后编译生成一个jar库HadoopApi.jar。
6 上传待分析古诗文件
我们将从网络下载的含有唐诗三百首的文本文件传到HDFS中。古诗格式如下图所示。
7 执行分析程序,进行分析
hadoop jar /home/share/com/HadoopApi.jar com.xxx.hadoop.Test.WordCountDriver
8 将分析结果从Hadoop的分布式文件系统中拷贝出来
分析结果是一个文本文件,打开可以看到如下图所示
如前所述,这里没有对结果排序。所以,对这个数据,还需要再处理一次。
我们将数据拷贝到Excel中,进行一下排序,结果就出来了,如下图所示:
可以看到,最高频字是“不”,其次是“人”,再次是“山”。有没有出乎你的意料?
如果我们统计所有的古诗,就可以得到古人写诗最喜欢用的字了。
后记:
不得不说,兴趣才是最好的老师。当你想要做感兴趣的事情时,主动学习就不是什么困难的事情了。
唐诗三百首出现最多的字是什么?大数据分析告诉你相关推荐
- HTML写一首简单的居中唐诗,《唐诗三百首》最简单一首诗,只28字却成压轴之作,誉为诗中绝品...
品味唐诗对于当今的现代人来说,是一种精神享受,一种消遣休闲.在品读诗的时候,我们无须了解更深的背景,无须探究隐藏的意义.只要用心去阅读就能感受诗的无穷魅力,让压抑的情感随之抒发,让荡漾的心潮随之起伏, ...
- 你可能不了解的《唐诗三百首》
这是学习笔记的第 2189 篇文章 读完需要 9 分钟 速读仅需3分钟 对于唐诗,自己其实是一种复杂的心情,好像会背些,但是用的时候却都想不起.<唐诗三百首>算是重温古诗的一种方式,借着让 ...
- python+jieba分析唐诗三百首
python+jieba分析唐诗三百首 代码及源文件地址:poem_300 代码保证符合命名规范.遵循PEP8规则.导包顺序清晰.尽量做到复用性和不罗嗦 记得修改文件路径哟(^U^)ノ~YO 如果有帮 ...
- HTML5唐诗三百首,《唐诗三百首》中王维5首五言绝句,代表了盛唐绝句的最高成就!...
王维(701年?-761年),字摩诘,唐代山水田园诗派代表人物之一,人称"诗佛".<唐诗三百首>中王维5首五言绝句,代表了盛唐绝句的最高成就. 1/<鹿柴> ...
- python唐诗分析综合_Python利器之胎教《唐诗三百首》文本分析
事情是这样的,你们听我讲: 有一天,孕妈妈在家庭群里对准爸爸说,在某猫上买本<唐诗三百首>吧,每天给宝宝读一首唐诗,作为胎教.有图有真相: 作为好吃懒做的准爸爸,听到这个消息的瞬间,表情是 ...
- 唐诗三百首-免费无广告版-iPhone,iPad通用
熟读唐诗三百首,不会作诗也会吟.<唐诗三百首>是一部流传很广的唐诗选集.唐朝(618年-907年)二百九十年间,是中国诗歌发展的黄金时代,云蒸霞蔚,名家辈出,唐诗数量多达五万首.孙琴安&l ...
- 唐诗三百首微电影合集(300集)
诗词是最美的语言,是迷醉心怀的智慧.古典诗词,寥寥数语,却四两拨千斤,字字千锤百炼,就这么几个字,或勾勒出恢弘清雅的画卷,或传递出幽咽情愫.苍茫之志.以下是我们推荐给大家的古诗词微电影合集,大家可以收 ...
- 用C#来学习唐诗三百首和全唐诗
Begin 最近把项目做完了,闲来无事,就想做点好玩的事情,刚好前几天下载了[唐诗三百首]和[全唐诗]这两个txt文件,正好用C#来整理一下. 然后导出QData格式,可以给其他软件读取. 以后弄个开 ...
- 【Elasticsearch】es 7.8.0 唐诗三百首写入 Elasticsearch 会发生什么
1.概述 本文参考 项目实战 01:将唐诗三百首写入 Elasticsearch 会发生什么? 并且进行实战,对其进行一点修改. 1.实战项目 将唐诗三百首写入Elasticsearch会发生什么? ...
最新文章
- 卷积核输出特征图大小的计算 深度学习
- 改善AI性别偏见的4种方法 | CSDN博文精选
- android 保存textview,为什么没有TextView(带ID)会自动保存它的状态?
- LeetCode 316 Remove Duplicate Letters(删除重复字符)
- 案例:图书管理——补充知识(数组相关API)||补充知识(数组响应式变化)
- 【活动预告】数据资产化论坛
- oracle分布式数据库中间件,分布式数据库中间件设想
- B+树 范围查询_为什么 MySQL 使用 B+ 树,而不是 B 树或者 Hash?
- linux下使用source /etc/profile保存配置后,新的环境变量只能在一个终端里面有效...
- 数据结构PTA期末复习题集
- 如何去追女生,看了你就成功了一半
- php采集cms有哪些,phpcms v9自带采集模块功能体验
- Graph Anomaly Detection with Deep Learning——基于属性图的节点异常检测
- windriver 自动生成pcie驱动
- 【论文阅读笔记】Beamforming Optimization for Wireless Network Aided by IRS with Discrete Phase Shifts
- 对于刺头,怎么办?9个套路支招
- 指针变量占用的内存空间大小说明
- php的vget方法,ext_lanzou.php
- 在天堂与地狱之间——清华浪子梦断中关村[推荐]
- 大脑神经网络图高清,图神经网络 图像
热门文章
- SpringBoot 直接返回 Json格式对象(报错:返回对象为空{})
- 既然选择了Java便只顾风雨兼程
- 记录学习Android基础的心得00
- 用python给老师排课表_用自动排课表软件生成课程表 从此告别排课烦恼
- python 命令行解析模块_【Python模块】命令行解析--argparse
- c语言选择结构程序设计报告,《C语言程序设计》实验报告选择结构程序设计.doc...
- autojs之选择文件
- 【2023年的就业形势依旧严峻】
- 设计模式1-工厂模式
- 听说你的SAP GUI会崩溃闪退?