2012-12-05 15 views
8

मुझे रन सरल हाबेस उदाहरण के साथ समस्या का सामना करना पड़ रहा है।हाबेस जावा उदाहरण कैसे चलाएं?

मैंने HbaseTest.java पर बनाया है जो एक टेबल बनाते हैं और कुछ रिकॉर्ड डालते हैं। यूनिक्स में, मैं जावा क्लास को संकलित करने में सक्षम हूं। द्वारा।

$ javac -classpath HBase-0.94.2.jar: $ जावा -classpath hbase-: Hadoop कोर-1.0.4.jar HBaseTest.java

लेकिन मैं द्वारा इस कार्यक्रम को चलाने के लिए सक्षम नहीं हूँ 0.94.2.jar: हडूप-कोर-1.0.4.जर एचबीएसटेस्ट

ऊपर आदेश मेरे लिए काम नहीं कर रहा है। यकीन नहीं है कि मुद्दा क्या है? क्या यह हैबेस जावा उदाहरण चलाने का सही तरीका है?

+1

आपका क्या मतलब है "यह मेरे लिए काम नहीं कर रहा है"? त्रुटि संदेश? कुछ नहीं करता? –

+0

क्या हबेस शेल काम करता है? यदि नहीं, तो आपको अपनी स्थापना की जांच करनी होगी और इस आदेश को चलाने के दौरान hbase – Pixou

+0

को पुनरारंभ करना होगा, मुझे नीचे त्रुटि मिलती है: $ java -classpath hbase-0.94.2.jar: /scratch/hadoop-1.0.4/hadoop-core-1.0.4 .jar HBaseTest धागे "मुख्य" java.lang में अपवाद ..NoClassDefFoundError:/स्क्रैच/हडूप -1/0/4/हडूप-कोर -1/0/4/जार कारण: java.lang.ClassNotFoundException: .scratch .hadoop-1.0.4.hadoop-core-1.0.4.jar java.net.URLClassLoader $ 1.run (URLClassLoader.java:202) ... java.lang.ClassLoader.loadClass (ClassLoader.java पर) : 246) मुख्य वर्ग नहीं मिला: /scratch/hadoop-1.0.4/hadoop-core-1.0.4.jar। कार्यक्रम बाहर निकल जाएगा। –

उत्तर

16

कक्षा पथ प्राप्त करने के लिए आप "hbase classpath" का उपयोग कर सकते हैं।

 
    /* 
    * Compile and run with: 
    * javac -cp `hbase classpath` TestHBase.java 
    * java -cp `hbase classpath` TestHBase 
    */ 
    import org.apache.hadoop.conf.Configuration; 
    import org.apache.hadoop.hbase.*; 
    import org.apache.hadoop.hbase.client.*; 
    import org.apache.hadoop.hbase.util.*; 

    public class TestHBase { 
     public static void main(String[] args) throws Exception { 
      Configuration conf = HBaseConfiguration.create(); 
      HBaseAdmin admin = new HBaseAdmin(conf); 
      try { 
       HTable table = new HTable(conf, "test-table"); 
       Put put = new Put(Bytes.toBytes("test-key")); 
       put.add(Bytes.toBytes("cf"), Bytes.toBytes("q"), Bytes.toBytes("value")); 
       table.put(put); 
      } finally { 
       admin.close(); 
      } 
     } 
    } 
+2

हां। यह काम कर रहा है 1. Hbase/bin $।/Hbase classpath 2. क्लासपाथ के लिए बहुत बड़ी स्ट्रिंग प्राप्त है जिसमें प्रोग्राम चलाने के लिए आवश्यक सभी पथ शामिल हैं। $ Java% hbase स्ट्रिंग (चरण 2) का क्लासपाथ .... अब यह काम कर रहा है :) –

+0

यह काम करता है। नियमित रूप से hbase और hbase-slider-app दोनों पर संकलित और चलाने के लिए स्रोत और निर्देश दोनों। 'hbase classpath' एक बहुत बड़ी स्ट्रिंग देता है, जिसमें लगभग $ {hbase_home}/lib, और hbase/conf, और hadoop/conf, आदि में लगभग सब कुछ शामिल है। –

1

यह आप को चलाने के लिए कर सकता है, यदि संभव हो तो, NetBeans की तरह एक IDE का उपयोग जावा HBase क्लाइंट API कार्यक्रमों को विकसित करने में विफल रहता।

  • NetBeans खोलने के बाद, उपकरण => पुस्तकालय पर जाएं और 'न्यू लाइब्रेरी' पर क्लिक करें और यह MapReduce 'की तरह एक नाम दें।
  • उसे एक नाम दें और फिर जोड़ें जार/फ़ोल्डर पर क्लिक करें और आवश्यक जार फ़ाइलों का चयन, आम तौर पर Hadoop पुस्तकालयों के लिए /usr/local/hadoop-2.x.x/share/hadoop और /usr/local/hbase-1.x.x/lib HBase पुस्तकालयों के लिए के तहत, फाइल सिस्टम ब्राउज़र नेविगेट करके (या बस अपने स्थापना निर्देशिका के लिए नेविगेट) । Shift + तीर कुंजी बड़े पैमाने पर जार फ़ाइलों का चयन करने के लिए काम करते हैं।
  • अब सामान्य रूप से एक नई जावा प्रोजेक्ट बनाएं और इसे प्रोजेक्ट फलक पर राइट क्लिक करें और 'Properties' पर जाएं।
  • अब पुस्तकालयों पर क्लिक करें => लाइब्रेरी जोड़ें और दिखाए गए सूची से अपनी लाइब्रेरी का चयन करें। आपको संकलित करने और उन्हें चलाने के लिए अच्छा होना चाहिए, क्योंकि आपके पास सभी प्रक्रियाएं चल रही हैं।
संबंधित मुद्दे