2017-02-02 11 views
1

Cloudera Manager 5를 사용하여 Oozie HA를 사용하려고합니다.이 프로세스는 매우 간단합니다. 내가해야하는 일은 구성된로드 밸런서에 대한 호스트 이름 : 포트를 제공하고 Cloudera Manager가 추가 Oozie Server를 생성하는 것입니다. 호스트 XXX.XXX.XXX.246에 이미 Oozie Server가 하나 있고 Oozie Server가 호스트 XXX.XXX.XXX.247에 있어야합니다. HAProxy는 호스트 XXX.XXX.XXX.248에 구성되어야합니다. 로드 밸런서의 호스트 이름 : 포트에서 XXX.XXX.XXX.248 : 11000을 선택했습니다. haproxy.cfg 파일 : HAProxy 부하 분산 장치가있는 Oozie HA 구성

timeout connect   10s 
timeout client   1m 
timeout server   1m 
timeout http-keep-alive 10s 
timeout check   10s 
maxconn     3000 

frontend main *:80 

    acl url_static  path_beg  -i /static /images /javascript  /stylesheets 
acl url_static  path_end  -i .jpg .gif .png .css .js 

use_backend static   if url_static 
default_backend    app 

backend static 
balance  roundrobin 
server  static 127.0.0.1:4331 check 

backend app 
balance  roundrobin 
mode http 
stats enable 
stats uri /haproxy?stats 
option httpclose 
option forwardfor 
server oozie1 XXX.XXX.XXX.246:80 check 
server oozie2 XXX.XXX.XXX.247:80 check 

내가 Oozie 서버를 시작하려고

, 나는 다음과 같은 예외 얻을 :

java.lang.NoSuchFieldError: EXTERNAL_PROPERTY 
at org.codehaus.jackson.map.introspect.JacksonAnnotationIntrospector._findTypeResolver(JacksonAnnotationIntrospector.java:777) 
at org.codehaus.jackson.map.introspect.JacksonAnnotationIntrospector.findPropertyTypeResolver(JacksonAnnotationIntrospector.java:214) 
at org.codehaus.jackson.map.ser.BeanSerializerFactory.findPropertyTypeSerializer(BeanSerializerFactory.java:370) 
at org.codehaus.jackson.map.ser.BeanSerializerFactory._constructWriter(BeanSerializerFactory.java:772) 
at org.codehaus.jackson.map.ser.BeanSerializerFactory.findBeanProperties(BeanSerializerFactory.java:586) 
at org.codehaus.jackson.map.ser.BeanSerializerFactory.constructBeanSerializer(BeanSerializerFactory.java:430) 
at org.codehaus.jackson.map.ser.BeanSerializerFactory.findBeanSerializer(BeanSerializerFactory.java:343) 
at org.codehaus.jackson.map.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:287) 
at org.codehaus.jackson.map.ser.StdSerializerProvider._createUntypedSerializer(StdSerializerProvider.java:782) 
at org.codehaus.jackson.map.ser.StdSerializerProvider._createAndCacheUntypedSerializer(StdSerializerProvider.java:735) 
at org.codehaus.jackson.map.ser.StdSerializerProvider.findValueSerializer(StdSerializerProvider.java:344) 
at org.codehaus.jackson.map.ser.StdSerializerProvider.findTypedValueSerializer(StdSerializerProvider.java:420) 
at org.codehaus.jackson.map.ser.StdSerializerProvider._serializeValue(StdSerializerProvider.java:601) 
at org.codehaus.jackson.map.ser.StdSerializerProvider.serializeValue(StdSerializerProvider.java:256) 
at org.codehaus.jackson.map.ObjectMapper._configAndWriteValue(ObjectMapper.java:2566) 
at org.codehaus.jackson.map.ObjectMapper.writeValue(ObjectMapper.java:2056) 
at org.apache.oozie.util.FixedJsonInstanceSerializer.serialize(FixedJsonInstanceSerializer.java:65) 
at org.apache.curator.x.discovery.details.ServiceDiscoveryImpl.internalRegisterService(ServiceDiscoveryImpl.java:201) 
at org.apache.curator.x.discovery.details.ServiceDiscoveryImpl.registerService(ServiceDiscoveryImpl.java:186) 
at org.apache.oozie.util.ZKUtils.advertiseService(ZKUtils.java:217) 
at org.apache.oozie.util.ZKUtils.<init>(ZKUtils.java:141) 
at org.apache.oozie.util.ZKUtils.register(ZKUtils.java:154) 
at org.apache.oozie.service.ZKLocksService.init(ZKLocksService.java:70) 
at org.apache.oozie.service.Services.setServiceInternal(Services.java:386) 
at org.apache.oozie.service.Services.setService(Services.java:372) 
at org.apache.oozie.service.Services.loadServices(Services.java:305) 
at org.apache.oozie.service.Services.init(Services.java:213) 
at org.apache.oozie.servlet.ServicesLoader.contextInitialized(ServicesLoader.java:46) 
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4210) 
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4709) 
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:802) 
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779) 
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:583) 
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:944) 
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:779) 
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:505) 
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1322) 
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:325) 
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142) 
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1068) 
at org.apache.catalina.core.StandardHost.start(StandardHost.java:822) 
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1060) 
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 
at org.apache.catalina.core.StandardService.start(StandardService.java:525) 
at org.apache.catalina.core.StandardServer.start(StandardServer.java:759) 
at org.apache.catalina.startup.Catalina.start(Catalina.java:595) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 

을 내가 잘못되는 구성의 일부가 확실하지 않다 어떤 문제가 발생 . 나는 어떤 도움을 주셔서 감사합니다. 감사!

답변

0

그냥 업데이트하고 싶습니다. 문제는 CDH 5.x에서 흔히 발생하는 버그가 아닙니다. Oozie 및 Hive에서 사용하는 Jackson 버전과의 비 호환성으로 인해 Joz 파일이 Oozie 클래스 경로에로드되는 순서에 따라 Oozie는 앞서 언급 한 예외없이 시작할 수 없습니다. 당신이 소포를 사용하는 경우 솔루션, 않습니다 :

  1. 삭제하거나 /opt/cloudera/parcels/CDH/lib/oozie/libserver/hive-exec.jar 및/옵션/클라우 데라/소포를 이동/CDH/lib/oozie/libtools/hive-exec.jar.
  2. Cloudera 저장소에서 hive-exec-core.jar을 다운로드하여/opt/cloudera/parcels/CDH/lib/oozie/libserver/및/opt/cloudera/parcels/CDH/lib/oozie/libtools에 저장하십시오. /.
  3. maven 레포에서 kryo-2.22.jar를 다운로드하여/opt/cloudera/parcels/CDH/lib/oozie/libserver/및/opt/cloudera/parcels/CDH/lib/oozie/libtools /에 저장하십시오.

haproxy 구성과 Oozie HA 사용이 이제는 간단해야합니다.