hadoop@liuyang-VMware-Virtual-Platform:~$ cd /usr/local/hadoop ./sbin/start-dfs.sh Starting namenodes on [localhost] Starting datanodes Starting secondary namenodes [liuyang-VMware-Virtual-Platform] hadoop@liuyang-VMware-Virtual-Platform:/usr/local/hadoop$ jps 16421 NameNode 16572 DataNode 16829 SecondaryNameNode 16959 Jps hadoop@liuyang-VMware-Virtual-Platform:/usr/local/hadoop$ hdfs dfs -ls /user/hadoop/movie_data/ Found 1 items -rw-r--r-- 1 hadoop supergroup 435 2025-05-10 23:39 /user/hadoop/movie_data/movie_ratings.csv hadoop@liuyang-VMware-Virtual-Platform:/usr/local/hadoop$ hdfs dfs -cat /user/hadoop/movie_data/movie_ratings.csv user_id,movie_id,rating,timestamp 1,101,4.0,964982703 1,102,3.0,964981247 2,101,5.0,964982224 2,103,3.5,964984815 3,101,4.5,964985076 3,102,2.5,964986123 3,103,4.0,964987456 4,101,3.0,964988789 4,104,5.0,964989012 5,102,4.5,964990345 5,103,3.0,964991678 5,105,4.0,965002911 6,101,2.0,964993244 6,104,3.5,964994577 7,103,5.0,964995910 7,105,4.5,964996243 8,102,3.0,964997576 8,104,4.0,964998909 9,101,4.5,964999242 10,105,3.5,965000575一、HDFS操作 1.创建实验目录 2.上传本地数据到HDFS 3.检查文件 二、Hive操作 1.创建数据库movie_db 2.创建评分表scores 3.将HDFS文件里的数据导入到评分表中 三、简单数据分析 1.查看数据 2.基本统计 (1)查询总记录数 (2)查询每个用户的平均评分 (3)查询每个电影的平均评分 (4)统计评分次数最多的3部电影 (5)查询最活跃的5个用户 3.查看评分分布情况 结果截图
时间: 2025-06-02 17:26:31 浏览: 18
### HDFS 和 Hive 操作指南
#### 创建目录
在 HDFS 中,可以使用 `hadoop fs` 命令来创建目录。以下是具体的操作命令:
```bash
hdfs dfs -mkdir /path/to/directory
```
如果需要递归创建父级目录,则可以在命令中加入 `-p` 参数[^1]。
```bash
hdfs dfs -mkdir -p /path/to/nested/directory
```
#### 上传数据
向 HDFS 上传文件可以通过以下命令实现:
```bash
hdfs dfs -put local_file_path hdfs_directory_path
```
此命令会将本地路径下的文件上传到指定的 HDFS 目录下。如果目标路径不存在,系统将会自动创建该路径。
对于大文件或者批量上传场景,建议先压缩文件再上传,以减少网络传输开销并提高效率。
#### 查询统计
Hive 是一种用于大规模数据分析的强大工具,在查询和统计方面表现优异。通过 SQL 风格的语言,用户可以直接编写复杂的查询语句来进行各种分析工作。例如,要查看某个表的内容,可运行如下命令:
```sql
SELECT * FROM table_name LIMIT 10;
```
为了获取更详细的统计数据,比如总记录数或平均值等指标,可以用聚合函数完成这些需求。下面展示如何计算一列数值字段的均值以及总数的例子:
```sql
SELECT COUNT(*) AS total_count, AVG(column_name) AS average_value FROM table_name;
```
当涉及到分组操作时,GROUP BY 子句非常有用。它允许按照某些条件对结果集进行分类汇总。假设我们希望按电影类别统计每类别的评分情况,则可以这样写:
```sql
SELECT genre, AVG(rating) as avg_rating FROM movie_ratings GROUP BY genre;
```
以上例子展示了基本的查询与统计方法[^2]。
#### 分析电影评分数据
针对电影评分数据的具体案例,假设有这样一个表格结构:包含用户ID (`userid`)、电影名称(`movie_title`)及其对应的评分(`rating_score`)三项基本信息。那么我们可以设计一些有针对性的问题并通过SQL查询解答它们。例如找出最受欢迎(即获得最高平均分数)的一部或多部影片的方法如下所示:
```sql
SELECT movie_title, AVG(rating_score) AS avg_rating
FROM movies
GROUP BY movie_title
ORDER BY avg_rating DESC
LIMIT 5;
```
这段脚本不仅返回了前五名高分作品的名字连同其相应得分,还体现了利用 ORDER BY 排序配合 LIMIT 控制输出数量的实际应用价值[^3]。
### 注意事项
- 所有涉及敏感信息的数据都应经过脱敏处理后再做进一步加工;
- 定期备份重要资料以防意外丢失;
- 对于超大型数据集考虑采用分布式计算技术提升性能。
阅读全文
相关推荐


















