小编CTD*_*Dex的帖子

在Kafka消息中添加自定义标头

我通过使用kafka生成器将文件转换为字节数组来发送文件作为消息.

我还需要为消息添加一些标题,例如文件名,时间戳等,因此在消费者端我可以根据文件名和其他标题处理消息.

我目前正在做的是创建一个对象并将原始消息和标头包装在其中,并将字节数组中的对象作为消息发送.

我想知道是否有一种方法可以在发布消息时添加自定义标头?

apache-kafka

8
推荐指数
3
解决办法
2万
查看次数

在oozie Java Action中传递HBase凭据

我需要安排一个与安全的hbase交互的oozie Java操作,所以我需要为Java操作提供hbase凭据.我使用的是安全的hortonworks 2.2环境,我的工作流XML如下所示

<workflow-app xmlns="uri:oozie:workflow:0.4" name="solr-wf">
    <credentials>
         <credential name="hbase" type="hbase">
         </credential>
      </credentials>

    <start to="java-node"/>
    <action name="java-node" cred="hbase">
        <java>  
             <job-tracker>${jobTracker}</job-tracker>
             <name-node>${nameNode}</name-node>
             <main-class>com.test.hbase.TestHBaseSecure</main-class>
            <arg>${arg1}</arg>
        </java>
        <ok to="end"/>
        <error to="fail"/>
    </action>
    <kill name="fail">
        <message>Java failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
    </kill>
    <end name="end"/>
</workflow-app>
Run Code Online (Sandbox Code Playgroud)

我还修改了oozie属性以包含HbaseCredentials类

oozie.credentials.credentialclasses=hcat=org.apache.oozie.action.hadoop.HCatCredentials,hbase=org.apache.oozie.action.hadoop.HbaseCredentials
Run Code Online (Sandbox Code Playgroud)

但我无法运行它抛出错误的工作,下面是堆栈跟踪

java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration
    at org.apache.oozie.action.hadoop.HbaseCredentials.copyHbaseConfToJobConf(HbaseCredentials.java:60)
    at org.apache.oozie.action.hadoop.HbaseCredentials.addtoJobConf(HbaseCredentials.java:49)
    at org.apache.oozie.action.hadoop.JavaActionExecutor.setCredentialTokens(JavaActionExecutor.java:1054)
    at org.apache.oozie.action.hadoop.JavaActionExecutor.submitLauncher(JavaActionExecutor.java:913)
    at org.apache.oozie.action.hadoop.JavaActionExecutor.start(JavaActionExecutor.java:1135)
    at org.apache.oozie.command.wf.ActionStartXCommand.execute(ActionStartXCommand.java:228)
    at org.apache.oozie.command.wf.ActionStartXCommand.execute(ActionStartXCommand.java:63)
    at org.apache.oozie.command.XCommand.call(XCommand.java:281)
    at org.apache.oozie.service.CallableQueueService$CompositeCallable.call(CallableQueueService.java:323)
    at org.apache.oozie.service.CallableQueueService$CompositeCallable.call(CallableQueueService.java:252)
    at org.apache.oozie.service.CallableQueueService$CallableWrapper.run(CallableQueueService.java:174)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)

其他工作运行良好,只有hbase交互失败的工作.我已经在我的lib目录中包含了所有的hbase jar,我无法弄清楚这个问题.

更新的workflow.xml:

<workflow-app xmlns="uri:oozie:workflow:0.4" name="${appName}">
<credentials>
        <credential name="hbase-cred" …
Run Code Online (Sandbox Code Playgroud)

hadoop hbase kerberos oozie hortonworks-data-platform

2
推荐指数
1
解决办法
1917
查看次数

无法连接到GoogleFit

我正在尝试连接到Googlefit但我收到一个奇怪的错误代码,如下所示

E/GooglePlayServicesUtil:意外的错误代码5005

有没有人对此有所了解.谢谢提前

google-play-services google-fit-sdk google-fit

1
推荐指数
1
解决办法
2526
查看次数