学习网站链接Hive3.1.3安装和使用指南_厦大数据库实验室博客 (xmu.edu.cn)
下面是我自己的作业完成过程
1.首先要启动hdfs集群和hive数据库
2.创建并导入文件
进入到hadop目录下
在命令行窗口输入下面的命令:
hadoop fs -mkdir /input1
在电脑桌面中新建两个文件file1.txt和file2.txt
将这两个文件拖到虚拟机中任意的文件目录下(记住这个文件目录)
然后将这两个文件导入到input1文件夹中
hdfs dfs -put /(你的该文件目录)/file1.txt /input1
hdfs dfs -put /(你的该文件目录)/file2.txt /input1
3.进入到mapreduce目录中并执行语句:
hadoop jar hadoop-mapreduce-examples-3.3.4.jar wordcount /input1 /output1
(你可以在node1:9870中查看结果)
4.通过HiveQL实现词频统计功能
(在这步我出现了一些问题,大家都懂每台电脑都有它的脾气秉性?同样的步骤在别人那里行到你的电脑上就不行?)
首先进入到Hive目录下,输入bin/hive,进入到Hive,以下都在Hive中执行。
最后的正确步骤:(一定要分三行来执行,如果按照上面的方法来,文件路径就是/input1)
#第一行执行 create table docs(line string); #第二行执行 load data inpath 'hdfs中文件的路径,一般在根目录下' overwrite into table docs; #第三行执行 create table word_count as select word, count(1) as count from (select explode(split(line,' '))as word from docs) w group by word order by word;
然后执行
select * from word_count
最后的结果:
下面是我出现的问题及解决方法:
在最后查看结果的时候出现这个错误:
遇到的错误消息表明 HDFS(Hadoop 分布式文件系统)上的目录权限存在问题。错误消息明确指出目录应该是可写的,但当前权限仅允许读取和执行访问 ()。
若要解决此问题,需要更新目录的权限,使其可写。您可以使用命令或任何具有适当权限的 HDFS 客户端来执行此操作。以下是更改权限的方法:
运行
hadoop fs
命令:
hadoop fs -chmod -R 777 /tmp/hive/_resultscache_
然后问题就解决了。