hadoop hive hbase 入门学习 (二)
?
hadoop 自學系列
?????????????? hadoop hive hbase 入門學習 (一) hadoop安裝、hdfs學習及mapreduce學習
hadoop 軟件下載 (hadoop-1.2.1.tar.gz) 點擊下載
hadoop hive hbase 入門學習 (二) hbase 安裝、hbase語句學習
hbase 軟件下載 (hbase-0.94.26.tar.gz) 點擊下載
hadoop hive hbase 入門學習 (三) hive安裝、及hive語句學習
hive軟件下載 (hive-0.9.0.tar.gz)點擊下載
mysql 客戶端軟件下載 (MySQL-client-5.5.23-1.linux2.6.i386.rpm)點擊下載
mysql 服務端軟件下載 (MySQL-server-5.5.23-1.linux2.6.i386.rpm)點擊下載
mysql connector軟件下載 (mysql-connector-java-5.1.16-bin.jar)點擊下載
?
?
?
?
?
hbase 偽分布 安裝
?
?
?
?
?
?
?
1.hadoop版本:hadoop-1.1.2,HBase版本:hbase-0.94.26
最好的 搭配 是:
本人之前是 : hadoop1.1.2 + hbase0.90.4 在csdn 下載的 hbase0.90.4 后來發現 怎么也啟動不了 ?
問題 :ERROR : org.apache.Hadoop.hbase.MasterNotRunningException: null
網站上的 解決方法:
?
1)啟動hadoop后,需要等一段時間,再開啟hbase
2)去掉hadoop的安全模式:
hadoop dfsadmin -safemode leave
3)把/etc/hosts里的master01的IP改為服務器當前的IP
4)確認hbase的hbase-site.xml中
<name>hbase.rootdir</name>
<value>hdfs://hadoop:9000/hbase</value>
與hadoop的core-site.xml中
<name>fs.default.name</name>
<value>hdfs://hadoop:9000</value>
紅字部分保持一致
5)把 hadoop 目錄下的 hadoop-core-xxx.jar 拷到 hbase/lib 替換 hadoop-core-yyY.jar
?
最后發現還是 不行 , 沒辦法 重新安裝 hadoop-0.94.26 最后 成功了~~~~
?
?
2.到官方網站下載好hbase-0.94.26.tar.gz,解壓hbase安裝包到一個可用目錄如(/home/hadoop/hbase-0.94.26/)
tar -zxvf hbase-0.94.26.tar.gz
設置hbase-0.94.26所在用戶為hadoop,所在組為hadoop(root用戶操作)
chown -R hadoop hbase-0.94.26
chgrp -R hadoop hbase-0.94.26或者
chown -R hadoop:hadoop hbase-0.94.26
3.設置環境變量:在/etc/profile和/home/hadoop/.bashrc中配置添加(紅色字體的)
#set java environment
HBASE_HOME=/home/hadoop/hbase-0.94.26
HIVE_HOME=/home/hadoop/hive-0.9.0
HADOOP_HOME=/home/hadoop/hadoop-1.1.1
JAVA_HOME=/home/hadoop/jdk1.7.0
PATH=$JAVA_HOME/bin:$HBASE_HOME/bin:$HIVE_HOME/bin:$HADOOP_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$HBASE_HOME/lib:$HIVE_HOME/lib:$JAVA_HOME/lib/tools.jar
export HBASE_HOME
export HADOOP_HOME
export JAVA_HOME
export HIVE_HOME
export PATH
export CLASSPATH
4.hbase配置:
在$HBASE_HOME/conf/hbase-env.sh中配置添加(紅色字體的)
export JAVA_HOME= /usr/baoy/java
export HBASE_MANAGES_ZK=true
如果想使用HBase自帶的zookeeper,要添加export HBASE_MANAGES_ZK=true
在$HBASE_HOME/conf目錄中,確保hbase-site中的hbase.rootdir的主機和端口號與$HADOOP_HOME/conf目錄中core-site.xml中的fs.default.name的主機和端口號一致,添加如下內容:
5.先啟動hadoop,再啟動hbase:
./start-hbase.sh #確認hadoop完全啟動后啟動hbase
jps #查看hbase啟動情況,確認HQuorumPeer,HMaster,HRegionServer全部啟動
?
?
第一個實例 :
1、運行Eclipse,創建一個新的Java工程“HBaseClient”,右鍵項目根目錄,選擇 “Properties”->“Java Build Path”->“Library”->“Add External JARs”,將HBase解壓后根目錄下的hbase-0.94.1-security.jar、hbase-0.94.1-security-tests.jar和lib子目錄下所有jar 包添加到本工程的Classpath下。
2.? 按照步驟1中的操作,將自己所連接的HBase的配置文件hbase-site.xml添加到本工程的Classpath中,如下所示為配置文件的一個示例:
?
?
private final static String TABLE_NAME ="t5";private static Configuration getConfiguration() {final Configuration conf = HBaseConfiguration.create();conf.set("hbase.rootdir","hdfs://192.168.32.130:9000/hbase" );conf.set("hbase.zookeeper.quorum","192.168.32.130" ); return conf;}private static Configuration getConfiguration2() {Configuration conf = new Configuration(); conf.set("hbase.zookeeper.quorum", "192.168.32.130"); conf.set("hbase.zookeeper.property.clientPort", "2181"); conf = HBaseConfiguration.create(conf);return conf;}public static void main(String[] args) throws Exception {//一類對表自身操作 修改 增加刪除//一類對數據 的操作 增加 修改 刪除final Configuration conf = getConfiguration();final HBaseAdmin hBaseAdmin = new HBaseAdmin(conf); HTableDescriptor htableDescriptor =new HTableDescriptor(TABLE_NAME);htableDescriptor.addFamily(new HColumnDescriptor("f1")); hBaseAdmin.createTable(htableDescriptor);hBaseAdmin.close();}?
?
則說明, HRegionServer
監聽的端口是localhost 127.0.0.1,?需要修改?server端?/etc/hosts?文件,?127.0.0.1? ?? ?? ?? ?
? ?servername localhost.localdomain localhost?
去掉 servername, 然后重啟hbase
第二種情況:
java.net.ConnectException: Connection refused: no further information?
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)?
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:567)?
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1119)?
12/09/03 15:37:15 INFO zookeeper.ClientCnxn: Opening socket connection to server /192.168.0.118:2181?
12/09/03 15:37:16 INFO zookeeper.ClientCnxn: EventThread shut down?
12/09/03 15:37:16 INFO zookeeper.ZooKeeper: Session: 0x0 closed?
Exception in thread "main" org.apache.hadoop.hbase.ZooKeeperConnectionException:?HBase?is able to connect to ZooKeeper but the connection closes immediately. This could be a sign that the server has too many connections (30 is the default). Consider inspecting your ZK server logs for that error and then make sure you are reusing HBaseConfiguration as often as you can. See HTable's javadoc for more information.?
at org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.<init>(ZooKeeperWatcher.java:156)?
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getZooKeeperWatcher(HConnectionManager.java:1209)?
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setupZookeeperTrackers(HConnectionManager.java:511)?
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:502)?
at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:172)?
at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:92)?
at com.biencloud.test.first_hbase.main(first_hbase.java:22)?
Caused by: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase?
at org.apache.zookeeper.KeeperException.create(KeeperException.java:90)?
at org.apache.zookeeper.KeeperException.create(KeeperException.java:42)?
at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:809)?
at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:837)?
at org.apache.hadoop.hbase.zookeeper.ZKUtil.createAndFailSilent(ZKUtil.java:931)?
at org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.<init>(ZooKeeperWatcher.java:134)?
... 6 more?
這個錯誤說明eclipse沒有連接到zookeeper,在程序中添加zookeeper配置信息即可,具體如下:?
Configuration conf=HBaseConfiguration.create();?
conf.set("hbase.zookeeper.quorum","192.168.0.118, 192.168.0.186, 192.168.0.182");?
conf.set("hbase.zookeeper.property.clientPort","2222");?
?
還不行 ,在 windows 中?
C:\Windows\System32\drivers\etc 添加 你的 ip?和 別名
比如 192.168.32.130 hadoop
我就死在 這里 ,我記得 我的 所有 配置都是 用 ip 192.168.32.130 的 沒有用 別名 hadoop,還是 不行 ,,之后 就加了一個 就好了 。
?
?
?
?
hbase 對數據庫表的操作?& 對數據的操作
package study.hbase.demo.test;import java.io.IOException;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.MasterNotRunningException; import org.apache.hadoop.hbase.ZooKeeperConnectionException; import org.apache.hadoop.hbase.client.Get; import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.client.HTable; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.ResultScanner; import org.apache.hadoop.hbase.client.Scan;public class Test {private final static String TABLE_NAME ="t5";private static final byte[] ROWKEY = "rowkey".getBytes();private static final byte[] FAMILY = "f1".getBytes();private static final byte[] QULIFIER = "c1".getBytes();private static final byte[] VALUE = "value".getBytes();private static Configuration getConfiguration() {final Configuration conf = HBaseConfiguration.create();conf.set("hbase.rootdir","hdfs://192.168.32.130:9000/hbase" );conf.set("hbase.zookeeper.quorum","192.168.32.130" ); return conf;}private static Configuration getConfiguration2() {Configuration conf = new Configuration(); conf.set("hbase.zookeeper.quorum", "192.168.32.130"); conf.set("hbase.zookeeper.property.clientPort", "2181"); conf = HBaseConfiguration.create(conf);return conf;}public static void main(String[] args) throws Exception {//一類對表自身操作 修改 增加刪除//一類對數據 的操作 增加 修改 刪除final Configuration conf = getConfiguration();//createTable(conf);final HTable htable = new HTable(conf ,TABLE_NAME);//put 'f1','rowkey','f1:c1','value'final Put put =new Put(ROWKEY);put.add(FAMILY, QULIFIER, VALUE);htable.put(put);final Get get =new Get(ROWKEY);final Result result = htable.get(get);final byte[] value2 = result.getValue(FAMILY, QULIFIER);System.out.println(new String (value2));System.out.println("-----------------------------------------------");final Scan scan= new Scan (); final ResultScanner resultScanner = htable.getScanner(scan);for (Result temp : resultScanner) {final byte[] value3 = temp.getValue(FAMILY, QULIFIER);System.out.println(new String (value3));}htable.close();//deleteTable(conf);}@SuppressWarnings("unused")private static void deleteTable(final Configuration conf)throws MasterNotRunningException, ZooKeeperConnectionException,IOException {final HBaseAdmin hBaseAdmin = new HBaseAdmin(conf); if(hBaseAdmin.tableExists(TABLE_NAME)){hBaseAdmin.disableTable(TABLE_NAME);hBaseAdmin.deleteTable(TABLE_NAME);hBaseAdmin.close();}}@SuppressWarnings("unused")private static void createTable(final Configuration conf)throws MasterNotRunningException, ZooKeeperConnectionException,IOException {final HBaseAdmin hBaseAdmin = new HBaseAdmin(conf); if(hBaseAdmin.tableExists(TABLE_NAME)){HTableDescriptor htableDescriptor =new HTableDescriptor(TABLE_NAME);htableDescriptor.addFamily(new HColumnDescriptor("f1")); hBaseAdmin.createTable(htableDescriptor);hBaseAdmin.close();}}}?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
捐助開發者
在興趣的驅動下,寫一個免費的東西,有欣喜,也還有汗水,希望你喜歡我的作品,同時也能支持一下。 當然,有錢捧個錢場(右上角的愛心標志,支持支付寶和PayPal捐助),沒錢捧個人場,謝謝各位。
?
?
?謝謝您的贊助,我會做的更好!
?
?
總結
以上是生活随笔為你收集整理的hadoop hive hbase 入门学习 (二)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: iOS中MVC等设计模式详解
- 下一篇: DVB相关
