Hive简单编程实践-词频统计
一、使用MapReduce的方式进行词频统计
(1)在HDFS用户目录下创建input文件夹
hdfs dfs -mkdir input
注意:林子雨老师的博客(http://dblab.xmu.edu.cn/blog/1080-2/)中是在hadoop目录下创建input文件,而MapReduce读取的是HDFS目录中的文件,因此笔者认为该博客存在错误。
(2)在hadopp根目录中创建两个测试文件file1.txt和file2.txt,并将他们拷贝到HDFS中的input目录下
echo "hello world" > file1.txt
echo "hello hadoop" > file2.txt
hdfs dfs -put file1.txt file2.txt input/
知识点延伸:
echo " hello world" > file1.txt # 表示创建file1.txt
echo "nihao" >> file1.txt # 表示往file1.txt里追加内容
echo "" > file1.txt # 表示清空file1.txt里的内容,但是文件中还存在空字符串
echo -n > file1.txt # 清除文件的所有内容,包括空字符串
参考:https://linux.cn/article-8024-1.html
(3)调用MapReduce程序对input文件夹中的文件进行词频统计
cd /usr/local/hadoop #切换到hadoop目录下
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount input output
注意:虽然输入目录是在hadoop目录下,但是自动生成的输出目录是在HDFS目录下的,如果HDFS目录下已存在output文件夹,就需要先删除,否则会出现下图所示的错误:

(4)执行结果

二、使用Hive完成词频统计(7行代码搞定)
1.编写Hql代码
create table docs(line string); # 创建docs表并注明表里的数据类型是String
load data inpath 'input' overwrite into table docs; # 向表中装载数据
create table word_count as # 创建word_count表,将数据保存到该表
select word, count() as count from
(select explode(split(line,' '))as word from docs) w
group by word
order by word;


2.查询执行结果
select * from word_count

Hive简单编程实践-词频统计的更多相关文章
- MapReduce编程:词频统计
首先在项目的src文件中需要加入以下文件,log4j的内容为: log4j.rootLogger=INFO, stdout log4j.appender.stdout=org.apache.log4j ...
- java - Socket简单编程实践
1.简介: 1)SOCKET是应用程序和网络之间的一个接口.SOCKET创建设置好以后,应用程序可以: 通过网络把数据发送到socket . 通过网络从socket接收数据.(通信的前提是应用程序知道 ...
- Hadoop上的中文分词与词频统计实践 (有待学习 http://www.cnblogs.com/jiejue/archive/2012/12/16/2820788.html)
解决问题的方案 Hadoop上的中文分词与词频统计实践 首先来推荐相关材料:http://xiaoxia.org/2011/12/18/map-reduce-program-of-rmm-word-c ...
- hive进行词频统计
统计文件信息: $ /opt/cdh-5.3.6/hadoop-2.5.0/bin/hdfs dfs -text /user/hadoop/wordcount/input/wc.input hadoo ...
- sqoop进行将Hive 词频统计的结果数据传输到Mysql中
使用sqoop进行将Hive 词频统计的结果数据传输到Mysql中. mysql准备接受数据的数据库与表 hive准备待传输的数据 sqoop进行数据传输 mysql查看传输结果 二:电子书 ...
- [Java 并发] Java并发编程实践 思维导图 - 第一章 简单介绍
阅读<Java并发编程实践>一书后整理的思维导图.
- hive学习01词频统计
词频统计 #创建表,只有一列,列名line create table word_count ( line string) row format delimited fields terminated ...
- 利用python实现简单词频统计、构建词云
1.利用jieba分词,排除停用词stopword之后,对文章中的词进行词频统计,并用matplotlib进行直方图展示 # coding: utf-8 import codecs import ma ...
- Storm实时计算:流操作入门编程实践
转自:http://shiyanjun.cn/archives/977.html Storm实时计算:流操作入门编程实践 Storm是一个分布式是实时计算系统,它设计了一种对流和计算的抽象,概念比 ...
随机推荐
- 数据挖掘---Numpy的学习
什么是Numpy NumPy系统是Python的一种开源的数值计算扩展.这种工具可用来存储和处理大型矩阵(任意维度的数据处理),比Python自身的嵌套列表(nested list structure ...
- react & vue 项目创建的方式
创建reactApp的几种方式: create-react-app filename 适用于npm6及以下. npm init react-app filename 适用于npm6以上. npx c ...
- MYSQL基本操作(上)
很久之前,就想做个Mysql的小结,毕竟数据库知识是软件研发的基本技能,这里话不多说,开始总结一波. 数据库基本概念 数据库为高效的存储和处理数据的介质(主要分为磁盘和内存两种),一般关系型数据库存储 ...
- SecureCRT8.1+SecureCRT_keygen完成注册
原文:https://www.cnblogs.com/qiyawei/p/7822957.html 1.下载完secureCRT8.1之后,进行安装. 点击secureCRT.exe的时候会出现如下图 ...
- 基于mycat高可用方案——数据库负载
引言 传统企业级应用一般采取单台数据库,吞吐所有应用的读写,随着互联网的高速发展,以及微服务架构越来越普及,往往采用分库分表来支撑高速增长的大量业务数据吞吐.分库分表主要有两种方式:水平分表和垂直分库 ...
- JavaScript的基本包装类型概述与基本包装类型_Number类型
JavaScript的基本包装类型示例 为了便于操作基本类型值,javaScript 提供了 3 个特殊的引用类型:Boolean.Number和 String. 这些类型与其他引用类型相似,但同时也 ...
- 引用变量 php面试总结1
(1)PHP引用变量 概念:不同的变量名,访问同一个变量内容,使用& 知识点: 使用php函数 (a)memory_get_usage() 查看内存使用情况 eg // 定义一个变量 $a = ...
- hive并行执行作业; 强化在脑海的印象
如果集群资源充足可以设置:set hive.exec.parallel=true; (默认是false) 这样相互独立的job可以并行执行!!!! count(distinct) 最好改写为group ...
- 监控和管理Oracle UNDO表空间的使用
对Oracle数据库UNDO表空间的监控和管理是我们日常最重要的工作之一,UNDO表空间通常都是Oracle自动化管理(通过undo_management初始化参数确定):UNDO表空间是用于存储DM ...
- 【Windows】+ windows下在某一文件夹下按“shift+鼠标右键”打开CMD窗口
前言:没更改之前是打开的powershell窗口,超不习惯 新建一个txt文件,然后复制以下代码,然后保存为OpenCmdHere.reg 格式,然后双击即可 Windows Registry Edi ...