首页 文章 精选 留言 我的

精选列表

搜索[启动程序],共10034篇文章
优秀的个人博客,低调大师

hive启动debug问题

最近在debug hive的一个bug,之前都是使用打印日志来跟踪源码,这种方式效率比较低(每次更改了源码都要重新编译并替换线上的jar包),java的应用可以支持remote debug的,hive也不例外,主要是通过hive --debug来实现. 在运行hive --debug时遇到如下问题: 1 2 3 ERROR:Cannotload this JVMTIagenttwice,checkyourjavacommandline for duplicatejdwpoptions. ErroroccurredduringinitializationofVM agentlibraryfailedtoinit:jdwp 根据错误信息,可以看到是由于重复的jdwp参数导致。hive其实是一个shell脚本,追踪其运行情况: 1 cd ${HIVE_HOME} /bin ;sh-x. /hive --debug 查看hive --debug的调用情况: 1 2 3 4 5 6 7 8 9 if [ "$DEBUG" ]; then if [ "$HELP" ]; then debug_help exit 0 else get_debug_params "$DEBUG" export HADOOP_CLIENT_OPTS= "$HADOOP_CLIENT_OPTS$HIVE_MAIN_CLIENT_DEBUG_OPTS" fi fi 这里是: 1 2 HIVE_MAIN_CLIENT_DEBUG_OPTS='-XX:+UseParallelGC -agentlib:jdwp=transport=dt_socket,server=y,address=8000,suspend=y' HIVE_MAIN_CLIENT_DEBUG_OPTS 变量是在${HIVE_HOME}/bin/ext/debug.sh中,这个脚本控制了debug的参数,比如说端口 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 get_debug_params(){ set_debug_defaults parse_debug$1 #ForDebug-XX:+UseParallelGCisneeded,asitisa(unfortunatelynotperfect) #workaroundforJVM6862295bug,thataffectssomeJVMsstillinuse if does_jvm_support_ti; then export HIVE_MAIN_CLIENT_DEBUG_OPTS="-XX:+UseParallelGC -agentlib:jdwp=transport=dt_socket,server=y,$port,$main_suspend" export HIVE_CHILD_CLIENT_DEBUG_OPTS="-XX:+UseParallelGC -agentlib:jdwp=transport=dt_socket,server=y,$child_suspend" else export HIVE_MAIN_CLIENT_DEBUG_OPTS="-XX:+UseParallelGC -Xdebug-Xrunjdwp:transport=dt_socket,server=y,$port,$main_suspend" export HIVE_CHILD_CLIENT_DEBUG_OPTS="-XX:+UseParallelGC -Xdebug-Xrunjdwp:transport=dt_socket,server=y,$child_suspend" fi 最终hive运行的命令为: 1 2 exec ${HADOOP_HOME} /bin/hadoop jarhive-cli-0.13.1.jar org.apache.hadoop.hive.cli.CliDriver--hiveconfhive.aux.jars.path=xxxxx 而在${HADOOP_HOME}/bin/hadoop中,设置HADOOP_OPTS时,又引用了HADOOP_CLIENT_OPTS这个变量,就导致jdwp的参数重复了 只需要注释下面一行即可以: 1 HADOOP_OPTS= "$HADOOP_OPTS$HADOOP_CLIENT_OPTS" 这其实是一个bug: 相关的bug id https://issues.apache.org/jira/browse/HADOOP-9455 https://issues.apache.org/jira/browse/HIVE-3936 bug描述: 1 HADOOP_CLIENT_OPTSappendedtwicecausesJVMfailures 在官方提供的bug id中可以看到hive0.13是fix这个bug的,具体的patch如下: 1 2 3 4 5 6 7 8 9 10 11 diff --gitbin /hive bin /hive index40e2c75..434ea6c100755 ---bin /hive +++bin /hive @@-251,7+251,6@@ if [ "$DEBUG" ]; then else get_debug_params "$DEBUG" export HADOOP_CLIENT_OPTS= "$HADOOP_CLIENT_OPTS$HIVE_MAIN_CLIENT_DEBUG_OPTS" - export HADOOP_OPTS= "$HADOOP_OPTS$HADOOP_CLIENT_OPTS" fi fi 经过测试,这个path并没有生效。 本文转自菜菜光 51CTO博客,原文链接:http://blog.51cto.com/caiguangguang/1564148,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android学习启动篇

近年来,手机移动平台越来越火爆。打开自己的QQ算了一下,在线好友共有31个,其中用手机上的有13个,手机用户占了42%;打开新浪微博、天涯和猫扑等网站,各种终端设备的发贴、回贴更是数不胜数。目前,手机平台如日中天的要数是iOS和Android了,尤其是iOS,Symbian已没落,WP7在挣扎。iOS一如既往地走Apple特色的封闭道路,然而它的强大在于能够建立一个完整的生态系统,乔布斯确实是天之骄子,没有之一;相反,Android奉行开放政策。注意,Android是开放,不是开源,从Android被踢出Linux Kernel主线代码,可以看出为什么说Android是开放而不是开源的:http://lwn.net/Articles/372419/。我还是赞成Android的开放政策的,毕竟手机厂商还是要赚钱吃饭养家的。今天iOS的封闭和Android的开放,令人不禁想起来当年封闭的Apple Mac是如何被开放的IBM PC打得一败涂地的。Google能够重现IBM当年的辉煌吗?不好说,吃一堑,长一智,Apple还是一个伟大的公司的。然而,个人还是看好Google,看好Android. 既然看好移动平台,看好Android,那还等什么,赶紧研究一下吧。工欲善其事,必先利其器。相信大家都知道Android的APP的是用Java写的,运行在Dalvik虚拟机上,还有,Android的系统是基于Linux Kernel 2.6的。那么,要想深入了解Android系统的各种细节,当然少不了Linux Kernel的知识了。本人水平有限,对Linux Kernel也是略知皮毛,望与大家共勉,在此,推荐几本几天Linux Kernel的经典书籍: 1. Linux Kernel Development. 2. Understanding the Linux Kernel. 3. Linux Device Drivers. 4. Linux内核源代码情景分析. 看了Linux Kernel的书,当然也要看一下Android的书了,这样可以对Android平台长什么样子有一个感性的认识,推荐下面两本书: 1. Professional Android Application Development. 2. Google Android SDK开发范例大全. 如果可以一边看书,一边照着例子实战一下,那就更好不过了:)。后面,我将会总结一些自己学习过程觉得有用的知识出来,与大家分享、交流。开始我们的Android之旅吧。 本文转自 Luoshengyang 51CTO博客,原文链接:http://blog.51cto.com/shyluo/964488,如需转载请自行联系原作者

优秀的个人博客,低调大师

hive thrift 开机启动

这个问题困扰我很久,之前redis的时候,也出现了这个问题,从网上找的thrift脚本没有一个好使的,最后通过修改/etc/rc.d/rc.local来执行一些非服务的命令,这样子就不需要像写服务那样写start,stop方法啦,不过修改这个配置文件要小心,命令里面不要包含阻塞式的命令,否则开机进不了界面,就悲剧了,我就这样玩挂了一次系统。 经过一顿挣扎之后,终于找到解决的方法了。 su - cenyuhai -c "hive --service hiveserver &"上面的这句命令的意思是用账号cenyuhai来执行 "hive --service hiverserver" 这个命令, 命令结束后的&意思是在后台运行,则该命令不会阻塞系统,否则就悲剧了,发生进不去系统的问题。 分享结束,收工!

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册