一、使用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简单编程实践-词频统计的更多相关文章

  1. MapReduce编程:词频统计

    首先在项目的src文件中需要加入以下文件,log4j的内容为: log4j.rootLogger=INFO, stdout log4j.appender.stdout=org.apache.log4j ...

  2. java - Socket简单编程实践

    1.简介: 1)SOCKET是应用程序和网络之间的一个接口.SOCKET创建设置好以后,应用程序可以: 通过网络把数据发送到socket . 通过网络从socket接收数据.(通信的前提是应用程序知道 ...

  3. 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 ...

  4. hive进行词频统计

    统计文件信息: $ /opt/cdh-5.3.6/hadoop-2.5.0/bin/hdfs dfs -text /user/hadoop/wordcount/input/wc.input hadoo ...

  5. sqoop进行将Hive 词频统计的结果数据传输到Mysql中

    使用sqoop进行将Hive 词频统计的结果数据传输到Mysql中. mysql准备接受数据的数据库与表 hive准备待传输的数据 sqoop进行数据传输  mysql查看传输结果     二:电子书 ...

  6. [Java 并发] Java并发编程实践 思维导图 - 第一章 简单介绍

    阅读<Java并发编程实践>一书后整理的思维导图.

  7. hive学习01词频统计

    词频统计 #创建表,只有一列,列名line create table word_count ( line string) row format delimited fields terminated ...

  8. 利用python实现简单词频统计、构建词云

    1.利用jieba分词,排除停用词stopword之后,对文章中的词进行词频统计,并用matplotlib进行直方图展示 # coding: utf-8 import codecs import ma ...

  9. Storm实时计算:流操作入门编程实践

    转自:http://shiyanjun.cn/archives/977.html Storm实时计算:流操作入门编程实践   Storm是一个分布式是实时计算系统,它设计了一种对流和计算的抽象,概念比 ...

随机推荐

  1. 数据挖掘---Numpy的学习

    什么是Numpy NumPy系统是Python的一种开源的数值计算扩展.这种工具可用来存储和处理大型矩阵(任意维度的数据处理),比Python自身的嵌套列表(nested list structure ...

  2. react & vue 项目创建的方式

    创建reactApp的几种方式: create-react-app filename  适用于npm6及以下. npm init react-app filename 适用于npm6以上. npx c ...

  3. MYSQL基本操作(上)

    很久之前,就想做个Mysql的小结,毕竟数据库知识是软件研发的基本技能,这里话不多说,开始总结一波. 数据库基本概念 数据库为高效的存储和处理数据的介质(主要分为磁盘和内存两种),一般关系型数据库存储 ...

  4. SecureCRT8.1+SecureCRT_keygen完成注册

    原文:https://www.cnblogs.com/qiyawei/p/7822957.html 1.下载完secureCRT8.1之后,进行安装. 点击secureCRT.exe的时候会出现如下图 ...

  5. 基于mycat高可用方案——数据库负载

    引言 传统企业级应用一般采取单台数据库,吞吐所有应用的读写,随着互联网的高速发展,以及微服务架构越来越普及,往往采用分库分表来支撑高速增长的大量业务数据吞吐.分库分表主要有两种方式:水平分表和垂直分库 ...

  6. JavaScript的基本包装类型概述与基本包装类型_Number类型

    JavaScript的基本包装类型示例 为了便于操作基本类型值,javaScript 提供了 3 个特殊的引用类型:Boolean.Number和 String. 这些类型与其他引用类型相似,但同时也 ...

  7. 引用变量 php面试总结1

    (1)PHP引用变量 概念:不同的变量名,访问同一个变量内容,使用& 知识点: 使用php函数 (a)memory_get_usage() 查看内存使用情况 eg // 定义一个变量 $a = ...

  8. hive并行执行作业; 强化在脑海的印象

    如果集群资源充足可以设置:set hive.exec.parallel=true; (默认是false) 这样相互独立的job可以并行执行!!!! count(distinct) 最好改写为group ...

  9. 监控和管理Oracle UNDO表空间的使用

    对Oracle数据库UNDO表空间的监控和管理是我们日常最重要的工作之一,UNDO表空间通常都是Oracle自动化管理(通过undo_management初始化参数确定):UNDO表空间是用于存储DM ...

  10. 【Windows】+ windows下在某一文件夹下按“shift+鼠标右键”打开CMD窗口

    前言:没更改之前是打开的powershell窗口,超不习惯 新建一个txt文件,然后复制以下代码,然后保存为OpenCmdHere.reg 格式,然后双击即可 Windows Registry Edi ...