大数据工具之HIVE-参数调优,调度乱码(二)

一、调度乱码

在利用HUE工具,搭建WORKFLOW流程的过程中,如果直接执行hivesql数据正常,不会出现乱码现象,如果利用WORKFLOW搭建的流程,进行数据的拉取,会出现数据中文乱码现象,这些乱码主要是由于select 中的硬编码中文导致出现的现象

具体现象如下: 

select  

 case  

when  a = '' then '中国'

类似这种编码,导致的结果是:

  

解决方案:

在利用workflow搭建的流程中进行如下配置处理

 在配置调度时,添加配置:
key: yarn.app.mapreduce.am.admin-command-opts
value: -Dfile.encoding=UTF-8

具体位置:

二、Hive 卡在map = 0%, reduce = 0%阶段


Hive 卡在map = 0%, reduce = 0%阶段

解决:增加map个数,设置mapreduce.input.fileinputformat.split.maxsize 小于系统默认值,需要综合考虑调用更多map时候的消耗

定位时发现任务卡在map = 0%, reduce = 0%阶段,而且发现map分配数量很少,所以猜测分配map较慢,增加map数量可解决问题。

原因:分配map数量少,一个map处理的数据多,处理速度慢

解决:增加map的数据

具体现象:

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Hive是一种基于Hadoop的数据仓库工具,可以利用Hive语言进行数据查询和分析。而"-e"选项是Hive命令行工具中的一个参数,用于指定需要执行的Hive查询语句。 通过使用"hive -e"命令,我们可以在命令行中直接执行Hive查询语句,而不需要进入Hive Shell环境。这个参数通常与其他参数一起使用,以提供执行查询所需的资源信息。 可以通过在"hive -e"后面跟着一条Hive查询语句来执行特定的查询。例如,我们可以使用以下命令执行查询: hive -e "SELECT * FROM my_table;" 在这个例子中,我们使用了-hive -e参数,并将查询语句"SELECT * FROM my_table;"作为参数传递给它。这样,Hive命令行工具将执行这个查询,并将结果显示在命令行中。 此外,"-e"参数还可以与其他参数一起使用,以提供执行查询所需的其他资源信息。例如,可以使用以下命令指定执行查询所需的资源队列: hive -e "SELECT * FROM my_table;" -hiveconf mapred.job.queue.name=my_queue 在这个例子中,我们使用"-hiveconf"参数指定了一个名为"mapred.job.queue.name"的Hive配置参数,并将其值设置为"my_queue"。这将告诉Hive在执行查询时使用指定的资源队列。 总结来说,"-e"选项是Hive命令行工具中的一个参数,用于在命令行中执行Hive查询语句。它可以与其他参数一起使用,以指定执行查询所需的资源信息。 ### 回答2: 在Hive中,-e资源参数用于指定一个包含Hive查询的文件,并在Hive的命令行模式下执行这个查询。这个参数通常与-hiveconf参数一起使用。 使用-hiveconf参数可以设置Hive配置参数,例如设置Hive的数据仓库位置、Hive的日志级别、Hive执行引擎等。而使用-e参数可以直接传递一条Hive查询语句,这条查询语句可以是一个在文件中定义的查询语句。当在命令行输入"hive -e [查询语句文件路径]"时,Hive会读取该文件中的查询语句,并将其作为Hive的输入,执行相应的查询。 使用-e参数的好处是可以批量执行多个查询语句,而不需要每次都手动输入查询语句,提高了工作效率。另外,使用-e参数还可以将Hive查询与其他Shell命令结合起来,实现一些复杂的任务。 然而,使用-e参数也存在一些限制。首先,输入的查询语句必须放在一个文件中,并且该文件的路径必须正确指定。其次,查询语句文件中的查询语句必须是经过验证的,不会出现语法错误,否则整个执行过程可能会被中断。最后,由于-e参数是执行一次性的查询,因此它适合于一些简单、独立的查询任务,而对于复杂的查询任务,建议使用Hive的交互模式进行逐条输入和调试。 ### 回答3: 在Hive中,可以使用“-e”选项来指定Hive查询语句的执行方式和资源参数。该选项后面可以跟随一个包含Hive查询语句的字符串,并且可以在字符串中设置一些资源参数。 资源参数Hive中用于控制查询任务的资源分配,如CPU核数、内存大小等。通过设置资源参数,可以优化查询的执行性能,提高查询的效率。 常用的资源参数包括以下几个: 1. hive.server2.tez.default.queues:用于指定查询任务所使用的队列。可以根据不同的业务需求将查询任务分配到不同的队列中,以实现资源隔离和优先级控制。 2. tez.queue.name:指定任务运行时使用的队列名称。可以根据不同的场景和需求将任务分配到不同的队列中,以实现资源分配的灵活控制。 3. mapreduce.job.queuename:用于指定MapReduce作业运行时使用的队列。类似于前面的队列参数设置,可以将作业分配到不同的队列中以实现资源隔离。 4. hive.map.aggr:用于指定Map阶段是否使用聚合操作。当设置为true时,会在Map阶段进行聚合操作,可以减少数据量,提高执行效率。 5. hive.optimize.skewjoin:用于指定是否启用倾斜连接优化。当设置为true时,Hive会自动检测倾斜连接点,并对其进行优化,减少倾斜连接对整体性能的影响。 通过在Hive命令行中使用“-e”选项,可以方便地指定资源参数并执行Hive查询语句,以便更好地控制查询任务的执行方式和资源分配,提高查询性能和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值