Tuesday, May 12, 2015

case of a failed Ambari agent install, error "/var/tmp/rpm-tmp.vEw9Wk: line 31: /var/lib/ambari-agent/install-helper.sh: Permission denied"

I was struggling with an issue installing Ambari agent on a few servers. These servers were not any different than any other servers except that they were running master services. When I would try to install an agent I'd get "/var/tmp/rpm-tmp.vEw9Wk: line 31: /var/lib/ambari-agent/install-helper.sh: Permission denied". It would still install but some libraries missing. If I'd try to start an agent I'd get "/usr/sbin/ambari-agent: line 59: /var/lib/ambari-agent/ambari-sudo.sh: Permission denied ". My sleuthing led to me discover that /usr/lib/python2.6/site-packages/ambari_agent did not have enough files as other servers, python script would throw "ImportError: No module named ambari_commons.exceptions". So I copied the library from a different server, yada yada. I failed miserably at everything I tried, it was not a file permissions or SELinux issue. Then I worked with a Hortonworks engineer who realized that within /var/lib/ambari-agent directory, he can't even tab complete. So he looked at /etc/fstab and what we realized is that /var was mounted with noexec. As soon as the noexec switch was removed, ambari-agent reinstalled and restarted successfully.

Monday, May 11, 2015

FizzBuzz problem and solution

I was listening to the first episode of Java Off Heap podcast over the weekend and discovered something shocking. Apparently a large number of programming job applicants can't write a simple FizzBuzz problem. The comment thread for the post is pretty funny and contains numerous solutions in many different languages. I'm posting mine in Java on my Github page. You can read the original post here.

awesome plugin for Netbeans

Just came across a cool plugin for my toolbox. Basically, Eclipse recommenders plugin shows the most used methods for the objects you're using. It shows a percentage of users using a specific method over any other method available in API. All to improve your code. Picture is worth a thousand words so just look below. Found it through here.