[jira] [Commented] (HBASE-7091) support custom GC options in hbase-env.sh
[ https://issues.apache.org/jira/browse/HBASE-7091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13839122#comment-13839122 ] Nicolas Liochon commented on HBASE-7091: I understand. Jira created :-). support custom GC options in hbase-env.sh - Key: HBASE-7091 URL: https://issues.apache.org/jira/browse/HBASE-7091 Project: HBase Issue Type: Bug Components: scripts Affects Versions: 0.94.4 Reporter: Jesse Yates Assignee: Jesse Yates Labels: newbie Fix For: 0.94.4, 0.95.0 Attachments: hbase-7091-v1.patch When running things like bin/start-hbase and bin/hbase-daemon.sh start [master|regionserver|etc] we end up setting HBASE_OPTS property a couple times via calling hbase-env.sh. This is generally not a problem for most cases, but when you want to set your own GC log properties, one would think you should set HBASE_GC_OPTS, which get added to HBASE_OPTS. NOPE! That would make too much sense. Running bin/hbase-daemons.sh will run bin/hbase-daemon.sh with the daemons it needs to start. Each time through hbase-daemon.sh we also call bin/hbase. This isn't a big deal except for each call to hbase-daemon.sh, we also source hbase-env.sh twice (once in the script and once in bin/hbase). This is important for my next point. Note that to turn on GC logging, you uncomment: {code} # export HBASE_OPTS=$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps $HBASE_GC_OPTS {code} and then to log to a gc file for each server, you then uncomment: {code} # export HBASE_USE_GC_LOGFILE=true {code} in hbase-env.sh On the first pass through hbase-daemon.sh, HBASE_GC_OPTS isn't set, so HBASE_OPTS doesn't get anything funky, but we set HBASE_USE_GC_LOGFILE, which then sets HBASE_GC_OPTS to the log file (-Xloggc:...). Then in bin/hbase we again run hbase-env.sh, which now hs HBASE_GC_OPTS set, adding the GC file. This isn't a general problem because HBASE_OPTS is set without prefixing the existing HBASE_OPTS (eg. HBASE_OPTS=$HBASE_OPTS ...), allowing easy updating. However, GC OPTS don't work the same and this is really odd behavior when you want to set your own GC opts, which can include turning on GC log rolling (yes, yes, they really are jvm opts, but they ought to support their own param, to help minimize clutter). The simple version of this patch will just add an idempotent GC option to hbase-env.sh and some comments that uncommenting {code} # export HBASE_USE_GC_LOGFILE=true {code} will lead to a custom gc log file per server (along with an example name), so you don't need to set -Xloggc. The more complex solution does the above and also solves the multiple calls to hbase-env.sh so we can be sane about how all this works. Note that to fix this, hbase-daemon.sh just needs to read in HBASE_USE_GC_LOGFILE after sourcing hbase-env.sh and then update HBASE_OPTS. Oh and also not source hbase-env.sh in bin/hbase. Even further, we might want to consider adding options just for cases where we don't need gc logging - i.e. the shell, the config reading tool, hcbk, etc. This is the hardest version to handle since the first couple will willy-nilly apply the gc options. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-7091) support custom GC options in hbase-env.sh
[ https://issues.apache.org/jira/browse/HBASE-7091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836375#comment-13836375 ] Nicolas Liochon commented on HBASE-7091: IIRC, I had the issue on both trunk 0.96. I've just tested it again, by doing, on .96 head: {code} $export HBASE_OPTS=qsfijqspfjpqsf {code} without any change, the value is ignored, and I can do a ??bin/start-hbase.sh??: {noformat} $bin/start-hbase.sh starting master, logging to /home/liochon/dev/hbase/bin/../logs/hbase-liochon-master-balzac.out {noformat} If I change it by: {noformat} -export HBASE_OPTS=-XX:+UseConcMarkSweepGC +#export HBASE_OPTS=-XX:+UseConcMarkSweepGC {noformat} then the value is not ignored anymore and I have: {noformat} $bin/start-hbase.sh Error: Could not find or load main class qsfijqspfjpqsf Error: Could not find or load main class qsfijqspfjpqsf starting master, logging to /home/liochon/dev/hbase/bin/../logs/hbase-liochon-master-balzac.out Error: Could not find or load main class qsfijqspfjpqsf localhost: starting regionserver, logging to /home/liochon/dev/hbase/bin/../logs/hbase-liochon-regionserver-balzac.out $cat /home/liochon/dev/hbase/bin/../logs/hbase-liochon-master-balzac.out Error: Could not find or load main class qsfijqspfjpqsf {noformat} My understanding is that an user should not modify HBASE_OPTS? support custom GC options in hbase-env.sh - Key: HBASE-7091 URL: https://issues.apache.org/jira/browse/HBASE-7091 Project: HBase Issue Type: Bug Components: scripts Affects Versions: 0.94.4 Reporter: Jesse Yates Assignee: Jesse Yates Labels: newbie Fix For: 0.94.4, 0.95.0 Attachments: hbase-7091-v1.patch When running things like bin/start-hbase and bin/hbase-daemon.sh start [master|regionserver|etc] we end up setting HBASE_OPTS property a couple times via calling hbase-env.sh. This is generally not a problem for most cases, but when you want to set your own GC log properties, one would think you should set HBASE_GC_OPTS, which get added to HBASE_OPTS. NOPE! That would make too much sense. Running bin/hbase-daemons.sh will run bin/hbase-daemon.sh with the daemons it needs to start. Each time through hbase-daemon.sh we also call bin/hbase. This isn't a big deal except for each call to hbase-daemon.sh, we also source hbase-env.sh twice (once in the script and once in bin/hbase). This is important for my next point. Note that to turn on GC logging, you uncomment: {code} # export HBASE_OPTS=$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps $HBASE_GC_OPTS {code} and then to log to a gc file for each server, you then uncomment: {code} # export HBASE_USE_GC_LOGFILE=true {code} in hbase-env.sh On the first pass through hbase-daemon.sh, HBASE_GC_OPTS isn't set, so HBASE_OPTS doesn't get anything funky, but we set HBASE_USE_GC_LOGFILE, which then sets HBASE_GC_OPTS to the log file (-Xloggc:...). Then in bin/hbase we again run hbase-env.sh, which now hs HBASE_GC_OPTS set, adding the GC file. This isn't a general problem because HBASE_OPTS is set without prefixing the existing HBASE_OPTS (eg. HBASE_OPTS=$HBASE_OPTS ...), allowing easy updating. However, GC OPTS don't work the same and this is really odd behavior when you want to set your own GC opts, which can include turning on GC log rolling (yes, yes, they really are jvm opts, but they ought to support their own param, to help minimize clutter). The simple version of this patch will just add an idempotent GC option to hbase-env.sh and some comments that uncommenting {code} # export HBASE_USE_GC_LOGFILE=true {code} will lead to a custom gc log file per server (along with an example name), so you don't need to set -Xloggc. The more complex solution does the above and also solves the multiple calls to hbase-env.sh so we can be sane about how all this works. Note that to fix this, hbase-daemon.sh just needs to read in HBASE_USE_GC_LOGFILE after sourcing hbase-env.sh and then update HBASE_OPTS. Oh and also not source hbase-env.sh in bin/hbase. Even further, we might want to consider adding options just for cases where we don't need gc logging - i.e. the shell, the config reading tool, hcbk, etc. This is the hardest version to handle since the first couple will willy-nilly apply the gc options. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-7091) support custom GC options in hbase-env.sh
[ https://issues.apache.org/jira/browse/HBASE-7091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836791#comment-13836791 ] Jesse Yates commented on HBASE-7091: Oh, you are modifying HBASE_OPTS on the command line! That wasn't a case I'd considered in the original version. Yeah, either you set it on the command line or in the script - not both. You could modify the HBASE_OPTS variable in your hbase-env to support that behavior by doing the original {code} HBASE_OPTS=$HBASE_OPTS ... {code} but that ends up being problematic for some cases as hbase-env can get sourced multiple times. A better fix might be ensuring that we don't do that and allow the external setting to be prepended. Either way, should be a follow up jira - want to file one? support custom GC options in hbase-env.sh - Key: HBASE-7091 URL: https://issues.apache.org/jira/browse/HBASE-7091 Project: HBase Issue Type: Bug Components: scripts Affects Versions: 0.94.4 Reporter: Jesse Yates Assignee: Jesse Yates Labels: newbie Fix For: 0.94.4, 0.95.0 Attachments: hbase-7091-v1.patch When running things like bin/start-hbase and bin/hbase-daemon.sh start [master|regionserver|etc] we end up setting HBASE_OPTS property a couple times via calling hbase-env.sh. This is generally not a problem for most cases, but when you want to set your own GC log properties, one would think you should set HBASE_GC_OPTS, which get added to HBASE_OPTS. NOPE! That would make too much sense. Running bin/hbase-daemons.sh will run bin/hbase-daemon.sh with the daemons it needs to start. Each time through hbase-daemon.sh we also call bin/hbase. This isn't a big deal except for each call to hbase-daemon.sh, we also source hbase-env.sh twice (once in the script and once in bin/hbase). This is important for my next point. Note that to turn on GC logging, you uncomment: {code} # export HBASE_OPTS=$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps $HBASE_GC_OPTS {code} and then to log to a gc file for each server, you then uncomment: {code} # export HBASE_USE_GC_LOGFILE=true {code} in hbase-env.sh On the first pass through hbase-daemon.sh, HBASE_GC_OPTS isn't set, so HBASE_OPTS doesn't get anything funky, but we set HBASE_USE_GC_LOGFILE, which then sets HBASE_GC_OPTS to the log file (-Xloggc:...). Then in bin/hbase we again run hbase-env.sh, which now hs HBASE_GC_OPTS set, adding the GC file. This isn't a general problem because HBASE_OPTS is set without prefixing the existing HBASE_OPTS (eg. HBASE_OPTS=$HBASE_OPTS ...), allowing easy updating. However, GC OPTS don't work the same and this is really odd behavior when you want to set your own GC opts, which can include turning on GC log rolling (yes, yes, they really are jvm opts, but they ought to support their own param, to help minimize clutter). The simple version of this patch will just add an idempotent GC option to hbase-env.sh and some comments that uncommenting {code} # export HBASE_USE_GC_LOGFILE=true {code} will lead to a custom gc log file per server (along with an example name), so you don't need to set -Xloggc. The more complex solution does the above and also solves the multiple calls to hbase-env.sh so we can be sane about how all this works. Note that to fix this, hbase-daemon.sh just needs to read in HBASE_USE_GC_LOGFILE after sourcing hbase-env.sh and then update HBASE_OPTS. Oh and also not source hbase-env.sh in bin/hbase. Even further, we might want to consider adding options just for cases where we don't need gc logging - i.e. the shell, the config reading tool, hcbk, etc. This is the hardest version to handle since the first couple will willy-nilly apply the gc options. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-7091) support custom GC options in hbase-env.sh
[ https://issues.apache.org/jira/browse/HBASE-7091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13836126#comment-13836126 ] Jesse Yates commented on HBASE-7091: Is this in trunk or 0.94 that you have a concern Nicolas? I don't think it erases it - it just doesn't apply it multiple times. bin/hbase does this kind of thing: {code} HBASE_OPTS=$HBASE_OPTS $CLIENT_GC_OPTS {code} So it doesn't erase it - just copies it. support custom GC options in hbase-env.sh - Key: HBASE-7091 URL: https://issues.apache.org/jira/browse/HBASE-7091 Project: HBase Issue Type: Bug Components: scripts Affects Versions: 0.94.4 Reporter: Jesse Yates Assignee: Jesse Yates Labels: newbie Fix For: 0.94.4, 0.95.0 Attachments: hbase-7091-v1.patch When running things like bin/start-hbase and bin/hbase-daemon.sh start [master|regionserver|etc] we end up setting HBASE_OPTS property a couple times via calling hbase-env.sh. This is generally not a problem for most cases, but when you want to set your own GC log properties, one would think you should set HBASE_GC_OPTS, which get added to HBASE_OPTS. NOPE! That would make too much sense. Running bin/hbase-daemons.sh will run bin/hbase-daemon.sh with the daemons it needs to start. Each time through hbase-daemon.sh we also call bin/hbase. This isn't a big deal except for each call to hbase-daemon.sh, we also source hbase-env.sh twice (once in the script and once in bin/hbase). This is important for my next point. Note that to turn on GC logging, you uncomment: {code} # export HBASE_OPTS=$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps $HBASE_GC_OPTS {code} and then to log to a gc file for each server, you then uncomment: {code} # export HBASE_USE_GC_LOGFILE=true {code} in hbase-env.sh On the first pass through hbase-daemon.sh, HBASE_GC_OPTS isn't set, so HBASE_OPTS doesn't get anything funky, but we set HBASE_USE_GC_LOGFILE, which then sets HBASE_GC_OPTS to the log file (-Xloggc:...). Then in bin/hbase we again run hbase-env.sh, which now hs HBASE_GC_OPTS set, adding the GC file. This isn't a general problem because HBASE_OPTS is set without prefixing the existing HBASE_OPTS (eg. HBASE_OPTS=$HBASE_OPTS ...), allowing easy updating. However, GC OPTS don't work the same and this is really odd behavior when you want to set your own GC opts, which can include turning on GC log rolling (yes, yes, they really are jvm opts, but they ought to support their own param, to help minimize clutter). The simple version of this patch will just add an idempotent GC option to hbase-env.sh and some comments that uncommenting {code} # export HBASE_USE_GC_LOGFILE=true {code} will lead to a custom gc log file per server (along with an example name), so you don't need to set -Xloggc. The more complex solution does the above and also solves the multiple calls to hbase-env.sh so we can be sane about how all this works. Note that to fix this, hbase-daemon.sh just needs to read in HBASE_USE_GC_LOGFILE after sourcing hbase-env.sh and then update HBASE_OPTS. Oh and also not source hbase-env.sh in bin/hbase. Even further, we might want to consider adding options just for cases where we don't need gc logging - i.e. the shell, the config reading tool, hcbk, etc. This is the hardest version to handle since the first couple will willy-nilly apply the gc options. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-7091) support custom GC options in hbase-env.sh
[ https://issues.apache.org/jira/browse/HBASE-7091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13835431#comment-13835431 ] Nicolas Liochon commented on HBASE-7091: I don't understand this change: {code} -export HBASE_OPTS=$HBASE_OPTS -XX:+UseConcMarkSweepGC +export HBASE_OPTS=-XX:+UseConcMarkSweepGC {code} in bin/hbase, it says ??HBASE_OPTS Extra Java runtime options.??, but they are now erased by default. support custom GC options in hbase-env.sh - Key: HBASE-7091 URL: https://issues.apache.org/jira/browse/HBASE-7091 Project: HBase Issue Type: Bug Components: scripts Affects Versions: 0.94.4 Reporter: Jesse Yates Assignee: Jesse Yates Labels: newbie Fix For: 0.94.4, 0.95.0 Attachments: hbase-7091-v1.patch When running things like bin/start-hbase and bin/hbase-daemon.sh start [master|regionserver|etc] we end up setting HBASE_OPTS property a couple times via calling hbase-env.sh. This is generally not a problem for most cases, but when you want to set your own GC log properties, one would think you should set HBASE_GC_OPTS, which get added to HBASE_OPTS. NOPE! That would make too much sense. Running bin/hbase-daemons.sh will run bin/hbase-daemon.sh with the daemons it needs to start. Each time through hbase-daemon.sh we also call bin/hbase. This isn't a big deal except for each call to hbase-daemon.sh, we also source hbase-env.sh twice (once in the script and once in bin/hbase). This is important for my next point. Note that to turn on GC logging, you uncomment: {code} # export HBASE_OPTS=$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps $HBASE_GC_OPTS {code} and then to log to a gc file for each server, you then uncomment: {code} # export HBASE_USE_GC_LOGFILE=true {code} in hbase-env.sh On the first pass through hbase-daemon.sh, HBASE_GC_OPTS isn't set, so HBASE_OPTS doesn't get anything funky, but we set HBASE_USE_GC_LOGFILE, which then sets HBASE_GC_OPTS to the log file (-Xloggc:...). Then in bin/hbase we again run hbase-env.sh, which now hs HBASE_GC_OPTS set, adding the GC file. This isn't a general problem because HBASE_OPTS is set without prefixing the existing HBASE_OPTS (eg. HBASE_OPTS=$HBASE_OPTS ...), allowing easy updating. However, GC OPTS don't work the same and this is really odd behavior when you want to set your own GC opts, which can include turning on GC log rolling (yes, yes, they really are jvm opts, but they ought to support their own param, to help minimize clutter). The simple version of this patch will just add an idempotent GC option to hbase-env.sh and some comments that uncommenting {code} # export HBASE_USE_GC_LOGFILE=true {code} will lead to a custom gc log file per server (along with an example name), so you don't need to set -Xloggc. The more complex solution does the above and also solves the multiple calls to hbase-env.sh so we can be sane about how all this works. Note that to fix this, hbase-daemon.sh just needs to read in HBASE_USE_GC_LOGFILE after sourcing hbase-env.sh and then update HBASE_OPTS. Oh and also not source hbase-env.sh in bin/hbase. Even further, we might want to consider adding options just for cases where we don't need gc logging - i.e. the shell, the config reading tool, hcbk, etc. This is the hardest version to handle since the first couple will willy-nilly apply the gc options. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (HBASE-7091) support custom GC options in hbase-env.sh
[ https://issues.apache.org/jira/browse/HBASE-7091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13544400#comment-13544400 ] Hudson commented on HBASE-7091: --- Integrated in HBase-0.94-security-on-Hadoop-23 #10 (See [https://builds.apache.org/job/HBase-0.94-security-on-Hadoop-23/10/]) HBASE-7091: Support custom GC options in hbase-env.sh (Revision 1424646) Result = FAILURE jyates : Files : * /hbase/branches/0.94/bin/hbase * /hbase/branches/0.94/conf/hbase-env.sh support custom GC options in hbase-env.sh - Key: HBASE-7091 URL: https://issues.apache.org/jira/browse/HBASE-7091 Project: HBase Issue Type: Bug Components: scripts Affects Versions: 0.94.4 Reporter: Jesse Yates Assignee: Jesse Yates Labels: newbie Fix For: 0.96.0, 0.94.4 Attachments: hbase-7091-v1.patch When running things like bin/start-hbase and bin/hbase-daemon.sh start [master|regionserver|etc] we end up setting HBASE_OPTS property a couple times via calling hbase-env.sh. This is generally not a problem for most cases, but when you want to set your own GC log properties, one would think you should set HBASE_GC_OPTS, which get added to HBASE_OPTS. NOPE! That would make too much sense. Running bin/hbase-daemons.sh will run bin/hbase-daemon.sh with the daemons it needs to start. Each time through hbase-daemon.sh we also call bin/hbase. This isn't a big deal except for each call to hbase-daemon.sh, we also source hbase-env.sh twice (once in the script and once in bin/hbase). This is important for my next point. Note that to turn on GC logging, you uncomment: {code} # export HBASE_OPTS=$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps $HBASE_GC_OPTS {code} and then to log to a gc file for each server, you then uncomment: {code} # export HBASE_USE_GC_LOGFILE=true {code} in hbase-env.sh On the first pass through hbase-daemon.sh, HBASE_GC_OPTS isn't set, so HBASE_OPTS doesn't get anything funky, but we set HBASE_USE_GC_LOGFILE, which then sets HBASE_GC_OPTS to the log file (-Xloggc:...). Then in bin/hbase we again run hbase-env.sh, which now hs HBASE_GC_OPTS set, adding the GC file. This isn't a general problem because HBASE_OPTS is set without prefixing the existing HBASE_OPTS (eg. HBASE_OPTS=$HBASE_OPTS ...), allowing easy updating. However, GC OPTS don't work the same and this is really odd behavior when you want to set your own GC opts, which can include turning on GC log rolling (yes, yes, they really are jvm opts, but they ought to support their own param, to help minimize clutter). The simple version of this patch will just add an idempotent GC option to hbase-env.sh and some comments that uncommenting {code} # export HBASE_USE_GC_LOGFILE=true {code} will lead to a custom gc log file per server (along with an example name), so you don't need to set -Xloggc. The more complex solution does the above and also solves the multiple calls to hbase-env.sh so we can be sane about how all this works. Note that to fix this, hbase-daemon.sh just needs to read in HBASE_USE_GC_LOGFILE after sourcing hbase-env.sh and then update HBASE_OPTS. Oh and also not source hbase-env.sh in bin/hbase. Even further, we might want to consider adding options just for cases where we don't need gc logging - i.e. the shell, the config reading tool, hcbk, etc. This is the hardest version to handle since the first couple will willy-nilly apply the gc options. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HBASE-7091) support custom GC options in hbase-env.sh
[ https://issues.apache.org/jira/browse/HBASE-7091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13537916#comment-13537916 ] Hudson commented on HBASE-7091: --- Integrated in HBase-0.94-security #87 (See [https://builds.apache.org/job/HBase-0.94-security/87/]) HBASE-7091: Support custom GC options in hbase-env.sh (Revision 1424646) Result = SUCCESS jyates : Files : * /hbase/branches/0.94/bin/hbase * /hbase/branches/0.94/conf/hbase-env.sh support custom GC options in hbase-env.sh - Key: HBASE-7091 URL: https://issues.apache.org/jira/browse/HBASE-7091 Project: HBase Issue Type: Bug Components: scripts Affects Versions: 0.94.4 Reporter: Jesse Yates Assignee: Jesse Yates Labels: newbie Fix For: 0.96.0, 0.94.4 Attachments: hbase-7091-v1.patch When running things like bin/start-hbase and bin/hbase-daemon.sh start [master|regionserver|etc] we end up setting HBASE_OPTS property a couple times via calling hbase-env.sh. This is generally not a problem for most cases, but when you want to set your own GC log properties, one would think you should set HBASE_GC_OPTS, which get added to HBASE_OPTS. NOPE! That would make too much sense. Running bin/hbase-daemons.sh will run bin/hbase-daemon.sh with the daemons it needs to start. Each time through hbase-daemon.sh we also call bin/hbase. This isn't a big deal except for each call to hbase-daemon.sh, we also source hbase-env.sh twice (once in the script and once in bin/hbase). This is important for my next point. Note that to turn on GC logging, you uncomment: {code} # export HBASE_OPTS=$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps $HBASE_GC_OPTS {code} and then to log to a gc file for each server, you then uncomment: {code} # export HBASE_USE_GC_LOGFILE=true {code} in hbase-env.sh On the first pass through hbase-daemon.sh, HBASE_GC_OPTS isn't set, so HBASE_OPTS doesn't get anything funky, but we set HBASE_USE_GC_LOGFILE, which then sets HBASE_GC_OPTS to the log file (-Xloggc:...). Then in bin/hbase we again run hbase-env.sh, which now hs HBASE_GC_OPTS set, adding the GC file. This isn't a general problem because HBASE_OPTS is set without prefixing the existing HBASE_OPTS (eg. HBASE_OPTS=$HBASE_OPTS ...), allowing easy updating. However, GC OPTS don't work the same and this is really odd behavior when you want to set your own GC opts, which can include turning on GC log rolling (yes, yes, they really are jvm opts, but they ought to support their own param, to help minimize clutter). The simple version of this patch will just add an idempotent GC option to hbase-env.sh and some comments that uncommenting {code} # export HBASE_USE_GC_LOGFILE=true {code} will lead to a custom gc log file per server (along with an example name), so you don't need to set -Xloggc. The more complex solution does the above and also solves the multiple calls to hbase-env.sh so we can be sane about how all this works. Note that to fix this, hbase-daemon.sh just needs to read in HBASE_USE_GC_LOGFILE after sourcing hbase-env.sh and then update HBASE_OPTS. Oh and also not source hbase-env.sh in bin/hbase. Even further, we might want to consider adding options just for cases where we don't need gc logging - i.e. the shell, the config reading tool, hcbk, etc. This is the hardest version to handle since the first couple will willy-nilly apply the gc options. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HBASE-7091) support custom GC options in hbase-env.sh
[ https://issues.apache.org/jira/browse/HBASE-7091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13537349#comment-13537349 ] Hudson commented on HBASE-7091: --- Integrated in HBase-0.94 #649 (See [https://builds.apache.org/job/HBase-0.94/649/]) HBASE-7091: Support custom GC options in hbase-env.sh (Revision 1424646) Result = FAILURE jyates : Files : * /hbase/branches/0.94/bin/hbase * /hbase/branches/0.94/conf/hbase-env.sh support custom GC options in hbase-env.sh - Key: HBASE-7091 URL: https://issues.apache.org/jira/browse/HBASE-7091 Project: HBase Issue Type: Bug Components: scripts Affects Versions: 0.94.4 Reporter: Jesse Yates Assignee: Jesse Yates Labels: newbie Fix For: 0.96.0, 0.94.4 Attachments: hbase-7091-v1.patch When running things like bin/start-hbase and bin/hbase-daemon.sh start [master|regionserver|etc] we end up setting HBASE_OPTS property a couple times via calling hbase-env.sh. This is generally not a problem for most cases, but when you want to set your own GC log properties, one would think you should set HBASE_GC_OPTS, which get added to HBASE_OPTS. NOPE! That would make too much sense. Running bin/hbase-daemons.sh will run bin/hbase-daemon.sh with the daemons it needs to start. Each time through hbase-daemon.sh we also call bin/hbase. This isn't a big deal except for each call to hbase-daemon.sh, we also source hbase-env.sh twice (once in the script and once in bin/hbase). This is important for my next point. Note that to turn on GC logging, you uncomment: {code} # export HBASE_OPTS=$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps $HBASE_GC_OPTS {code} and then to log to a gc file for each server, you then uncomment: {code} # export HBASE_USE_GC_LOGFILE=true {code} in hbase-env.sh On the first pass through hbase-daemon.sh, HBASE_GC_OPTS isn't set, so HBASE_OPTS doesn't get anything funky, but we set HBASE_USE_GC_LOGFILE, which then sets HBASE_GC_OPTS to the log file (-Xloggc:...). Then in bin/hbase we again run hbase-env.sh, which now hs HBASE_GC_OPTS set, adding the GC file. This isn't a general problem because HBASE_OPTS is set without prefixing the existing HBASE_OPTS (eg. HBASE_OPTS=$HBASE_OPTS ...), allowing easy updating. However, GC OPTS don't work the same and this is really odd behavior when you want to set your own GC opts, which can include turning on GC log rolling (yes, yes, they really are jvm opts, but they ought to support their own param, to help minimize clutter). The simple version of this patch will just add an idempotent GC option to hbase-env.sh and some comments that uncommenting {code} # export HBASE_USE_GC_LOGFILE=true {code} will lead to a custom gc log file per server (along with an example name), so you don't need to set -Xloggc. The more complex solution does the above and also solves the multiple calls to hbase-env.sh so we can be sane about how all this works. Note that to fix this, hbase-daemon.sh just needs to read in HBASE_USE_GC_LOGFILE after sourcing hbase-env.sh and then update HBASE_OPTS. Oh and also not source hbase-env.sh in bin/hbase. Even further, we might want to consider adding options just for cases where we don't need gc logging - i.e. the shell, the config reading tool, hcbk, etc. This is the hardest version to handle since the first couple will willy-nilly apply the gc options. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HBASE-7091) support custom GC options in hbase-env.sh
[ https://issues.apache.org/jira/browse/HBASE-7091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13537468#comment-13537468 ] Hudson commented on HBASE-7091: --- Integrated in HBase-TRUNK #3644 (See [https://builds.apache.org/job/HBase-TRUNK/3644/]) HBASE-7091: Support custom GC options in hbase-env.sh (Revision 1424640) Result = FAILURE jyates : Files : * /hbase/trunk/bin/hbase * /hbase/trunk/conf/hbase-env.sh support custom GC options in hbase-env.sh - Key: HBASE-7091 URL: https://issues.apache.org/jira/browse/HBASE-7091 Project: HBase Issue Type: Bug Components: scripts Affects Versions: 0.94.4 Reporter: Jesse Yates Assignee: Jesse Yates Labels: newbie Fix For: 0.96.0, 0.94.4 Attachments: hbase-7091-v1.patch When running things like bin/start-hbase and bin/hbase-daemon.sh start [master|regionserver|etc] we end up setting HBASE_OPTS property a couple times via calling hbase-env.sh. This is generally not a problem for most cases, but when you want to set your own GC log properties, one would think you should set HBASE_GC_OPTS, which get added to HBASE_OPTS. NOPE! That would make too much sense. Running bin/hbase-daemons.sh will run bin/hbase-daemon.sh with the daemons it needs to start. Each time through hbase-daemon.sh we also call bin/hbase. This isn't a big deal except for each call to hbase-daemon.sh, we also source hbase-env.sh twice (once in the script and once in bin/hbase). This is important for my next point. Note that to turn on GC logging, you uncomment: {code} # export HBASE_OPTS=$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps $HBASE_GC_OPTS {code} and then to log to a gc file for each server, you then uncomment: {code} # export HBASE_USE_GC_LOGFILE=true {code} in hbase-env.sh On the first pass through hbase-daemon.sh, HBASE_GC_OPTS isn't set, so HBASE_OPTS doesn't get anything funky, but we set HBASE_USE_GC_LOGFILE, which then sets HBASE_GC_OPTS to the log file (-Xloggc:...). Then in bin/hbase we again run hbase-env.sh, which now hs HBASE_GC_OPTS set, adding the GC file. This isn't a general problem because HBASE_OPTS is set without prefixing the existing HBASE_OPTS (eg. HBASE_OPTS=$HBASE_OPTS ...), allowing easy updating. However, GC OPTS don't work the same and this is really odd behavior when you want to set your own GC opts, which can include turning on GC log rolling (yes, yes, they really are jvm opts, but they ought to support their own param, to help minimize clutter). The simple version of this patch will just add an idempotent GC option to hbase-env.sh and some comments that uncommenting {code} # export HBASE_USE_GC_LOGFILE=true {code} will lead to a custom gc log file per server (along with an example name), so you don't need to set -Xloggc. The more complex solution does the above and also solves the multiple calls to hbase-env.sh so we can be sane about how all this works. Note that to fix this, hbase-daemon.sh just needs to read in HBASE_USE_GC_LOGFILE after sourcing hbase-env.sh and then update HBASE_OPTS. Oh and also not source hbase-env.sh in bin/hbase. Even further, we might want to consider adding options just for cases where we don't need gc logging - i.e. the shell, the config reading tool, hcbk, etc. This is the hardest version to handle since the first couple will willy-nilly apply the gc options. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HBASE-7091) support custom GC options in hbase-env.sh
[ https://issues.apache.org/jira/browse/HBASE-7091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13537486#comment-13537486 ] Jesse Yates commented on HBASE-7091: These errors seem unrelated, but it is odd to see so many... support custom GC options in hbase-env.sh - Key: HBASE-7091 URL: https://issues.apache.org/jira/browse/HBASE-7091 Project: HBase Issue Type: Bug Components: scripts Affects Versions: 0.94.4 Reporter: Jesse Yates Assignee: Jesse Yates Labels: newbie Fix For: 0.96.0, 0.94.4 Attachments: hbase-7091-v1.patch When running things like bin/start-hbase and bin/hbase-daemon.sh start [master|regionserver|etc] we end up setting HBASE_OPTS property a couple times via calling hbase-env.sh. This is generally not a problem for most cases, but when you want to set your own GC log properties, one would think you should set HBASE_GC_OPTS, which get added to HBASE_OPTS. NOPE! That would make too much sense. Running bin/hbase-daemons.sh will run bin/hbase-daemon.sh with the daemons it needs to start. Each time through hbase-daemon.sh we also call bin/hbase. This isn't a big deal except for each call to hbase-daemon.sh, we also source hbase-env.sh twice (once in the script and once in bin/hbase). This is important for my next point. Note that to turn on GC logging, you uncomment: {code} # export HBASE_OPTS=$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps $HBASE_GC_OPTS {code} and then to log to a gc file for each server, you then uncomment: {code} # export HBASE_USE_GC_LOGFILE=true {code} in hbase-env.sh On the first pass through hbase-daemon.sh, HBASE_GC_OPTS isn't set, so HBASE_OPTS doesn't get anything funky, but we set HBASE_USE_GC_LOGFILE, which then sets HBASE_GC_OPTS to the log file (-Xloggc:...). Then in bin/hbase we again run hbase-env.sh, which now hs HBASE_GC_OPTS set, adding the GC file. This isn't a general problem because HBASE_OPTS is set without prefixing the existing HBASE_OPTS (eg. HBASE_OPTS=$HBASE_OPTS ...), allowing easy updating. However, GC OPTS don't work the same and this is really odd behavior when you want to set your own GC opts, which can include turning on GC log rolling (yes, yes, they really are jvm opts, but they ought to support their own param, to help minimize clutter). The simple version of this patch will just add an idempotent GC option to hbase-env.sh and some comments that uncommenting {code} # export HBASE_USE_GC_LOGFILE=true {code} will lead to a custom gc log file per server (along with an example name), so you don't need to set -Xloggc. The more complex solution does the above and also solves the multiple calls to hbase-env.sh so we can be sane about how all this works. Note that to fix this, hbase-daemon.sh just needs to read in HBASE_USE_GC_LOGFILE after sourcing hbase-env.sh and then update HBASE_OPTS. Oh and also not source hbase-env.sh in bin/hbase. Even further, we might want to consider adding options just for cases where we don't need gc logging - i.e. the shell, the config reading tool, hcbk, etc. This is the hardest version to handle since the first couple will willy-nilly apply the gc options. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HBASE-7091) support custom GC options in hbase-env.sh
[ https://issues.apache.org/jira/browse/HBASE-7091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13537506#comment-13537506 ] Hudson commented on HBASE-7091: --- Integrated in HBase-TRUNK-on-Hadoop-2.0.0 #306 (See [https://builds.apache.org/job/HBase-TRUNK-on-Hadoop-2.0.0/306/]) HBASE-7091: Support custom GC options in hbase-env.sh (Revision 1424640) Result = FAILURE jyates : Files : * /hbase/trunk/bin/hbase * /hbase/trunk/conf/hbase-env.sh support custom GC options in hbase-env.sh - Key: HBASE-7091 URL: https://issues.apache.org/jira/browse/HBASE-7091 Project: HBase Issue Type: Bug Components: scripts Affects Versions: 0.94.4 Reporter: Jesse Yates Assignee: Jesse Yates Labels: newbie Fix For: 0.96.0, 0.94.4 Attachments: hbase-7091-v1.patch When running things like bin/start-hbase and bin/hbase-daemon.sh start [master|regionserver|etc] we end up setting HBASE_OPTS property a couple times via calling hbase-env.sh. This is generally not a problem for most cases, but when you want to set your own GC log properties, one would think you should set HBASE_GC_OPTS, which get added to HBASE_OPTS. NOPE! That would make too much sense. Running bin/hbase-daemons.sh will run bin/hbase-daemon.sh with the daemons it needs to start. Each time through hbase-daemon.sh we also call bin/hbase. This isn't a big deal except for each call to hbase-daemon.sh, we also source hbase-env.sh twice (once in the script and once in bin/hbase). This is important for my next point. Note that to turn on GC logging, you uncomment: {code} # export HBASE_OPTS=$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps $HBASE_GC_OPTS {code} and then to log to a gc file for each server, you then uncomment: {code} # export HBASE_USE_GC_LOGFILE=true {code} in hbase-env.sh On the first pass through hbase-daemon.sh, HBASE_GC_OPTS isn't set, so HBASE_OPTS doesn't get anything funky, but we set HBASE_USE_GC_LOGFILE, which then sets HBASE_GC_OPTS to the log file (-Xloggc:...). Then in bin/hbase we again run hbase-env.sh, which now hs HBASE_GC_OPTS set, adding the GC file. This isn't a general problem because HBASE_OPTS is set without prefixing the existing HBASE_OPTS (eg. HBASE_OPTS=$HBASE_OPTS ...), allowing easy updating. However, GC OPTS don't work the same and this is really odd behavior when you want to set your own GC opts, which can include turning on GC log rolling (yes, yes, they really are jvm opts, but they ought to support their own param, to help minimize clutter). The simple version of this patch will just add an idempotent GC option to hbase-env.sh and some comments that uncommenting {code} # export HBASE_USE_GC_LOGFILE=true {code} will lead to a custom gc log file per server (along with an example name), so you don't need to set -Xloggc. The more complex solution does the above and also solves the multiple calls to hbase-env.sh so we can be sane about how all this works. Note that to fix this, hbase-daemon.sh just needs to read in HBASE_USE_GC_LOGFILE after sourcing hbase-env.sh and then update HBASE_OPTS. Oh and also not source hbase-env.sh in bin/hbase. Even further, we might want to consider adding options just for cases where we don't need gc logging - i.e. the shell, the config reading tool, hcbk, etc. This is the hardest version to handle since the first couple will willy-nilly apply the gc options. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HBASE-7091) support custom GC options in hbase-env.sh
[ https://issues.apache.org/jira/browse/HBASE-7091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13536530#comment-13536530 ] Lars Hofhansl commented on HBASE-7091: -- [~jesse_yates] Ping support custom GC options in hbase-env.sh - Key: HBASE-7091 URL: https://issues.apache.org/jira/browse/HBASE-7091 Project: HBase Issue Type: Bug Components: scripts Affects Versions: 0.94.4 Reporter: Jesse Yates Assignee: Jesse Yates Labels: newbie Fix For: 0.94.4 Attachments: hbase-7091-v1.patch When running things like bin/start-hbase and bin/hbase-daemon.sh start [master|regionserver|etc] we end up setting HBASE_OPTS property a couple times via calling hbase-env.sh. This is generally not a problem for most cases, but when you want to set your own GC log properties, one would think you should set HBASE_GC_OPTS, which get added to HBASE_OPTS. NOPE! That would make too much sense. Running bin/hbase-daemons.sh will run bin/hbase-daemon.sh with the daemons it needs to start. Each time through hbase-daemon.sh we also call bin/hbase. This isn't a big deal except for each call to hbase-daemon.sh, we also source hbase-env.sh twice (once in the script and once in bin/hbase). This is important for my next point. Note that to turn on GC logging, you uncomment: {code} # export HBASE_OPTS=$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps $HBASE_GC_OPTS {code} and then to log to a gc file for each server, you then uncomment: {code} # export HBASE_USE_GC_LOGFILE=true {code} in hbase-env.sh On the first pass through hbase-daemon.sh, HBASE_GC_OPTS isn't set, so HBASE_OPTS doesn't get anything funky, but we set HBASE_USE_GC_LOGFILE, which then sets HBASE_GC_OPTS to the log file (-Xloggc:...). Then in bin/hbase we again run hbase-env.sh, which now hs HBASE_GC_OPTS set, adding the GC file. This isn't a general problem because HBASE_OPTS is set without prefixing the existing HBASE_OPTS (eg. HBASE_OPTS=$HBASE_OPTS ...), allowing easy updating. However, GC OPTS don't work the same and this is really odd behavior when you want to set your own GC opts, which can include turning on GC log rolling (yes, yes, they really are jvm opts, but they ought to support their own param, to help minimize clutter). The simple version of this patch will just add an idempotent GC option to hbase-env.sh and some comments that uncommenting {code} # export HBASE_USE_GC_LOGFILE=true {code} will lead to a custom gc log file per server (along with an example name), so you don't need to set -Xloggc. The more complex solution does the above and also solves the multiple calls to hbase-env.sh so we can be sane about how all this works. Note that to fix this, hbase-daemon.sh just needs to read in HBASE_USE_GC_LOGFILE after sourcing hbase-env.sh and then update HBASE_OPTS. Oh and also not source hbase-env.sh in bin/hbase. Even further, we might want to consider adding options just for cases where we don't need gc logging - i.e. the shell, the config reading tool, hcbk, etc. This is the hardest version to handle since the first couple will willy-nilly apply the gc options. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HBASE-7091) support custom GC options in hbase-env.sh
[ https://issues.apache.org/jira/browse/HBASE-7091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13536552#comment-13536552 ] Jesse Yates commented on HBASE-7091: [~lhofhansl] ping back: +/- 1? There is the version there, want me to switch to the list and commit? support custom GC options in hbase-env.sh - Key: HBASE-7091 URL: https://issues.apache.org/jira/browse/HBASE-7091 Project: HBase Issue Type: Bug Components: scripts Affects Versions: 0.94.4 Reporter: Jesse Yates Assignee: Jesse Yates Labels: newbie Fix For: 0.94.4 Attachments: hbase-7091-v1.patch When running things like bin/start-hbase and bin/hbase-daemon.sh start [master|regionserver|etc] we end up setting HBASE_OPTS property a couple times via calling hbase-env.sh. This is generally not a problem for most cases, but when you want to set your own GC log properties, one would think you should set HBASE_GC_OPTS, which get added to HBASE_OPTS. NOPE! That would make too much sense. Running bin/hbase-daemons.sh will run bin/hbase-daemon.sh with the daemons it needs to start. Each time through hbase-daemon.sh we also call bin/hbase. This isn't a big deal except for each call to hbase-daemon.sh, we also source hbase-env.sh twice (once in the script and once in bin/hbase). This is important for my next point. Note that to turn on GC logging, you uncomment: {code} # export HBASE_OPTS=$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps $HBASE_GC_OPTS {code} and then to log to a gc file for each server, you then uncomment: {code} # export HBASE_USE_GC_LOGFILE=true {code} in hbase-env.sh On the first pass through hbase-daemon.sh, HBASE_GC_OPTS isn't set, so HBASE_OPTS doesn't get anything funky, but we set HBASE_USE_GC_LOGFILE, which then sets HBASE_GC_OPTS to the log file (-Xloggc:...). Then in bin/hbase we again run hbase-env.sh, which now hs HBASE_GC_OPTS set, adding the GC file. This isn't a general problem because HBASE_OPTS is set without prefixing the existing HBASE_OPTS (eg. HBASE_OPTS=$HBASE_OPTS ...), allowing easy updating. However, GC OPTS don't work the same and this is really odd behavior when you want to set your own GC opts, which can include turning on GC log rolling (yes, yes, they really are jvm opts, but they ought to support their own param, to help minimize clutter). The simple version of this patch will just add an idempotent GC option to hbase-env.sh and some comments that uncommenting {code} # export HBASE_USE_GC_LOGFILE=true {code} will lead to a custom gc log file per server (along with an example name), so you don't need to set -Xloggc. The more complex solution does the above and also solves the multiple calls to hbase-env.sh so we can be sane about how all this works. Note that to fix this, hbase-daemon.sh just needs to read in HBASE_USE_GC_LOGFILE after sourcing hbase-env.sh and then update HBASE_OPTS. Oh and also not source hbase-env.sh in bin/hbase. Even further, we might want to consider adding options just for cases where we don't need gc logging - i.e. the shell, the config reading tool, hcbk, etc. This is the hardest version to handle since the first couple will willy-nilly apply the gc options. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HBASE-7091) support custom GC options in hbase-env.sh
[ https://issues.apache.org/jira/browse/HBASE-7091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13536554#comment-13536554 ] Lars Hofhansl commented on HBASE-7091: -- He he. Up to you. Both are fine. I think the commands inline is easier to follow. But fine with the other approach too. support custom GC options in hbase-env.sh - Key: HBASE-7091 URL: https://issues.apache.org/jira/browse/HBASE-7091 Project: HBase Issue Type: Bug Components: scripts Affects Versions: 0.94.4 Reporter: Jesse Yates Assignee: Jesse Yates Labels: newbie Fix For: 0.94.4 Attachments: hbase-7091-v1.patch When running things like bin/start-hbase and bin/hbase-daemon.sh start [master|regionserver|etc] we end up setting HBASE_OPTS property a couple times via calling hbase-env.sh. This is generally not a problem for most cases, but when you want to set your own GC log properties, one would think you should set HBASE_GC_OPTS, which get added to HBASE_OPTS. NOPE! That would make too much sense. Running bin/hbase-daemons.sh will run bin/hbase-daemon.sh with the daemons it needs to start. Each time through hbase-daemon.sh we also call bin/hbase. This isn't a big deal except for each call to hbase-daemon.sh, we also source hbase-env.sh twice (once in the script and once in bin/hbase). This is important for my next point. Note that to turn on GC logging, you uncomment: {code} # export HBASE_OPTS=$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps $HBASE_GC_OPTS {code} and then to log to a gc file for each server, you then uncomment: {code} # export HBASE_USE_GC_LOGFILE=true {code} in hbase-env.sh On the first pass through hbase-daemon.sh, HBASE_GC_OPTS isn't set, so HBASE_OPTS doesn't get anything funky, but we set HBASE_USE_GC_LOGFILE, which then sets HBASE_GC_OPTS to the log file (-Xloggc:...). Then in bin/hbase we again run hbase-env.sh, which now hs HBASE_GC_OPTS set, adding the GC file. This isn't a general problem because HBASE_OPTS is set without prefixing the existing HBASE_OPTS (eg. HBASE_OPTS=$HBASE_OPTS ...), allowing easy updating. However, GC OPTS don't work the same and this is really odd behavior when you want to set your own GC opts, which can include turning on GC log rolling (yes, yes, they really are jvm opts, but they ought to support their own param, to help minimize clutter). The simple version of this patch will just add an idempotent GC option to hbase-env.sh and some comments that uncommenting {code} # export HBASE_USE_GC_LOGFILE=true {code} will lead to a custom gc log file per server (along with an example name), so you don't need to set -Xloggc. The more complex solution does the above and also solves the multiple calls to hbase-env.sh so we can be sane about how all this works. Note that to fix this, hbase-daemon.sh just needs to read in HBASE_USE_GC_LOGFILE after sourcing hbase-env.sh and then update HBASE_OPTS. Oh and also not source hbase-env.sh in bin/hbase. Even further, we might want to consider adding options just for cases where we don't need gc logging - i.e. the shell, the config reading tool, hcbk, etc. This is the hardest version to handle since the first couple will willy-nilly apply the gc options. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HBASE-7091) support custom GC options in hbase-env.sh
[ https://issues.apache.org/jira/browse/HBASE-7091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13536669#comment-13536669 ] Jesse Yates commented on HBASE-7091: Okay, then I'll just go with as-is, to both 0.94.4 and trunk in the morning. support custom GC options in hbase-env.sh - Key: HBASE-7091 URL: https://issues.apache.org/jira/browse/HBASE-7091 Project: HBase Issue Type: Bug Components: scripts Affects Versions: 0.94.4 Reporter: Jesse Yates Assignee: Jesse Yates Labels: newbie Fix For: 0.94.4 Attachments: hbase-7091-v1.patch When running things like bin/start-hbase and bin/hbase-daemon.sh start [master|regionserver|etc] we end up setting HBASE_OPTS property a couple times via calling hbase-env.sh. This is generally not a problem for most cases, but when you want to set your own GC log properties, one would think you should set HBASE_GC_OPTS, which get added to HBASE_OPTS. NOPE! That would make too much sense. Running bin/hbase-daemons.sh will run bin/hbase-daemon.sh with the daemons it needs to start. Each time through hbase-daemon.sh we also call bin/hbase. This isn't a big deal except for each call to hbase-daemon.sh, we also source hbase-env.sh twice (once in the script and once in bin/hbase). This is important for my next point. Note that to turn on GC logging, you uncomment: {code} # export HBASE_OPTS=$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps $HBASE_GC_OPTS {code} and then to log to a gc file for each server, you then uncomment: {code} # export HBASE_USE_GC_LOGFILE=true {code} in hbase-env.sh On the first pass through hbase-daemon.sh, HBASE_GC_OPTS isn't set, so HBASE_OPTS doesn't get anything funky, but we set HBASE_USE_GC_LOGFILE, which then sets HBASE_GC_OPTS to the log file (-Xloggc:...). Then in bin/hbase we again run hbase-env.sh, which now hs HBASE_GC_OPTS set, adding the GC file. This isn't a general problem because HBASE_OPTS is set without prefixing the existing HBASE_OPTS (eg. HBASE_OPTS=$HBASE_OPTS ...), allowing easy updating. However, GC OPTS don't work the same and this is really odd behavior when you want to set your own GC opts, which can include turning on GC log rolling (yes, yes, they really are jvm opts, but they ought to support their own param, to help minimize clutter). The simple version of this patch will just add an idempotent GC option to hbase-env.sh and some comments that uncommenting {code} # export HBASE_USE_GC_LOGFILE=true {code} will lead to a custom gc log file per server (along with an example name), so you don't need to set -Xloggc. The more complex solution does the above and also solves the multiple calls to hbase-env.sh so we can be sane about how all this works. Note that to fix this, hbase-daemon.sh just needs to read in HBASE_USE_GC_LOGFILE after sourcing hbase-env.sh and then update HBASE_OPTS. Oh and also not source hbase-env.sh in bin/hbase. Even further, we might want to consider adding options just for cases where we don't need gc logging - i.e. the shell, the config reading tool, hcbk, etc. This is the hardest version to handle since the first couple will willy-nilly apply the gc options. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HBASE-7091) support custom GC options in hbase-env.sh
[ https://issues.apache.org/jira/browse/HBASE-7091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13535695#comment-13535695 ] Lars Hofhansl commented on HBASE-7091: -- I think we should commit a version of this. support custom GC options in hbase-env.sh - Key: HBASE-7091 URL: https://issues.apache.org/jira/browse/HBASE-7091 Project: HBase Issue Type: Bug Components: scripts Affects Versions: 0.94.4 Reporter: Jesse Yates Assignee: Jesse Yates Labels: newbie Fix For: 0.94.4 Attachments: hbase-7091-v1.patch When running things like bin/start-hbase and bin/hbase-daemon.sh start [master|regionserver|etc] we end up setting HBASE_OPTS property a couple times via calling hbase-env.sh. This is generally not a problem for most cases, but when you want to set your own GC log properties, one would think you should set HBASE_GC_OPTS, which get added to HBASE_OPTS. NOPE! That would make too much sense. Running bin/hbase-daemons.sh will run bin/hbase-daemon.sh with the daemons it needs to start. Each time through hbase-daemon.sh we also call bin/hbase. This isn't a big deal except for each call to hbase-daemon.sh, we also source hbase-env.sh twice (once in the script and once in bin/hbase). This is important for my next point. Note that to turn on GC logging, you uncomment: {code} # export HBASE_OPTS=$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps $HBASE_GC_OPTS {code} and then to log to a gc file for each server, you then uncomment: {code} # export HBASE_USE_GC_LOGFILE=true {code} in hbase-env.sh On the first pass through hbase-daemon.sh, HBASE_GC_OPTS isn't set, so HBASE_OPTS doesn't get anything funky, but we set HBASE_USE_GC_LOGFILE, which then sets HBASE_GC_OPTS to the log file (-Xloggc:...). Then in bin/hbase we again run hbase-env.sh, which now hs HBASE_GC_OPTS set, adding the GC file. This isn't a general problem because HBASE_OPTS is set without prefixing the existing HBASE_OPTS (eg. HBASE_OPTS=$HBASE_OPTS ...), allowing easy updating. However, GC OPTS don't work the same and this is really odd behavior when you want to set your own GC opts, which can include turning on GC log rolling (yes, yes, they really are jvm opts, but they ought to support their own param, to help minimize clutter). The simple version of this patch will just add an idempotent GC option to hbase-env.sh and some comments that uncommenting {code} # export HBASE_USE_GC_LOGFILE=true {code} will lead to a custom gc log file per server (along with an example name), so you don't need to set -Xloggc. The more complex solution does the above and also solves the multiple calls to hbase-env.sh so we can be sane about how all this works. Note that to fix this, hbase-daemon.sh just needs to read in HBASE_USE_GC_LOGFILE after sourcing hbase-env.sh and then update HBASE_OPTS. Oh and also not source hbase-env.sh in bin/hbase. Even further, we might want to consider adding options just for cases where we don't need gc logging - i.e. the shell, the config reading tool, hcbk, etc. This is the hardest version to handle since the first couple will willy-nilly apply the gc options. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HBASE-7091) support custom GC options in hbase-env.sh
[ https://issues.apache.org/jira/browse/HBASE-7091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13499200#comment-13499200 ] Lars Hofhansl commented on HBASE-7091: -- Do we *need* to distinguish between server and client? The client and server would typically not be the same machine, so having different GC settings in a single GC env variable seems reasonable. support custom GC options in hbase-env.sh - Key: HBASE-7091 URL: https://issues.apache.org/jira/browse/HBASE-7091 Project: HBase Issue Type: Bug Components: scripts Affects Versions: 0.94.4 Reporter: Jesse Yates Assignee: Jesse Yates Labels: newbie Fix For: 0.94.4 Attachments: hbase-7091-v1.patch When running things like bin/start-hbase and bin/hbase-daemon.sh start [master|regionserver|etc] we end up setting HBASE_OPTS property a couple times via calling hbase-env.sh. This is generally not a problem for most cases, but when you want to set your own GC log properties, one would think you should set HBASE_GC_OPTS, which get added to HBASE_OPTS. NOPE! That would make too much sense. Running bin/hbase-daemons.sh will run bin/hbase-daemon.sh with the daemons it needs to start. Each time through hbase-daemon.sh we also call bin/hbase. This isn't a big deal except for each call to hbase-daemon.sh, we also source hbase-env.sh twice (once in the script and once in bin/hbase). This is important for my next point. Note that to turn on GC logging, you uncomment: {code} # export HBASE_OPTS=$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps $HBASE_GC_OPTS {code} and then to log to a gc file for each server, you then uncomment: {code} # export HBASE_USE_GC_LOGFILE=true {code} in hbase-env.sh On the first pass through hbase-daemon.sh, HBASE_GC_OPTS isn't set, so HBASE_OPTS doesn't get anything funky, but we set HBASE_USE_GC_LOGFILE, which then sets HBASE_GC_OPTS to the log file (-Xloggc:...). Then in bin/hbase we again run hbase-env.sh, which now hs HBASE_GC_OPTS set, adding the GC file. This isn't a general problem because HBASE_OPTS is set without prefixing the existing HBASE_OPTS (eg. HBASE_OPTS=$HBASE_OPTS ...), allowing easy updating. However, GC OPTS don't work the same and this is really odd behavior when you want to set your own GC opts, which can include turning on GC log rolling (yes, yes, they really are jvm opts, but they ought to support their own param, to help minimize clutter). The simple version of this patch will just add an idempotent GC option to hbase-env.sh and some comments that uncommenting {code} # export HBASE_USE_GC_LOGFILE=true {code} will lead to a custom gc log file per server (along with an example name), so you don't need to set -Xloggc. The more complex solution does the above and also solves the multiple calls to hbase-env.sh so we can be sane about how all this works. Note that to fix this, hbase-daemon.sh just needs to read in HBASE_USE_GC_LOGFILE after sourcing hbase-env.sh and then update HBASE_OPTS. Oh and also not source hbase-env.sh in bin/hbase. Even further, we might want to consider adding options just for cases where we don't need gc logging - i.e. the shell, the config reading tool, hcbk, etc. This is the hardest version to handle since the first couple will willy-nilly apply the gc options. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HBASE-7091) support custom GC options in hbase-env.sh
[ https://issues.apache.org/jira/browse/HBASE-7091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13499203#comment-13499203 ] Jesse Yates commented on HBASE-7091: We don't need to, but I wouldn't be surprised if people commonly use the same config for both. This can can lead to a basically unusable shell (due to the way logging gets setup for the client), but the correct behavior for the server. support custom GC options in hbase-env.sh - Key: HBASE-7091 URL: https://issues.apache.org/jira/browse/HBASE-7091 Project: HBase Issue Type: Bug Components: scripts Affects Versions: 0.94.4 Reporter: Jesse Yates Assignee: Jesse Yates Labels: newbie Fix For: 0.94.4 Attachments: hbase-7091-v1.patch When running things like bin/start-hbase and bin/hbase-daemon.sh start [master|regionserver|etc] we end up setting HBASE_OPTS property a couple times via calling hbase-env.sh. This is generally not a problem for most cases, but when you want to set your own GC log properties, one would think you should set HBASE_GC_OPTS, which get added to HBASE_OPTS. NOPE! That would make too much sense. Running bin/hbase-daemons.sh will run bin/hbase-daemon.sh with the daemons it needs to start. Each time through hbase-daemon.sh we also call bin/hbase. This isn't a big deal except for each call to hbase-daemon.sh, we also source hbase-env.sh twice (once in the script and once in bin/hbase). This is important for my next point. Note that to turn on GC logging, you uncomment: {code} # export HBASE_OPTS=$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps $HBASE_GC_OPTS {code} and then to log to a gc file for each server, you then uncomment: {code} # export HBASE_USE_GC_LOGFILE=true {code} in hbase-env.sh On the first pass through hbase-daemon.sh, HBASE_GC_OPTS isn't set, so HBASE_OPTS doesn't get anything funky, but we set HBASE_USE_GC_LOGFILE, which then sets HBASE_GC_OPTS to the log file (-Xloggc:...). Then in bin/hbase we again run hbase-env.sh, which now hs HBASE_GC_OPTS set, adding the GC file. This isn't a general problem because HBASE_OPTS is set without prefixing the existing HBASE_OPTS (eg. HBASE_OPTS=$HBASE_OPTS ...), allowing easy updating. However, GC OPTS don't work the same and this is really odd behavior when you want to set your own GC opts, which can include turning on GC log rolling (yes, yes, they really are jvm opts, but they ought to support their own param, to help minimize clutter). The simple version of this patch will just add an idempotent GC option to hbase-env.sh and some comments that uncommenting {code} # export HBASE_USE_GC_LOGFILE=true {code} will lead to a custom gc log file per server (along with an example name), so you don't need to set -Xloggc. The more complex solution does the above and also solves the multiple calls to hbase-env.sh so we can be sane about how all this works. Note that to fix this, hbase-daemon.sh just needs to read in HBASE_USE_GC_LOGFILE after sourcing hbase-env.sh and then update HBASE_OPTS. Oh and also not source hbase-env.sh in bin/hbase. Even further, we might want to consider adding options just for cases where we don't need gc logging - i.e. the shell, the config reading tool, hcbk, etc. This is the hardest version to handle since the first couple will willy-nilly apply the gc options. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HBASE-7091) support custom GC options in hbase-env.sh
[ https://issues.apache.org/jira/browse/HBASE-7091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13499216#comment-13499216 ] Lars Hofhansl commented on HBASE-7091: -- Yeah probably fine. Just worried that it will lead to confusion. support custom GC options in hbase-env.sh - Key: HBASE-7091 URL: https://issues.apache.org/jira/browse/HBASE-7091 Project: HBase Issue Type: Bug Components: scripts Affects Versions: 0.94.4 Reporter: Jesse Yates Assignee: Jesse Yates Labels: newbie Fix For: 0.94.4 Attachments: hbase-7091-v1.patch When running things like bin/start-hbase and bin/hbase-daemon.sh start [master|regionserver|etc] we end up setting HBASE_OPTS property a couple times via calling hbase-env.sh. This is generally not a problem for most cases, but when you want to set your own GC log properties, one would think you should set HBASE_GC_OPTS, which get added to HBASE_OPTS. NOPE! That would make too much sense. Running bin/hbase-daemons.sh will run bin/hbase-daemon.sh with the daemons it needs to start. Each time through hbase-daemon.sh we also call bin/hbase. This isn't a big deal except for each call to hbase-daemon.sh, we also source hbase-env.sh twice (once in the script and once in bin/hbase). This is important for my next point. Note that to turn on GC logging, you uncomment: {code} # export HBASE_OPTS=$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps $HBASE_GC_OPTS {code} and then to log to a gc file for each server, you then uncomment: {code} # export HBASE_USE_GC_LOGFILE=true {code} in hbase-env.sh On the first pass through hbase-daemon.sh, HBASE_GC_OPTS isn't set, so HBASE_OPTS doesn't get anything funky, but we set HBASE_USE_GC_LOGFILE, which then sets HBASE_GC_OPTS to the log file (-Xloggc:...). Then in bin/hbase we again run hbase-env.sh, which now hs HBASE_GC_OPTS set, adding the GC file. This isn't a general problem because HBASE_OPTS is set without prefixing the existing HBASE_OPTS (eg. HBASE_OPTS=$HBASE_OPTS ...), allowing easy updating. However, GC OPTS don't work the same and this is really odd behavior when you want to set your own GC opts, which can include turning on GC log rolling (yes, yes, they really are jvm opts, but they ought to support their own param, to help minimize clutter). The simple version of this patch will just add an idempotent GC option to hbase-env.sh and some comments that uncommenting {code} # export HBASE_USE_GC_LOGFILE=true {code} will lead to a custom gc log file per server (along with an example name), so you don't need to set -Xloggc. The more complex solution does the above and also solves the multiple calls to hbase-env.sh so we can be sane about how all this works. Note that to fix this, hbase-daemon.sh just needs to read in HBASE_USE_GC_LOGFILE after sourcing hbase-env.sh and then update HBASE_OPTS. Oh and also not source hbase-env.sh in bin/hbase. Even further, we might want to consider adding options just for cases where we don't need gc logging - i.e. the shell, the config reading tool, hcbk, etc. This is the hardest version to handle since the first couple will willy-nilly apply the gc options. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HBASE-7091) support custom GC options in hbase-env.sh
[ https://issues.apache.org/jira/browse/HBASE-7091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13499218#comment-13499218 ] Lars Hofhansl commented on HBASE-7091: -- Rereading your description, yes we should separate them. support custom GC options in hbase-env.sh - Key: HBASE-7091 URL: https://issues.apache.org/jira/browse/HBASE-7091 Project: HBase Issue Type: Bug Components: scripts Affects Versions: 0.94.4 Reporter: Jesse Yates Assignee: Jesse Yates Labels: newbie Fix For: 0.94.4 Attachments: hbase-7091-v1.patch When running things like bin/start-hbase and bin/hbase-daemon.sh start [master|regionserver|etc] we end up setting HBASE_OPTS property a couple times via calling hbase-env.sh. This is generally not a problem for most cases, but when you want to set your own GC log properties, one would think you should set HBASE_GC_OPTS, which get added to HBASE_OPTS. NOPE! That would make too much sense. Running bin/hbase-daemons.sh will run bin/hbase-daemon.sh with the daemons it needs to start. Each time through hbase-daemon.sh we also call bin/hbase. This isn't a big deal except for each call to hbase-daemon.sh, we also source hbase-env.sh twice (once in the script and once in bin/hbase). This is important for my next point. Note that to turn on GC logging, you uncomment: {code} # export HBASE_OPTS=$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps $HBASE_GC_OPTS {code} and then to log to a gc file for each server, you then uncomment: {code} # export HBASE_USE_GC_LOGFILE=true {code} in hbase-env.sh On the first pass through hbase-daemon.sh, HBASE_GC_OPTS isn't set, so HBASE_OPTS doesn't get anything funky, but we set HBASE_USE_GC_LOGFILE, which then sets HBASE_GC_OPTS to the log file (-Xloggc:...). Then in bin/hbase we again run hbase-env.sh, which now hs HBASE_GC_OPTS set, adding the GC file. This isn't a general problem because HBASE_OPTS is set without prefixing the existing HBASE_OPTS (eg. HBASE_OPTS=$HBASE_OPTS ...), allowing easy updating. However, GC OPTS don't work the same and this is really odd behavior when you want to set your own GC opts, which can include turning on GC log rolling (yes, yes, they really are jvm opts, but they ought to support their own param, to help minimize clutter). The simple version of this patch will just add an idempotent GC option to hbase-env.sh and some comments that uncommenting {code} # export HBASE_USE_GC_LOGFILE=true {code} will lead to a custom gc log file per server (along with an example name), so you don't need to set -Xloggc. The more complex solution does the above and also solves the multiple calls to hbase-env.sh so we can be sane about how all this works. Note that to fix this, hbase-daemon.sh just needs to read in HBASE_USE_GC_LOGFILE after sourcing hbase-env.sh and then update HBASE_OPTS. Oh and also not source hbase-env.sh in bin/hbase. Even further, we might want to consider adding options just for cases where we don't need gc logging - i.e. the shell, the config reading tool, hcbk, etc. This is the hardest version to handle since the first couple will willy-nilly apply the gc options. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HBASE-7091) support custom GC options in hbase-env.sh
[ https://issues.apache.org/jira/browse/HBASE-7091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13499220#comment-13499220 ] Lars Hofhansl commented on HBASE-7091: -- BTW, you can just do: {code} for cmd in shell hbck hlog hfile zkcli; do ... {code} support custom GC options in hbase-env.sh - Key: HBASE-7091 URL: https://issues.apache.org/jira/browse/HBASE-7091 Project: HBase Issue Type: Bug Components: scripts Affects Versions: 0.94.4 Reporter: Jesse Yates Assignee: Jesse Yates Labels: newbie Fix For: 0.94.4 Attachments: hbase-7091-v1.patch When running things like bin/start-hbase and bin/hbase-daemon.sh start [master|regionserver|etc] we end up setting HBASE_OPTS property a couple times via calling hbase-env.sh. This is generally not a problem for most cases, but when you want to set your own GC log properties, one would think you should set HBASE_GC_OPTS, which get added to HBASE_OPTS. NOPE! That would make too much sense. Running bin/hbase-daemons.sh will run bin/hbase-daemon.sh with the daemons it needs to start. Each time through hbase-daemon.sh we also call bin/hbase. This isn't a big deal except for each call to hbase-daemon.sh, we also source hbase-env.sh twice (once in the script and once in bin/hbase). This is important for my next point. Note that to turn on GC logging, you uncomment: {code} # export HBASE_OPTS=$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps $HBASE_GC_OPTS {code} and then to log to a gc file for each server, you then uncomment: {code} # export HBASE_USE_GC_LOGFILE=true {code} in hbase-env.sh On the first pass through hbase-daemon.sh, HBASE_GC_OPTS isn't set, so HBASE_OPTS doesn't get anything funky, but we set HBASE_USE_GC_LOGFILE, which then sets HBASE_GC_OPTS to the log file (-Xloggc:...). Then in bin/hbase we again run hbase-env.sh, which now hs HBASE_GC_OPTS set, adding the GC file. This isn't a general problem because HBASE_OPTS is set without prefixing the existing HBASE_OPTS (eg. HBASE_OPTS=$HBASE_OPTS ...), allowing easy updating. However, GC OPTS don't work the same and this is really odd behavior when you want to set your own GC opts, which can include turning on GC log rolling (yes, yes, they really are jvm opts, but they ought to support their own param, to help minimize clutter). The simple version of this patch will just add an idempotent GC option to hbase-env.sh and some comments that uncommenting {code} # export HBASE_USE_GC_LOGFILE=true {code} will lead to a custom gc log file per server (along with an example name), so you don't need to set -Xloggc. The more complex solution does the above and also solves the multiple calls to hbase-env.sh so we can be sane about how all this works. Note that to fix this, hbase-daemon.sh just needs to read in HBASE_USE_GC_LOGFILE after sourcing hbase-env.sh and then update HBASE_OPTS. Oh and also not source hbase-env.sh in bin/hbase. Even further, we might want to consider adding options just for cases where we don't need gc logging - i.e. the shell, the config reading tool, hcbk, etc. This is the hardest version to handle since the first couple will willy-nilly apply the gc options. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HBASE-7091) support custom GC options in hbase-env.sh
[ https://issues.apache.org/jira/browse/HBASE-7091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13499225#comment-13499225 ] Jesse Yates commented on HBASE-7091: yeah, I could. I thought using the array would be cleaner, as its more obvious (at least to me) where I might go to update these things. Happy to switch it. support custom GC options in hbase-env.sh - Key: HBASE-7091 URL: https://issues.apache.org/jira/browse/HBASE-7091 Project: HBase Issue Type: Bug Components: scripts Affects Versions: 0.94.4 Reporter: Jesse Yates Assignee: Jesse Yates Labels: newbie Fix For: 0.94.4 Attachments: hbase-7091-v1.patch When running things like bin/start-hbase and bin/hbase-daemon.sh start [master|regionserver|etc] we end up setting HBASE_OPTS property a couple times via calling hbase-env.sh. This is generally not a problem for most cases, but when you want to set your own GC log properties, one would think you should set HBASE_GC_OPTS, which get added to HBASE_OPTS. NOPE! That would make too much sense. Running bin/hbase-daemons.sh will run bin/hbase-daemon.sh with the daemons it needs to start. Each time through hbase-daemon.sh we also call bin/hbase. This isn't a big deal except for each call to hbase-daemon.sh, we also source hbase-env.sh twice (once in the script and once in bin/hbase). This is important for my next point. Note that to turn on GC logging, you uncomment: {code} # export HBASE_OPTS=$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps $HBASE_GC_OPTS {code} and then to log to a gc file for each server, you then uncomment: {code} # export HBASE_USE_GC_LOGFILE=true {code} in hbase-env.sh On the first pass through hbase-daemon.sh, HBASE_GC_OPTS isn't set, so HBASE_OPTS doesn't get anything funky, but we set HBASE_USE_GC_LOGFILE, which then sets HBASE_GC_OPTS to the log file (-Xloggc:...). Then in bin/hbase we again run hbase-env.sh, which now hs HBASE_GC_OPTS set, adding the GC file. This isn't a general problem because HBASE_OPTS is set without prefixing the existing HBASE_OPTS (eg. HBASE_OPTS=$HBASE_OPTS ...), allowing easy updating. However, GC OPTS don't work the same and this is really odd behavior when you want to set your own GC opts, which can include turning on GC log rolling (yes, yes, they really are jvm opts, but they ought to support their own param, to help minimize clutter). The simple version of this patch will just add an idempotent GC option to hbase-env.sh and some comments that uncommenting {code} # export HBASE_USE_GC_LOGFILE=true {code} will lead to a custom gc log file per server (along with an example name), so you don't need to set -Xloggc. The more complex solution does the above and also solves the multiple calls to hbase-env.sh so we can be sane about how all this works. Note that to fix this, hbase-daemon.sh just needs to read in HBASE_USE_GC_LOGFILE after sourcing hbase-env.sh and then update HBASE_OPTS. Oh and also not source hbase-env.sh in bin/hbase. Even further, we might want to consider adding options just for cases where we don't need gc logging - i.e. the shell, the config reading tool, hcbk, etc. This is the hardest version to handle since the first couple will willy-nilly apply the gc options. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira