We installed Apache Spark 1.6.0 at the time alongside CDH 5.4.8 because 
Cloudera only had Spark 1.3.0 at the time, and we wanted to use Spark 1.6.0’s 
features. We borrowed the /etc/spark/conf/spark-env.sh file that Cloudera 
generated because it was customized to add jars first from paths listed in the 
file /etc/spark/conf/classpath.txt. So, we entered the path for the htrace jar 
into the /etc/spark/conf/classpath.txt file. Then, it worked. We could 
read/write to HBase. 

> On Oct 2, 2016, at 12:52 AM, Mich Talebzadeh <mich.talebza...@gmail.com> 
> wrote:
> 
> Thanks Ben
> 
> The thing is I am using Spark 2 and no stack from CDH!
> 
> Is this approach to reading/writing to Hbase specific to Cloudera?
> 
> 
> 
> 
> 
> Dr Mich Talebzadeh
>  
> LinkedIn  
> https://www.linkedin.com/profile/view?id=AAEAAAAWh2gBxianrbJd6zP6AcPCCdOABUrV8Pw
>  
> <https://www.linkedin.com/profile/view?id=AAEAAAAWh2gBxianrbJd6zP6AcPCCdOABUrV8Pw>
>  
> http://talebzadehmich.wordpress.com <http://talebzadehmich.wordpress.com/>
> 
> Disclaimer: Use it at your own risk. Any and all responsibility for any loss, 
> damage or destruction of data or any other property which may arise from 
> relying on this email's technical content is explicitly disclaimed. The 
> author will in no case be liable for any monetary damages arising from such 
> loss, damage or destruction.
>  
> 
> On 1 October 2016 at 23:39, Benjamin Kim <bbuil...@gmail.com 
> <mailto:bbuil...@gmail.com>> wrote:
> Mich,
> 
> I know up until CDH 5.4 we had to add the HTrace jar to the classpath to make 
> it work using the command below. But after upgrading to CDH 5.7, it became 
> unnecessary.
> 
> echo "/opt/cloudera/parcels/CDH/jars/htrace-core-3.2.0-incubating.jar" >> 
> /etc/spark/conf/classpath.txt
> 
> Hope this helps.
> 
> Cheers,
> Ben
> 
> 
>> On Oct 1, 2016, at 3:22 PM, Mich Talebzadeh <mich.talebza...@gmail.com 
>> <mailto:mich.talebza...@gmail.com>> wrote:
>> 
>> Trying bulk load using Hfiles in Spark as below example:
>> 
>> import org.apache.spark._
>> import org.apache.spark.rdd.NewHadoopRDD
>> import org.apache.hadoop.hbase.{HBaseConfiguration, HTableDescriptor}
>> import org.apache.hadoop.hbase.client.HBaseAdmin
>> import org.apache.hadoop.hbase.mapreduce.TableInputFormat
>> import org.apache.hadoop.fs.Path;
>> import org.apache.hadoop.hbase.HColumnDescriptor
>> import org.apache.hadoop.hbase.util.Bytes
>> import org.apache.hadoop.hbase.client.Put;
>> import org.apache.hadoop.hbase.client.HTable;
>> import org.apache.hadoop.hbase.mapred.TableOutputFormat
>> import org.apache.hadoop.mapred.JobConf
>> import org.apache.hadoop.hbase.io 
>> <http://org.apache.hadoop.hbase.io/>.ImmutableBytesWritable
>> import org.apache.hadoop.mapreduce.Job
>> import org.apache.hadoop.mapreduce.lib.input.FileInputFormat
>> import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat
>> import org.apache.hadoop.hbase.KeyValue
>> import org.apache.hadoop.hbase.mapreduce.HFileOutputFormat
>> import org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles
>> 
>> So far no issues.
>> 
>> Then I do
>> 
>> val conf = HBaseConfiguration.create()
>> conf: org.apache.hadoop.conf.Configuration = Configuration: 
>> core-default.xml, core-site.xml, mapred-default.xml, mapred-site.xml, 
>> yarn-default.xml, yarn-site.xml, hbase-default.xml, hbase-site.xml
>> val tableName = "testTable"
>> tableName: String = testTable
>> 
>> But this one fails:
>> 
>> scala> val table = new HTable(conf, tableName)
>> java.io.IOException: java.lang.reflect.InvocationTargetException
>>   at 
>> org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:240)
>>   at 
>> org.apache.hadoop.hbase.client.ConnectionManager.createConnection(ConnectionManager.java:431)
>>   at 
>> org.apache.hadoop.hbase.client.ConnectionManager.createConnection(ConnectionManager.java:424)
>>   at 
>> org.apache.hadoop.hbase.client.ConnectionManager.getConnectionInternal(ConnectionManager.java:302)
>>   at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:185)
>>   at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:151)
>>   ... 52 elided
>> Caused by: java.lang.reflect.InvocationTargetException: 
>> java.lang.NoClassDefFoundError: org/apache/htrace/Trace
>>   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>>   at 
>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>>   at 
>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>>   at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>>   at 
>> org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:238)
>>   ... 57 more
>> Caused by: java.lang.NoClassDefFoundError: org/apache/htrace/Trace
>>   at 
>> org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:216)
>>   at org.apache.hadoop.hbase.zookeeper.ZKUtil.checkExists(ZKUtil.java:419)
>>   at 
>> org.apache.hadoop.hbase.zookeeper.ZKClusterId.readClusterIdZNode(ZKClusterId.java:65)
>>   at 
>> org.apache.hadoop.hbase.client.ZooKeeperRegistry.getClusterId(ZooKeeperRegistry.java:105)
>>   at 
>> org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.retrieveClusterId(ConnectionManager.java:905)
>>   at 
>> org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.<init>(ConnectionManager.java:648)
>>   ... 62 more
>> Caused by: java.lang.ClassNotFoundException: org.apache.htrace.Trace
>> 
>> I have got all the jar files in spark-defaults.conf
>> 
>> spark.driver.extraClassPath      
>> /home/hduser/jars/ojdbc6.jar:/home/hduser/jars/jconn4.jar:/home/hduser/jars/hbase-client-1.2.3.jar:/home/hduser/jars/hbase-server-1.2.3.jar:/home/hduser/jars/hbase-common-1.2.3.jar:/home/hduser/jars/hbase-protocol-1.2.3.jar:/home/hduser/jars/htrace-core-3.0.4.jar:/home/hduser/jars/hive-hbase-handler-2.1.0.jar
>> spark.executor.extraClassPath    
>> /home/hduser/jars/ojdbc6.jar:/home/hduser/jars/jconn4.jar:/home/hduser/jars/hbase-client-1.2.3.jar:/home/hduser/jars/hbase-server-1.2.3.jar:/home/hduser/jars/hbase-common-1.2.3.jar:/home/hduser/jars/hbase-protocol-1.2.3.jar:/home/hduser/jars/htrace-core-3.0.4.jar:/home/hduser/jars/hive-hbase-handler-2.1.0.jar
>> 
>> 
>> and also in Spark shell where I test the code
>> 
>>  --jars 
>> /home/hduser/jars/hbase-client-1.2.3.jar,/home/hduser/jars/hbase-server-1.2.3.jar,/home/hduser/jars/hbase-common-1.2.3.jar,/home/hduser/jars/hbase-protocol-1.2.3.jar,/home/hduser/jars/htrace-core-3.0.4.jar,/home/hduser/jars/hive-hbase-handler-2.1.0.jar'
>> 
>> So any ideas will be appreciated.
>> 
>> Thanks
>> 
>> Dr Mich Talebzadeh
>>  
>> LinkedIn  
>> https://www.linkedin.com/profile/view?id=AAEAAAAWh2gBxianrbJd6zP6AcPCCdOABUrV8Pw
>>  
>> <https://www.linkedin.com/profile/view?id=AAEAAAAWh2gBxianrbJd6zP6AcPCCdOABUrV8Pw>
>>  
>> http://talebzadehmich.wordpress.com <http://talebzadehmich.wordpress.com/>
>> 
>> Disclaimer: Use it at your own risk. Any and all responsibility for any 
>> loss, damage or destruction of data or any other property which may arise 
>> from relying on this email's technical content is explicitly disclaimed. The 
>> author will in no case be liable for any monetary damages arising from such 
>> loss, damage or destruction.
>>  
> 
> 

Reply via email to