[ 
https://issues.apache.org/jira/browse/PHOENIX-877?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

alex kamil updated PHOENIX-877:
-------------------------------
          Description: 
still getting this error with the most recent phoenix v3.0  (i think it has 
been fixed in 2.2.3)

"Snappy native library is not available" when running SELECT DISTINCT on large 
table (>300k rows) in sqlline, on linux 64bit (intel) 

in order to fix had to add to incubator-phoenix/bin/sqlline.py:
    ' -Djava.library.path= /var/lib/hadoop/lib/native/Linux-amd64-64'+\


snappy binaries were installed 
sudo yum install snappy snappy-devel
ln -sf /usr/lib64/libsnappy.so /var/lib/hadoop/lib/native/Linux-amd64-64/.
ln -sf /usr/lib64/libsnappy.so /var/lib/hbase/lib/native/Linux-amd64-64/.
-------------------------------------------------------------------------------------------

Edit (Dec 2014): still getting this error with phoenix 3.1 and 3.2


here is the exception and steps to make it work:

jdbc:phoenix:localhost> SELECT COUNT (DISTINCT ROWKEY)  FROM 
table_with_1000000_rows;
+------------------------+
| DISTINCT_COUNT(ROWKEY) |
+------------------------+
java.lang.UnsatisfiedLinkError: 
org.apache.hadoop.util.NativeCodeLoader.buildSupportsSnappy()Z
        at org.apache.hadoop.util.NativeCodeLoader.buildSupportsSnappy(Native 
Method)
        at 
org.apache.hadoop.io.compress.SnappyCodec.checkNativeCodeLoaded(SnappyCodec.java:62)
        at 
org.apache.hadoop.io.compress.SnappyCodec.getDecompressorType(SnappyCodec.java:185)
        at 
org.apache.hadoop.io.compress.CodecPool.getDecompressor(CodecPool.java:131)
        at 
org.apache.hadoop.hbase.io.hfile.Compression$Algorithm.getDecompressor(Compression.java:331)
        at 
org.apache.phoenix.expression.aggregator.DistinctValueWithCountClientAggregator.aggregate(DistinctValueWithCountClientAggregator.java:66)
        at 
org.apache.phoenix.expression.aggregator.ClientAggregators.aggregate(ClientAggregators.java:63)
        at 
org.apache.phoenix.iterate.GroupedAggregatingResultIterator.next(GroupedAggregatingResultIterator.java:75)
        at 
org.apache.phoenix.iterate.UngroupedAggregatingResultIterator.next(UngroupedAggregatingResultIterator.java:39)
        at 
org.apache.phoenix.jdbc.PhoenixResultSet.next(PhoenixResultSet.java:732)
        at sqlline.SqlLine$IncrementalRows.hasNext(SqlLine.java:2429)
        at sqlline.SqlLine$TableOutputFormat.print(SqlLine.java:2074)
        at sqlline.SqlLine.print(SqlLine.java:1735)
        at sqlline.SqlLine$Commands.execute(SqlLine.java:3683)
        at sqlline.SqlLine$Commands.sql(SqlLine.java:3584)
        at sqlline.SqlLine.dispatch(SqlLine.java:821)
        at sqlline.SqlLine.begin(SqlLine.java:699)
        at sqlline.SqlLine.mainWithInputRedirection(SqlLine.java:441)
        at sqlline.SqlLine.main(SqlLine.java:424)


to fix need to update several configuration files: 

vim phoenix/hadoop2/bin/sqlline.py
extrajars="/etc/hadoop/conf:/etc/hbase/conf:/etc/zookeeper/conf:/usr/lib/hbase/hbase-0.94.15-cdh4.7.0-security.jar:/opt/app/extlib/hadoop-common-2.0.0-cdh4.7.0.jar:/usr/lib/zookeeper/zookeeper-3.4.5-cdh4.7.0.jar:/opt/app/extlib/hadoop-auth-2.0.0-cdh4.7.0.jar:/opt/app/extlib/commons-collections-3.2.1.jar:/opt/app/phoenix/common/phoenix-core-3.1.0.jar:/opt/app/extlib/snappy-java-1.1.1.3.jar"

someflags="-Djava.library.path=/usr/lib/hadoop/lib/native"

java_cmd = 'java '+ someflags+' -cp ".' + os.pathsep + extrajars+ os.pathsep+ 
phoenix_utils.phoenix_client_jar + \


vim systemd/hbase-regionserver.service
ExecStartPre=/usr/bin/mkdir -p /usr/lib/hbase/lib/native/Linux-amd64-64
ExecStartPre=/usr/bin/ln -sf /usr/lib64/libsnappy.so 
/usr/lib/hbase/lib/native/Linux-amd64-64/.
#ExecStartPre=/usr/bin/cp 
/var/lib/hbase/lib/native/Linux-amd64-64/libgplcompression.* 
/usr/lib/hbase/lib/native/Linux-amd64-64/
ExecStartPre=/usr/bin/chown -R hbase:hbase /usr/lib/hbase/lib

vim systemd/hadoop-hdfs-datanode.service
ExecStartPre=/usr/bin/mkdir -p /usr/lib/hadoop/lib/native/Linux-amd64-64
ExecStartPre=/usr/bin/ln -sf /usr/lib64/libsnappy.so 
/usr/lib/hadoop/lib/native/Linux-amd64-64/.
#ExecStartPre=/usr/bin/cp 
/var/lib/hbase/lib/native/Linux-amd64-64/libgplcompression.* 
/usr/lib/hadoop/lib/native/Linux-amd64-64/
ExecStartPre=/usr/bin/chown -R hdfs:hdfs /usr/lib/hadoop/lib

vim hadoop/core-site.xml 
    <property>
            <name>io.compression.codecs</name>
            
<value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.BZip2Codec,org.apache.hadoop.io.compress.SnappyCodec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec</value>
        </property>

        <property>
           <name>io.compression.codec.lzo.class</name>
           <value>com.hadoop.compression.lzo.LzoCodec</value>
        </property>


 vim hbase/hbase-site.xml
 <property>
    <name>hbase.regionserver.codecs</name>
    <value>snappy</value>
 </property>


 vim hadoop/hadoop-env.sh
export HADOOP_/opt/app=/usr/lib/hadoop
export 
JAVA_LIBRARY_PATH=$HADOOP_/opt/app/lib/native/Linux-amd64-64:$HADOOP_/opt/app/lib/native
export 
HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOP_MAPRED_/opt/app:$HADOOP_HDFS_/opt/app:$HADOOP_YARN_/opt/app:$HADOOP_/opt/app:$HADOOP_CONF_DIR:$YARN_CONF_DIR:$JSVC_/opt/app:$HADOOP_/opt/app/lib/native/Linux-amd64-64:$HADOOP_/opt/app/lib/native

vim hbase/hbase-env.sh 
export HBASE_/opt/app=/usr/lib/hbase
export 
HBASE_LIBRARY_PATH=$HBASE_/opt/app/lib/native/Linux-amd64-64:$HBASE_/opt/app/lib/native
export HBASE_CLASSPATH_PREFIX=/opt/app/phoenix/common/phoenix-core-3.1.0.jar


  was:
still getting this error with the most recent phoenix v3.0  (i think it has 
been fixed in 2.2.3)

"Snappy native library is not available" when running SELECT DISTINCT on large 
table (>300k rows) in sqlline, on linux 64bit (intel) 

in order to fix had to add to incubator-phoenix/bin/sqlline.py:
    ' -Djava.library.path= /var/lib/hadoop/lib/native/Linux-amd64-64'+\


snappy binaries were installed 
sudo yum install snappy snappy-devel
ln -sf /usr/lib64/libsnappy.so /var/lib/hadoop/lib/native/Linux-amd64-64/.
ln -sf /usr/lib64/libsnappy.so /var/lib/hbase/lib/native/Linux-amd64-64/.


             Priority: Major  (was: Minor)
    Affects Version/s:     (was: 4.0.0)
                           (was: 3.0.0)
                       3.2
                       4.2
                       4.1
                       3.1

> Snappy native library is not available
> --------------------------------------
>
>                 Key: PHOENIX-877
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-877
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 3.1, 4.1, 4.2, 3.2
>            Reporter: alex kamil
>            Assignee: Mujtaba Chohan
>
> still getting this error with the most recent phoenix v3.0  (i think it has 
> been fixed in 2.2.3)
> "Snappy native library is not available" when running SELECT DISTINCT on 
> large table (>300k rows) in sqlline, on linux 64bit (intel) 
> in order to fix had to add to incubator-phoenix/bin/sqlline.py:
>     ' -Djava.library.path= /var/lib/hadoop/lib/native/Linux-amd64-64'+\
> snappy binaries were installed 
> sudo yum install snappy snappy-devel
> ln -sf /usr/lib64/libsnappy.so /var/lib/hadoop/lib/native/Linux-amd64-64/.
> ln -sf /usr/lib64/libsnappy.so /var/lib/hbase/lib/native/Linux-amd64-64/.
> -------------------------------------------------------------------------------------------
> Edit (Dec 2014): still getting this error with phoenix 3.1 and 3.2
> here is the exception and steps to make it work:
> jdbc:phoenix:localhost> SELECT COUNT (DISTINCT ROWKEY)  FROM 
> table_with_1000000_rows;
> +------------------------+
> | DISTINCT_COUNT(ROWKEY) |
> +------------------------+
> java.lang.UnsatisfiedLinkError: 
> org.apache.hadoop.util.NativeCodeLoader.buildSupportsSnappy()Z
>       at org.apache.hadoop.util.NativeCodeLoader.buildSupportsSnappy(Native 
> Method)
>       at 
> org.apache.hadoop.io.compress.SnappyCodec.checkNativeCodeLoaded(SnappyCodec.java:62)
>       at 
> org.apache.hadoop.io.compress.SnappyCodec.getDecompressorType(SnappyCodec.java:185)
>       at 
> org.apache.hadoop.io.compress.CodecPool.getDecompressor(CodecPool.java:131)
>       at 
> org.apache.hadoop.hbase.io.hfile.Compression$Algorithm.getDecompressor(Compression.java:331)
>       at 
> org.apache.phoenix.expression.aggregator.DistinctValueWithCountClientAggregator.aggregate(DistinctValueWithCountClientAggregator.java:66)
>       at 
> org.apache.phoenix.expression.aggregator.ClientAggregators.aggregate(ClientAggregators.java:63)
>       at 
> org.apache.phoenix.iterate.GroupedAggregatingResultIterator.next(GroupedAggregatingResultIterator.java:75)
>       at 
> org.apache.phoenix.iterate.UngroupedAggregatingResultIterator.next(UngroupedAggregatingResultIterator.java:39)
>       at 
> org.apache.phoenix.jdbc.PhoenixResultSet.next(PhoenixResultSet.java:732)
>       at sqlline.SqlLine$IncrementalRows.hasNext(SqlLine.java:2429)
>       at sqlline.SqlLine$TableOutputFormat.print(SqlLine.java:2074)
>       at sqlline.SqlLine.print(SqlLine.java:1735)
>       at sqlline.SqlLine$Commands.execute(SqlLine.java:3683)
>       at sqlline.SqlLine$Commands.sql(SqlLine.java:3584)
>       at sqlline.SqlLine.dispatch(SqlLine.java:821)
>       at sqlline.SqlLine.begin(SqlLine.java:699)
>       at sqlline.SqlLine.mainWithInputRedirection(SqlLine.java:441)
>       at sqlline.SqlLine.main(SqlLine.java:424)
> to fix need to update several configuration files: 
> vim phoenix/hadoop2/bin/sqlline.py
> extrajars="/etc/hadoop/conf:/etc/hbase/conf:/etc/zookeeper/conf:/usr/lib/hbase/hbase-0.94.15-cdh4.7.0-security.jar:/opt/app/extlib/hadoop-common-2.0.0-cdh4.7.0.jar:/usr/lib/zookeeper/zookeeper-3.4.5-cdh4.7.0.jar:/opt/app/extlib/hadoop-auth-2.0.0-cdh4.7.0.jar:/opt/app/extlib/commons-collections-3.2.1.jar:/opt/app/phoenix/common/phoenix-core-3.1.0.jar:/opt/app/extlib/snappy-java-1.1.1.3.jar"
> someflags="-Djava.library.path=/usr/lib/hadoop/lib/native"
> java_cmd = 'java '+ someflags+' -cp ".' + os.pathsep + extrajars+ os.pathsep+ 
> phoenix_utils.phoenix_client_jar + \
> vim systemd/hbase-regionserver.service
> ExecStartPre=/usr/bin/mkdir -p /usr/lib/hbase/lib/native/Linux-amd64-64
> ExecStartPre=/usr/bin/ln -sf /usr/lib64/libsnappy.so 
> /usr/lib/hbase/lib/native/Linux-amd64-64/.
> #ExecStartPre=/usr/bin/cp 
> /var/lib/hbase/lib/native/Linux-amd64-64/libgplcompression.* 
> /usr/lib/hbase/lib/native/Linux-amd64-64/
> ExecStartPre=/usr/bin/chown -R hbase:hbase /usr/lib/hbase/lib
> vim systemd/hadoop-hdfs-datanode.service
> ExecStartPre=/usr/bin/mkdir -p /usr/lib/hadoop/lib/native/Linux-amd64-64
> ExecStartPre=/usr/bin/ln -sf /usr/lib64/libsnappy.so 
> /usr/lib/hadoop/lib/native/Linux-amd64-64/.
> #ExecStartPre=/usr/bin/cp 
> /var/lib/hbase/lib/native/Linux-amd64-64/libgplcompression.* 
> /usr/lib/hadoop/lib/native/Linux-amd64-64/
> ExecStartPre=/usr/bin/chown -R hdfs:hdfs /usr/lib/hadoop/lib
> vim hadoop/core-site.xml 
>     <property>
>             <name>io.compression.codecs</name>
>             
> <value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.BZip2Codec,org.apache.hadoop.io.compress.SnappyCodec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec</value>
>         </property>
>         <property>
>            <name>io.compression.codec.lzo.class</name>
>            <value>com.hadoop.compression.lzo.LzoCodec</value>
>         </property>
>  vim hbase/hbase-site.xml
>  <property>
>     <name>hbase.regionserver.codecs</name>
>     <value>snappy</value>
>  </property>
>  vim hadoop/hadoop-env.sh
> export HADOOP_/opt/app=/usr/lib/hadoop
> export 
> JAVA_LIBRARY_PATH=$HADOOP_/opt/app/lib/native/Linux-amd64-64:$HADOOP_/opt/app/lib/native
> export 
> HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOP_MAPRED_/opt/app:$HADOOP_HDFS_/opt/app:$HADOOP_YARN_/opt/app:$HADOOP_/opt/app:$HADOOP_CONF_DIR:$YARN_CONF_DIR:$JSVC_/opt/app:$HADOOP_/opt/app/lib/native/Linux-amd64-64:$HADOOP_/opt/app/lib/native
> vim hbase/hbase-env.sh 
> export HBASE_/opt/app=/usr/lib/hbase
> export 
> HBASE_LIBRARY_PATH=$HBASE_/opt/app/lib/native/Linux-amd64-64:$HBASE_/opt/app/lib/native
> export HBASE_CLASSPATH_PREFIX=/opt/app/phoenix/common/phoenix-core-3.1.0.jar



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to