Hue(五)集成Zookeeper

1. 配置zookeeper


将zookeeper集成到Hue是希望通过Hue的Web界面来查看和操作zookeeper中的znode,这需要zookeeper开启Rest service。
虽然我的zookeeper集群已经安装好了(使用的tar包安装),但是仍然无法直接使用Rest service,因为其中一些依赖包并没有直接集成到安装包中,所以需要我们手动来进行一些操作。


1.1 编译


进入【ZOOKEEPER_HOME】目录下执行编译

$ ant

Hue(五)集成Zookeeper_第1张图片

Hue(五)集成Zookeeper_第2张图片


1.2 拷贝jar包


【ZOOKEEPER_HOME/build/contrib/rest/】目录下的zookeeper-dev-rest.jar拷贝到【ZOOKEEPER_HOME/build/contrib/rest/lib】目录下:

$ cp build/contrib/rest/zookeeper-dev-rest.jar src/contrib/rest/lib/


【ZOOKEEPER_HOME/build/contrib/rest/lib/】目录下的所有jar包拷贝到【ZOOKEEPER_HOME/build/contrib/rest/lib】目录下

$ cp build/contrib/rest/lib/*.jar src/contrib/rest/lib/


【ZOOKEEPER_HOME】目录下的zookeeper-3.4.5-cdh5.2.0.jar拷贝到【ZOOKEEPER_HOME/build/contrib/rest/lib】目录下

$ cp zookeeper-3.4.5-cdh5.2.0.jar src/contrib/rest/lib/


【ZOOKEEPER_HOME/src/java/lib】目录下的所有jar包拷贝到【ZOOKEEPER_HOME/build/contrib/rest/lib】目录下

$ cp src/java/lib/*.jar src/contrib/rest/lib/


1.3 启动Rest service


进入【ZOOKEEPER_HOME/src/contrib/rest】目录下启动Rest service

$ ./rest.sh start

Hue(五)集成Zookeeper_第3张图片


官网是用ant run来启动rest service的,但是太麻烦,并且已经有了脚本,只需要将一些jar包引入进来就行了。具体寻找的jar包过程是这样的,ant run是在【ZOOKEEPER_HOME/src/contrib/rest/】目录下执行的,所以查询该目录下的build.xml文件。

Hue(五)集成Zookeeper_第4张图片


其中${build.dir}这个变量的值不在该build.xml中,往上找发现build.xml引入了上一层目录的build-contrib.xml文件

这里写图片描述


去上一层目录找build-contrib.xml文件

这里写图片描述


至此所有需要的jar包就知道了

【ZOOKEEPER_HOME/build/contrib/rest/】目录下的zookeeper-dev-rest.jar;
【ZOOKEEPER_HOME/build/contrib/rest/lib】目录下的所有jar包;
【ZOOKEEPER_HOME/build】目录下的zookeeper-*.jar(我拷贝的是【ZOOKEEPER_HOME】目录下的zookeeper-3.4.5-cdh5.2.0.jar);
【ZOOKEEPER_HOME/src/java/lib】目录下的所有jar包;


关闭命令为

$ ./rest.sh stop

Hue(五)集成Zookeeper_第5张图片


使用如下命令查看日志输出

$ tail -f zkrest.log

Hue(五)集成Zookeeper_第6张图片


使用JPS查看Java进程

$ jps

Hue(五)集成Zookeeper_第7张图片


通过浏览器访问http://localhost:9998/application.wadl

Hue(五)集成Zookeeper_第8张图片

高能预警:如果是在部署zookeeper服务之外机器的浏览器上访问请将localhost缓存主机名或者ip地址,我的是部署在主机名为hadoop-main.dimensoft.com.cn的机器上。


1.4 启动zookeeper


进入【ZOOKEEPER_HOME/bin】目录下启动zookeeper(将zookeeper集群所有节点都启动)。

$ zkServer.sh start

这里写图片描述


2. 配置Hue


修改【HUE_HOME/desktop/conf/】目录下的hue.ini文件中[zookeeper].[[clusters]].[[[default]]]中zookeeper的host_ports值和rest_url

# Zookeeper ensemble. Comma separated list of Host/Port.
# e.g. localhost:2181,localhost:2182,localhost:2183
## host_ports=localhost:2181
host_ports=hadoop-main.dimensoft.com.cn:2181,hadoop-slave1.dimensoft.com.cn:2181,hadoop-slave2.dimensoft.com.cn:2181
# The URL of the REST contrib service (required for znode browsing)
rest_url=http://hadoop-main.dimensoft.com.cn:9998,http://hadoop-slave1.dimensoft.com.cn:9998,http://hadoop-slave2.dimensoft.com.cn:9998


3. 启动Hue


进入【HUE_HOME】下启动Hue

$ build/env/bin/supervisor

这里写图片描述


访问Hue的Web 界面http://hadoop-main.dimensoft.com.cn:8888/

Hue(五)集成Zookeeper_第9张图片

Hue(五)集成Zookeeper_第10张图片

Hue(五)集成Zookeeper_第11张图片

Hue(五)集成Zookeeper_第12张图片

功能预警:这里发现一个问题,当任何一个zookeeper节点挂掉之后Hue的zookeeper界面就无法访问了,目前还没有解决(所有zookeeper节点都启动了REST service)。

你可能感兴趣的:(Hue)