Uploaded image for project: 'Apache HAWQ'
  1. Apache HAWQ
  2. HAWQ-1627

Support setting the max protocol message size when talking with HDFS

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 2.4.0.0
    • libhdfs
    • None

    Description

      Now, the max size of protocol message in libhdfs is 64MB, and it cannot be adjusted.
      When the max size is reached (accessing a very big HDFS table/file), will see the following lines in hawq master log:

      2018-06-20 11:21:56.768003 CST,,,p75703,th-848100416,,,,0,,,seg-10000,,,,,"LOG","00000","3rd party error log:
      [libprotobuf ERROR google/protobuf/io/coded_stream.cc:208] A protocol message was rejected because it was too big (more than 67108864 bytes).  To increase the limit (or to
      disable these warnings), see CodedInputStream::SetTotalBytesLimit() in google/protobuf/io/coded_stream.h.",,,,,,,,"SysLoggerMain","syslogger.c",518,
      2018-06-20 11:21:56.771657 CST,,,p75703,th-848100416,,,,0,,,seg-10000,,,,,"LOG","00000","3rd party error log:
      2018-06-20 11:21:56.771492, p75751, th0x7fffcd7303c0, ERROR Failed to invoke RPC call ""getFsStats"" on server ""localhost:9000"":
      RpcChannel.cpp: 783: HdfsRpcException: RPC channel to ""localhost:9000"" got protocol mismatch: RPC channel cannot parse response header.
          @   Hdfs::Internal::RpcChannelImpl::readOneResponse(bool)
          @   Hdfs::Internal::RpcChannelImpl::checkOneResponse()
          @   Hdfs::Internal::RpcChannelImpl::invokeInternal(std::__1::shared_ptr<Hdfs::Internal::RpcRemoteCall>)
          @   Hdfs::Internal::RpcChannelImpl:",,,,,,,,"SysLoggerMain","syslogger.c",518,
      2018-06-20 11:21:56.771711 CST,,,p75703,th-848100416,,,,0,,,seg-10000,,,,,"LOG","00000","3rd party error log:
      :invoke(Hdfs::Internal::RpcCall const&)
          @   Hdfs::Internal::NamenodeImpl::invoke(Hdfs::Internal::RpcCall const&)
          @   Hdfs::Internal::NamenodeImpl::getFsStats()
          @   Hdfs::Internal::NamenodeProxy::getFsStats()
          @   Hdfs::Internal::FileSystemImpl::getFsStats()
          @   Hdfs::Internal::FileSystemImpl::connect()
          @   Hdfs::FileSystem::connect(char const*, char const*, char const*)
          @   Hdfs::FileSystem::connect(char const*)
          @   hdfsBuilderConnect
          @   gpfs_hdfs_connect
          @   HdfsConnect
          @   HdfsGetConnection
          @   HdfsGetFileBlockLocati",,,,,,,,"SysLoggerMain","syslogger.c",518,
      

      Considering HDFS has a guc "ipc.maximum.data.length" to set it, HAWQ should also add a guc for it.

      Attachments

        Issue Links

          Activity

            People

              hongxu ma Hongxu Ma
              hongxu ma Hongxu Ma
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: