Compression CDH4.2.0无法设置HBase压缩
由于我们已将CDH4.1.2的安装更新为CDH4.2.0,因此无法再创建启用压缩的新表。 我们以前成功地使用了SNAPPY压缩。 现在,当我们尝试执行create语句时,如:Compression CDH4.2.0无法设置HBase压缩,compression,hbase,cloudera,Compression,Hbase,Cloudera,由于我们已将CDH4.1.2的安装更新为CDH4.2.0,因此无法再创建启用压缩的新表。 我们以前成功地使用了SNAPPY压缩。 现在,当我们尝试执行create语句时,如: create 'tableWithCompression', {NAME => 't1', COMPRESSION => 'SNAPPY'} 出现以下错误: ERROR: Compression SNAPPY is not supported. Use one of LZ4 SNAPPY LZO GZ NON
create 'tableWithCompression', {NAME => 't1', COMPRESSION => 'SNAPPY'}
出现以下错误:
ERROR: Compression SNAPPY is not supported. Use one of LZ4 SNAPPY LZO GZ NONE
我们意识到也没有发现其他压缩算法:例如,GZ也有同样的问题
ERROR: Compression GZ is not supported. Use one of LZ4 SNAPPY LZO GZ NONE
我们增加了
“导出HBASE_LIBRARY_PATH=/usr/lib/hadoop/lib/native/”
至hbase-env.sh
不幸的是,这并没有解决我们的问题
我们还可以试试别的吗?我也一样。这似乎是admin.rb脚本中的一个bug 有关守则如下:
if arg.include?(org.apache.hadoop.hbase.HColumnDescriptor::COMPRESSION)
compression = arg[org.apache.hadoop.hbase.HColumnDescriptor::COMPRESSION].upcase
unless org.apache.hadoop.hbase.io.hfile.Compression::Algorithm.constants.include?(compression)
raise(ArgumentError, "Compression #{compression} is not supported. Use one of " + org.apache.hadoop.hbase.io.hfile.Compression::Algorithm.constants.join(" "))
else
family.setCompressionType(org.apache.hadoop.hbase.io.hfile.Compression::Algorithm.valueOf(compression))
end
end
我知道后来有一些“p”的说法。压缩是“SNAPPY”
,org.apache.hadoop.hbase.io.hfile.compression::Algorithm.constants
是[:LZ4,:SNAPPY,:LZO,:GZ,:NONE]
看到差别了吗?我们正在比较字符串和符号。快速修复方法是将设置压缩的行更改为以下内容:
compression = arg[org.apache.hadoop.hbase.HColumnDescriptor::COMPRESSION].upcase.to_sym
我想这与大量不同的jruby变体和配置有关。我想在某些情况下,常量是字符串,在其他情况下是符号。一个更持久的解决方法是在比较的两端使用
to_sym
。没有也会遇到同样的问题吗?我猜这可能与大写转换和环境的地区/语言有关,因为引发此问题的检查仅查找代码中定义的枚举,而不是本机库检查。是的,无时也会发生此错误。运行区域设置显示“LANG=en_GB.UTF-8”。对不起,我的internet连接非常糟糕。我无法git克隆hbase,因此无法提交修补程序:(。