本篇帖子将从下述4个步骤详细讲解如何计算wordcount,感兴趣的同学一起来看看吧~
步骤一 创建wordcount.txt文件,并上传HDFS
任务:将本地文件wordcount.txt上传至HDFS目录中。
步骤:
① // 在本地创建wordcount.txt文件,并完成数据写入
echo -e "Deer Bear River\nCar Car River\nDeer Car Bear" > /transwarp/Desktop/wordcount.txt
示例:
echo -e "Deer Bear River\nCar Car River\nDeer Car Bear" > /root/wordcount.txt
完成后可以输入指令查看数据
cat /root/wordcount.txt
![]()
② 初始化客户端
source TDH-Client/init.sh
kinit admin(未开安全)
③ // 在HDFS中创建作业输入目录
hadoop fs -mkdir -p /training/{student_name}/inceptor_data/wordcount
示例:
hadoop fs -mkdir -p /tmp/wordcount
完成后输入指令可以查看当前/tmp目录下所有的文件
hadoop fs -ls /tmp/
④ // 将wordcount.txt上传到作业输入目录
hadoop fs -put /transwarp/Desktop/wordcount.txt /training/{student_name}/inceptor_data/wordcount/
示例:
hadoop fs -put /root/wordcount.txt /tmp/wordcount/
完成后输入指令可以检查该目录下是否涵盖了wordcount.txt文件
hadoop fs -ls /tmp/wordcount
可以输入指令进一步查看该文件下的数据
hadoop fs -cat /tmp/wordcount//wordcount.txt
⑤ // 修改文件目录权限
hadoop fs -chmod -R 777 /training/{student_name}/inceptor_data/wordcount/
示例:
hadoop fs -chmod -R 777 /tmp/wordcount
步骤二 创建内表,并导入HDFS数据
任务:创建内表docs,并将HDFS中的数据导入。
步骤:
① // 创建数据库, 命名规范为db_账号名,如账号student1,创建数据库为db_student1
create database {database_name};
示例:
create database yijiend;
可以输入指令展示创建的数据库yijiend;
show databases;
② 进入数据库
use {database_name};
示例:
use yijiend;
可以输入指令展示该数据库下的表
show tables;
③ // docs表创建
create table docs(line string);
![]()
④ // 导入hdfs数据
load data inpath '/training/{student_name}/inceptor_data/wordcount' into table docs;
示例:
load data inpath '/tmp/wordcount' into table docs;
输入完成后可以查看下数据是否导入成功
select * from docs;
步骤三 创建结果表
任务:创建内表wc,保存词频统计结果。
步骤:
① // docs表创建
create table wc(word string, totalword int);
步骤四 计算wordcount
任务:对docs表完成词频统计,将结果保存到wc表中。
步骤:
① // wordcount统计
from (select explode(split(line, ' ')) as word from docs) w
insert into table wc
select word, count(1) as totalword
group by word
order by word;
![]()
② // 查看分析结果
select * from wc;
示例:
本篇帖子将从下述4个步骤详细讲解如何计算wordcount,感兴趣的同学一起来看看吧~
步骤一 创建wordcount.txt文件,并上传HDFS
任务:将本地文件wordcount.txt上传至HDFS目录中。
步骤:
① // 在本地创建wordcount.txt文件,并完成数据写入
echo -e "Deer Bear River\nCar Car River\nDeer Car Bear" > /transwarp/Desktop/wordcount.txt
示例:
echo -e "Deer Bear River\nCar Car River\nDeer Car Bear" > /root/wordcount.txt
完成后可以输入指令查看数据
cat /root/wordcount.txt
![]()
② 初始化客户端
source TDH-Client/init.sh
kinit admin(未开安全)
③ // 在HDFS中创建作业输入目录
hadoop fs -mkdir -p /training/{student_name}/inceptor_data/wordcount
示例:
hadoop fs -mkdir -p /tmp/wordcount
完成后输入指令可以查看当前/tmp目录下所有的文件
hadoop fs -ls /tmp/
④ // 将wordcount.txt上传到作业输入目录
hadoop fs -put /transwarp/Desktop/wordcount.txt /training/{student_name}/inceptor_data/wordcount/
示例:
hadoop fs -put /root/wordcount.txt /tmp/wordcount/
完成后输入指令可以检查该目录下是否涵盖了wordcount.txt文件
hadoop fs -ls /tmp/wordcount
可以输入指令进一步查看该文件下的数据
hadoop fs -cat /tmp/wordcount//wordcount.txt
⑤ // 修改文件目录权限
hadoop fs -chmod -R 777 /training/{student_name}/inceptor_data/wordcount/
示例:
hadoop fs -chmod -R 777 /tmp/wordcount
步骤二 创建内表,并导入HDFS数据
任务:创建内表docs,并将HDFS中的数据导入。
步骤:
① // 创建数据库, 命名规范为db_账号名,如账号student1,创建数据库为db_student1
create database {database_name};
示例:
create database yijiend;
可以输入指令展示创建的数据库yijiend;
show databases;
② 进入数据库
use {database_name};
示例:
use yijiend;
可以输入指令展示该数据库下的表
show tables;
③ // docs表创建
create table docs(line string);
![]()
④ // 导入hdfs数据
load data inpath '/training/{student_name}/inceptor_data/wordcount' into table docs;
示例:
load data inpath '/tmp/wordcount' into table docs;
输入完成后可以查看下数据是否导入成功
select * from docs;
步骤三 创建结果表
任务:创建内表wc,保存词频统计结果。
步骤:
① // docs表创建
create table wc(word string, totalword int);
步骤四 计算wordcount
任务:对docs表完成词频统计,将结果保存到wc表中。
步骤:
① // wordcount统计
from (select explode(split(line, ' ')) as word from docs) w
insert into table wc
select word, count(1) as totalword
group by word
order by word;
![]()
② // 查看分析结果
select * from wc;
示例: