Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
perl-Kafka::Producer,“Producer”;卡夫卡::例外::制作人“&引用;代码"-1000,”;讯息「&引用;无效参数_Perl_Apache Kafka - Fatal编程技术网

perl-Kafka::Producer,“Producer”;卡夫卡::例外::制作人“&引用;代码"-1000,”;讯息「&引用;无效参数

perl-Kafka::Producer,“Producer”;卡夫卡::例外::制作人“&引用;代码"-1000,”;讯息「&引用;无效参数,perl,apache-kafka,Perl,Apache Kafka,我使用kafka perl api编写了kafka producer,但在传递用于发送消息的变量时出错,而如果对消息数据进行硬编码,则不会出现任何错误 Perl程序,其中我添加了kafka生产者代码: try { $kafka_connection = Kafka::Connection->new( host => $hadoop_server, port => '6667' ); $producer = Kafka::Producer->new( Con

我使用kafka perl api编写了kafka producer,但在传递用于发送消息的变量时出错,而如果对消息数据进行硬编码,则不会出现任何错误

Perl程序,其中我添加了kafka生产者代码:

try {
    $kafka_connection = Kafka::Connection->new( host => $hadoop_server, port => '6667' );
    $producer = Kafka::Producer->new( Connection => $kafka_connection );
    my $topic = 'test1';
    my $partition = 0;
    my $message = $hadoop_str;
    my $response = $producer->send(
        $topic,             # topic
        $partition,                  # partition
        #"56b4b2b23c24c3608376d1ea,/obj/i386/ui/lib/access/daemon_map.So.gcda,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0"         # message
        $hadoop_str
        #"t1,f9,1,1,1"
    );
} catch {
    my $error = $_;
    if ( blessed( $error ) && $error->isa( 'Kafka::Exception' ) ) {
        warn 'Error: (', $error->code, ') ',  $error->message, "\n";
        exit;
    } else {
        die $error;
    }
};
#                CCLib::run_system_cmd( $cmd );
}
错误日志:

-bash-3.2$ ./stream_binary_hadoop.pl
print (...) interpreted as function at ./stream_binary_hadoop.pl line 429.
<UNKNOWN> <UNKNOWN> Invalid argument: message = 56b4b2b23c24c3608376d1ea,/obj/i386/junos/usr.sbin/lmpd/lmpd_repl_msg_idr.gcda,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 at /opt/adp/projects/code_coverage/perl//5.10/lib/site_perl/5.10.1/Exception/Class/Base.pm line 85.
Exception::Class::Base::throw("Kafka::Exception::Producer", "code", -1000, "message", "Invalid argument: message = 56b4b2b23c24c3608376d1ea,/obj/i38"...) called at /opt/adp/projects/code_coverage/perl//5.10/lib/site_perl/5.10.1/Kafka/Producer.pm line 374
Kafka::Producer::_error(Kafka::Producer=HASH(0x36955f8), -1000, "message = 56b4b2b23c24c3608376d1ea,/obj/i386/junos/usr.sbin/l"...) called at /opt/adp/projects/code_coverage/perl//5.10/lib/site_perl/5.10.1/Kafka/Producer.pm line 331
Kafka::Producer::send(Kafka::Producer=HASH(0x36955f8), "test1", 0, "56b4b2b23c24c3608376d1ea,/obj/i386/junos/usr.sbin/lmpd/lmpd_r"...) called at ./stream_binary_hadoop.pl line 175
main::try {...} () called at /opt/adp/projects/code_coverage/perl//5.10/lib/site_perl/5.10.1/Try/Tiny.pm line 81
eval {...} called at /opt/adp/projects/code_coverage/perl//5.10/lib/site_perl/5.10.1/Try/Tiny.pm line 72
Try::Tiny::try(CODE(0x3692888), Try::Tiny::Catch=REF(0x3692c78)) called at ./stream_binary_hadoop.pl line 190
main::stream(HASH(0x3692708)) called at ./stream_binary_hadoop.pl line 354
main::file_split(HASH(0x36927b0)) called at ./stream_binary_hadoop.pl line 413

