-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for Phoenix 4.5.2 #65
Conversation
Hey Brian, skimming through your patch, it looks good at a high level. I need to sit down and learn a bit more about Phoenix so I can understand the details of what you've scripted. But in the mean time, a few higher level comments and patch splits I'd like to see.
|
errr Spark 1.3.1 should be in the master very soon ... it's in master now |
Not sure how much it matters, but I was using the spark version with hadoop 2.6 rather than 2.4. I'll test it out and see what happens. |
Cool. As I've added more versions of software support there are clear version combinations that work / not work. I'm going to add a documentation chunk on that semi-soon. We can add your combinations info to that too. |
5a9ec7d
to
ce51630
Compare
Works with 2.4 so I stuck with that. I think I covered everything you mentioned. |
ce51630
to
c2a2d60
Compare
Beginning to look through this. It appears you accidentally added the temporary "substitution" files that are generated by the Makefile into this patch. e.g. magpie-magpie-customizations-substitution |
echo "* Phoenix Information" | ||
echo "*" | ||
echo "* To access phoenix directly, you'll want to:" | ||
echo "* ${magpieremotecmd} ${HBASE_MASTER_NODE}" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this should be tweaked for changes in master
Tried to do a run and hit some issues. What java version are you using and what hadoop version / hbase version? |
I'll fix those issues up that were mentioned. Hadoop is 2.7.1 and jdk1.7.0_17. What were the issues you ran into? I might have seen them already. |
0328108
to
b677855
Compare
Hit this when the performance run begins. Normally means you need java 1.7.
|
Which version were you using? I guess I never saw that since I'm using 1.7 |
Using 1.7 as well /usr/lib/jvm/jre-1.7.0-oracle.x86_64/. You didn't recompile Phoenix or anything? I'm trying the binary I directly downloaded for Hbase 1.1. |
I used the following from apache: phoenix/phoenix-4.5.2-HBase-1.1/bin/phoenix-4.5.2-HBase-1.1-bin.tar.gz |
I'm going to retry the test all quick as well. |
Ahhh, I think I know what it is. Phoenix's script isn't honoring JAVA_HOME. It's picking up whatever is in its path. |
Weird, queryserver looks for JAVA_HOME but that doesn't run during the performance. |
I can change the command to something like this: |
b677855
to
bcf94c6
Compare
We can do that or something similar as a temporary hack. I went ahead and created a ticket upstream for Phoenix. https://issues.apache.org/jira/browse/PHOENIX-2303 |
I pushed it and 'think' it should work. Also sent you a quick patch for Phoenix. |
Didn't work for me
I think you'd have to export PATH to make it work. Would it be better/easier if we patched Phoenix 4.5.2 instead? This may not be the only issue in the phoenix scripts. |
sure let me add the patch instead |
bcf94c6
to
19937a0
Compare
I think I got everything now. |
e6d3537
to
f571edd
Compare
then | ||
echo "Zookeeper must be enabled for Hbase" | ||
exit 1 | ||
fi |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this isn't necessary b/c it's checked w/n hbase right? And we already checked for hbase_setup == yes?
There is a subtlety in magpie-run that I may be missing w/ Phoenix. Why is queryserver.py only started/stopped when PHOENIX_MODE = server. Doesn't Phoenix need the queryserver all the time? Or is it only needed on certain types of jobs? I'm only confused b/c this is a unique setup of Phoenix compared to the other things Magpie supports. So I bet there's something I'm missing. Other than that, just a few more notes. We're getting close :-) |
So in regards to the server mode. You can run psql or sqlline which don't require the queryserver to run. I believe the queryserver is used more when you are running something like spark or with the jdbc where you would use zookeepers quorum. (I'm still not an expert on phoenix yet : P) My thought was that if you were going to be in interactive mode for Phoenix you would be using psql.py or sqlline.py thus you wouldn't need the queryserver. But if you were running a spark job you would set Phoenix to server mode since you would want to interact with the queryserver. |
0d6168d
to
ee5148a
Compare
Just wanted to add some more info to my previous message: Think of phoenix as a light weight layer on top of hbase. Similar in a way to how pig acts. |
Ok, that makes sense. If the assumptions are wrong in the future, it'll just take a tweak to fix. |
|
||
You'll likely want to start with the base script | ||
(e.g. magpie.sbatch-srun) for your scheduler/resource manager. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't this be magpie.sbatch-srun-hbaes-with-hdfs-with-phoenix? This is what I had for hadoop
You'll likely want to start with the base hadoop script
(e.g. magpie.sbatch-srun-hadoop) for your scheduler/resource
manager. If you wish to configure more, you can choose to start
with the base script (e.g. magpie.sbatch-srun) which contains all
configuration options.
ee5148a
to
018f896
Compare
# Phoenix's test relies on HBASE_CONF_DIR being set so make sure its from a region server | ||
regionserver=$(cat $HBASE_CONF_DIR/regionservers | head -n 1) | ||
export HBASE_CONF_DIR=$(echo ${PHOENIX_CONF_DIR} | sed "s/$(hostname)/$regionserver/g") | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm a little confused what's going on here. Why would HBASE_CONF_DIR have to be modified?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Internally Phoenix only looks for HBASE_CONF_DIR. (Prior comment explains more)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This has been corrected and now works as you would expect.
018f896
to
dd89a95
Compare
I revamped a good portion of that code and I think if follows the other modules more closely now. |
if [ "$1X" == "X" ] | ||
then | ||
echo "User must specify path to Phoenix config as first argument" | ||
exit 1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this error message isn't consistent to comments above
69ef5c1
to
35a4698
Compare
Those should be good now |
Note: If you want to use spark with phoenix, use version 1.3.1-bin-hadoop2.4
LGTM |
Note: If you want to use spark with phoenix, use version 1.3.1-bin-hadoop2.6