本来还有第二次作业《大数据技术原理与应用 - 分布式数据库HBase》的,这不是,没搞定嘛,弄了很久都是在稀里糊涂的看报错,最后没时间了直接使用了mongodb,mongodb似乎比较友好,很快就启动了,所以hbase的复盘就跳过了,现在第三次作业是对数据进行处理与分析。
一、Hive
启动hive
配置好环境的话可以直接启动:
hadoop@dblab-VirtualBox:~$ hive
如果报错了就要注意几件事:
1. 是否下载hive是否写入路径,是否更改了配置文件,我是摸索了之后发现在该虚拟机下应该直接参考林子雨老师的配置:大数据技术原理与应用 第十四章 基于Hadoop的数据仓库Hive 学习指南(旧版已经废弃)_厦大数据库实验室博客 (xmu.edu.cn)
2. 是否启动了hadoop
$ cd /usr/local/hadoop
$ ./bin/hdfs namenode -format #格式化Hadoop的hdfs文件系统
$ ./sbin/start-dfs.sh #启动hadoop
$ sbin/stop-dfs.sh #关闭hadoop
3.如果报告类似于证书之类的错误,就要在配置文件hive-site.xml中,在url请求的时候添加这些限制条件,来关闭ssl设置等。
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&useSSL=false&verifyServerCertificate=false</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
(添加&useSSL=false&verifyServerCertificate=false,我真的好适合写这种踩坑的,每次都每个坑都踩到)
词频统计
hive使用优于mapreduce的地方体现的最明显最新手入门的应该就是词频统计方面了,老师的本意应该也就是让我们体会一下hive的优越性。
步骤:
1. 检查文件的格式是否为utf-8,否则使用记事本工具把格式改好,再拖入虚拟机(我真的什么坑都能遇到,全英文件也能编码错误。。)
2. 上传到hdfs,参考第二次作业
3. 打开hive,然后将数据覆写到hive的table上,进行词频统计,一定记得要用命令“select * from yourTableName” 看一下存了个啥,我好几次就是空的,覆写错误。。。
(我使用了第一个,但是第二个其实更好理解)
Hive实现词频统计(详细讲解)_hive词频统计-CSDN博客
另外附一个命令大全,真的感谢csdn的博主们:Hive常用命令大全!_hive命令-CSDN博客
4. 为了可视化分析,需要导出文件
INSERT OVERWRITE LOCAL DIRECTORY '/path/to/local/directory'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE
SELECT word, count(*) as frequency
FROM your_table
GROUP BY word;
5. 有个我没踩但是可能是坑的东西提一下,就是保存的时候最后多添加一层目录,听很多朋友说0000_0文件一下子把虚拟机搞崩了
6. 然后导出来之后用记事本检查一下特殊符号啊逗号啊之类的再进行转换格式等操作,不然就会像我一样不知所以然,操作不了。然后就是python上(词云图写一写)就ok了。
求平均值
CREATE TABLE IF NOT EXISTS your_table_name (time INT);
load data inpath '/input/time' overwrite into table time;
SELECT AVG(time) as average FROM your_table_name;
二、spark
安装spark,启动spark
spark常用操作
能力有限,只搞出来词频统计,所以没有踩坑指南、、、
1.RDD处理
2.求平均值
Spark求平均值的三种方法-CSDN博客
3.词频统计