at ./stream_binary_hadoop.pl line 188.
   main::catch {...} ("<UNKNOWN> Invalid argument: message = 56b4b2b23c24c3608376d1e"...) called at /opt/adp/projects/code_coverage/perl//5.10/lib/site_perl/5.10.1/Try/Tiny.pm line 104
   Try::Tiny::try(CODE(0x3692888), Try::Tiny::Catch=REF(0x3692c78)) called at ./stream_binary_hadoop.pl line 190
   main::stream(HASH(0x3692708)) called at ./stream_binary_hadoop.pl line 354
   main::file_split(HASH(0x36927b0)) called at ./stream_binary_hadoop.pl line 413
-bash-3.2$./stream\u binary\u hadoop.pl
print(…)在./stream_binary_hadoop.pl第429行被解释为函数。
无效参数:message=56b4b2b23c24c3608376d1ea,/obj/i386/junos/usr.sbin/lmpd/lmpd_repl_msg_idr.gcda,0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0在/opt/adp/projects/code_coverage/perl//5.10/lib/site_perl/5.10.1/Exception/Class/Base.pm第85行。
在/opt/adp/projects/code\u coverage/perl//5.10/lib/site\u perl/5.10.1/Kafka/Producer.pm第374行调用异常::类::基::抛出(“Kafka::异常::生产者”,“代码”,-1000,“消息”,“无效参数:message=56b4b2b2b23c24c608376d1ea,/obj/i38…”)
Kafka::Producer::(Kafka::Producer=HASH(0x36955f8),-1000,“message=56b4b2b23c24c3608376d1ea,/obj/i386/junos/usr.sbin/l…”调用/opt/adp/projects/code_coverage/perl//5.10/lib/site_perl/5.10.1/Kafka/Producer.pment.331行
Kafka::Producer::send(Kafka::Producer=HASH(0x36955f8),“test1”,0,“56b4b2b23c24c368376d1ea,/obj/i386/junos/usr.sbin/lmpd/lmpd_r…”调用于./stream_binary_hadoop.pl行175
main::try{…}()在/opt/adp/projects/code_coverage/perl//5.10/lib/site_perl/5.10.1/try/Tiny.pm第81行调用
eval{…}在/opt/adp/projects/code_coverage/perl//5.10/lib/site_perl/5.10.1/Try/Tiny.pm第72行调用
Try::Tiny::Try(代码(0x3692888),Try::Tiny::Catch=REF(0x3692c78))在./stream\u binary\u hadoop.pl第190行调用
main::在./stream_binary_hadoop.pl第354行调用的流(散列(0x3692708))
main::在./stream_binary_hadoop.pl行413调用文件_split(散列(0x36927b0))
在./stream\u binary\u hadoop.pl第188行。
main::catch{…}(“无效参数:message=56b4b2b23c24c3608376d1e”…)在/opt/adp/projects/code_coverage/perl//5.10/lib/site_perl/5.10.1/Try/Tiny.pm第104行调用
Try::Tiny::Try(代码(0x3692888),Try::Tiny::Catch=REF(0x3692c78))在./stream\u binary\u hadoop.pl第190行调用
main::在./stream_binary_hadoop.pl第354行调用的流(散列(0x3692708))
main::在./stream_binary_hadoop.pl行413调用文件_split(散列(0x36927b0))

我可以通过使用utf8::降级包装字符串来解决这个问题。不知怎的,它把我的字符串作为utf-8,卡夫卡制作人,检查了是否需要非utf-8字符串

我的工作代码:

 my $arcs_val = join( ',', @arc_a );
        my $hadoop_str = $testid . ',' . $gcda_file_name . ',' . $arcs_val;
        utf8::downgrade($hadoop_str);
         try {
                my $topic = $inputs[0];
                my $partition = $inputs[1];
                my $response = $producer->send(
                    $topic,                      # topic
                    $partition,                  # partition
                    $hadoop_str
               );