开启Hive的本地模式
来源:互联网 发布:广电网络机顶盒wifi 编辑:程序博客网 时间:2024/06/05 18:38
先讲一个hive使用的一个小技巧。对于使用惯了oracle数据库的人来说,hive中没有dual啊,想验证一些函数的执行结果很是麻烦。
比如我们在oracle数据库里面可以写select (1+2) from dual可以返回3。
为了保证使用习惯,我们类似的在hive中也建一张dual表:create table dual(dummy string)
然后往这张表中导入一个只有一行数据的文件:load data local inpath '/home/hadoop/dual.txt' overwrite into table dual
这样我们就可以在hive中用select (1+2) from dual了。
接下来就是本文要阐述的内容:你会发现执行这个语句的时候提交了一个job到集群上去运行了,这么一个简单的语句都需要执行好几十秒,完全没法接受,其实我们使用dual的时候大多只是验证一下函数的执行结果而已,需要快速的返回我们想看到的结果。
0.7版本后Hive开始支持任务执行选择本地模式(local mode)。大多数的Hadoop job是需要hadoop提供的完整的可扩展性来处理大数据的。不过,有时hive的输入数据量是非常小的。在这种情况下,为查询出发执行任务的时间消耗可能会比实际job的执行时间要多的多。对于大多数这种情况,hive可以通过本地模式在单台机器上处理所有的任务。对于小数据集,执行时间会明显被缩短。
如此一来,对数据量比较小的操作,就可以在本地执行,这样要比提交任务到集群执行效率要快很多。
配置如下参数,可以开启Hive的本地模式:
hive> set hive.exec.mode.local.auto=true;(默认为false)
当一个job满足如下条件才能真正使用本地模式:
1.job的输入数据大小必须小于参数:hive.exec.mode.local.auto.inputbytes.max(默认128MB)
2.job的map数必须小于参数:hive.exec.mode.local.auto.tasks.max(默认4)
3.job的reduce数必须为0或者1
但是你会发现job确实是以本地模式运行了(看job名字就能看出来,中间有local字样),但是还是会报错,各种找不到jar包。
这里还要运行一个语句:set fs.defaultFS=file:///
然后你再去执行前面的那条语句,可以正常运行了,执行实现只需要几秒钟而已,我们能够很快的看到执行结果了。
- 开启Hive的本地模式
- hive 开启本地模式
- hive开启本地模式执行
- hive开启严格模式
- Hive 2、Hive 的安装配置(本地MySql模式)
- Hive 3、Hive 的安装配置(本地derby模式)
- hive使用本地模式
- hive (本地模式)
- hive 使用本地模式
- Hive本地模式安装
- hive中的本地模式
- Hive安装本地模式
- Hive本地模式
- Hive-2.1.1的本地模式和远程模式部署
- HIVE本地独立模式安装
- Hive本地独立模式安装
- Hive本地模式安装配置
- Hive本地模式安装及遇到的问题和解决方案
- 线性基——学习笔记
- 原生js简单实现jQuery的动画效果
- 测试flask应用
- Day015
- AJAX实例
- 开启Hive的本地模式
- BZOJ 2321: [BeiJing2011集训]星器 脑洞
- 监听器
- Spring @Transactional注解的理解
- R文件丢失应该怎么启动项目
- linux之进程和线程基础知识
- Spring Boot HikariCP集成多数据源
- Druid.io系列
- 可重入函数 线程安全