通过一个实例——词频统计,来深入学习一下Hive的具体使用。首先,需要创建一个需要分析的输入数据文件,然后,编写HiveQL语句实现WordCount算法,在Linux下实现步骤如下:首先,启动Hadoop进程。
cd /usr/local/hadoop
./sbin/start-dfs.sh
创建input目录,其中input为输入目录。命令如下:
cd /usr/local/hadoop
mkdir input
在input文件夹中创建两个测试文件file1.txt和file2.txt,命令如下:
cd /usr/local/hadoop/input
echo "hello world" > file1.txt
echo "hello hadoop" > file2.txt
在HDFS文件系统上创建input目录。
cd /usr/local/hadoop
./bin/hdfs dfs -mkdir /user/hadoop/input
将测试文件上传至HDFS文件系统的input目录下。
cd /usr/local/hadoop
./bin/hdfs dfs -put /usr/local/hadoop/input/* /user/hadoop/input/
启动MySQL服务后再执行如下命令启动Hive:
sudo service mysql start
cd /usr/local/hive
./bin/hive
进入hive命令行界面,编写HiveQL语句实现WordCount算法,命令如下:
create table docs(line string);
load data inpath 'input' 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语句查看运行结果如下图所示。
select * from word_count;