实操用Hive分析大数据事半功倍
- 2019 年 10 月 6 日
- 筆記
一般我们分析大数据,也许会想到Spark、Storm,但前提得会JAVA等编程语言,不然拿到数据也无法做分析。而Hive而解决了这个问题,只需要会Sql语言即可做mapreduce的大数据分析任务。今天我们创建测试数据用Hive进行mapreduce的实际分析。

一、先安装好Hive、Mysql环境
1、在昨天hdfs的基础上,安装Hive、Mysql。
2、因Hive依赖于Mysql存储元数据、依赖于Hdfs存储cell数据,在Hive中配置好Mysql的帐号、密码。
3、在Mysql中创建Hive数据库,新建Mysql的数据库帐号、密码。
二、创建测试数据
1、创建file测试数据
cd /usr/local/hadoop
mkdir input
echo "hello world" >file1.txt
echo "hello hadoop" >file2.txt
2、进入hive,将file导入到hive数据表中
hive> create table docs(line string); //创建仅有一个列元素的表
hive> load data local input '/usr/local/hadoop/input' overwrite into table docs; //将input目录下的file1、file2倒入hive docs表格中。
用select * from docs证实数据倒入成功。

三、创建测试分析任务
1、用sql语句进行word count的分析处理。
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;
2、检查mapreduce任务
检查mapreduce进程,上面的语句启动了mapreduce任务。

3、检查结果
用select * from word_count,发现word count的任务成功完成。

四、小结
1、hive依赖于mysql存元数据,依赖于hdfs存储数据库文件,是一个廉价的数据仓库。
2、hive用sql语句创建mapreduce任务,适用于非实时的数据分析处理。