Quanlong Huang created ORC-400:
----------------------------------

             Summary: Support Hadoop3 in C++ lib
                 Key: ORC-400
                 URL: https://issues.apache.org/jira/browse/ORC-400
             Project: ORC
          Issue Type: New Feature
            Reporter: Quanlong Huang


After ORC-17, we now depends on hadoop c++ lib. When linking liborc into 
Impala-3.x which depends on hadoop3, we found the following errors:
{code}
../../../toolchain/openldap-2.4.25/lib/libldap.a(os-ip.o):os-ip.c:function 
ldap_int_poll: warning: `sys_nerr' is deprecated; use `strerror' or 
`strerror_r' instead
../../../toolchain/openldap-2.4.25/lib/libldap.a(os-ip.o):os-ip.c:function 
ldap_int_poll: warning: `sys_errlist' is deprecated; use `strerror' or 
`strerror_r' instead
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::read(void*, unsigned long, unsigned long): error: 
undefined reference to 'hdfs::Status::ToString() const'
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::HdfsFileInputStream(std::string): error: undefined 
reference to 'hdfs::URI::URI()'
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::HdfsFileInputStream(std::string): error: undefined 
reference to 'hdfs::URI::parse_from_string(std::string const&)'
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::HdfsFileInputStream(std::string): error: undefined 
reference to 'hdfs::ConfigParser::ConfigParser()'
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::HdfsFileInputStream(std::string): error: undefined 
reference to 'hdfs::ConfigParser::LoadDefaultResources()'
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::HdfsFileInputStream(std::string): error: undefined 
reference to 'hdfs::ConfigParser::ValidateResources() const'
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::HdfsFileInputStream(std::string): error: undefined 
reference to 'hdfs::Options::Options()'
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::HdfsFileInputStream(std::string): error: undefined 
reference to 'hdfs::ConfigParser::get_options(hdfs::Options&) const'
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::HdfsFileInputStream(std::string): error: undefined 
reference to 'hdfs::IoService::New()'
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::HdfsFileInputStream(std::string): error: undefined 
reference to 'hdfs::FileSystem::New(hdfs::IoService*&, std::string const&, 
hdfs::Options const&)'
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::HdfsFileInputStream(std::string): error: undefined 
reference to 'hdfs::URI::get_host(bool) const'
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::HdfsFileInputStream(std::string): error: undefined 
reference to 'hdfs::URI::get_path(bool) const'
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::HdfsFileInputStream(std::string): error: undefined 
reference to 'hdfs::StatInfo::StatInfo()'
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::HdfsFileInputStream(std::string): error: undefined 
reference to 'hdfs::URI::get_path(bool) const'
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::HdfsFileInputStream(std::string): error: undefined 
reference to 'hdfs::ConfigParser::~ConfigParser()'
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::HdfsFileInputStream(std::string): error: undefined 
reference to 'hdfs::URI::has_port() const'
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::HdfsFileInputStream(std::string): error: undefined 
reference to 'hdfs::URI::get_port() const'
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::HdfsFileInputStream(std::string): error: undefined 
reference to 'hdfs::URI::get_host(bool) const'
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::HdfsFileInputStream(std::string): error: undefined 
reference to 'hdfs::URI::get_host(bool) const'
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::HdfsFileInputStream(std::string): error: undefined 
reference to 'hdfs::Status::ToString() const'
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::HdfsFileInputStream(std::string): error: undefined 
reference to 'hdfs::URI::str(bool) const'
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::HdfsFileInputStream(std::string): error: undefined 
reference to 'hdfs::Status::ToString() const'
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::HdfsFileInputStream(std::string): error: undefined 
reference to 'hdfs::ConfigParser::~ConfigParser()'
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::HdfsFileInputStream(std::string): error: undefined 
reference to 'hdfs::Status::ToString() const'
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::HdfsFileInputStream(std::string): error: undefined 
reference to 'hdfs::URI::get_path(bool) const'
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::HdfsFileInputStream(std::string): error: undefined 
reference to 'hdfs::URI::get_host(bool) const'
../../../toolchain/orc-1.5.2-p1/lib/liborc.a(OrcHdfsFile.cc.o):OrcHdfsFile.cc:function
 orc::HdfsFileInputStream::HdfsFileInputStream(std::string): error: undefined 
reference to 'hdfs::URI::get_path(bool) const'
collect2: error: ld returned 1 exit status
{code}

The C++ liborc is built on hadoop2. We need to support hadoop3 as well.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to