大数据Hive词频统计作业总结及出现的权限问题解决(每日总结10.18)

发布时间 2023-10-18 17:19:07作者: Espen

学习网站链接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_

然后问题就解决了。