分享

hbase的问题求会的帮忙解决一下

zhangcd123 2013-12-13 11:05:11 发表于 异常错误 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 9 13109
hadoop使用版本为1.2.1   zookeeper使用版本为3.4.5   hbase使用版本为0.94.14
hbase配置如下
hbase-env.sh

# set java environment
export JAVA_HOME=/usr/java/jdk1.6.0_45/
export HBASE_MANAGES_ZK=false
export HBASE_HOME=/usr/hbase
export HADOOP_HOME=/usr/hadoop



habse-site.xml

<configuration>
       <property>
                <name>hbase.rootdir</name>
                <value>hdfs://192.168.1.240:9000/hbase</value>
        </property>
        <property>
                <name>hbase.hregion.memstore.flush.size</name>
                <value>5242880</value>
        </property>
        <property>
                <name>hbase.hregion.max.filesize</name>
                <value>20971520</value>
        </property>
        <property>
                <name>hfile.block.cache.size</name>
                <value>0.3</value>
        </property>
        <property>
                <name>hbase.zookeeper.property.clientPort</name>
                <value>2181</value>
        </property>
        <property>
                <name>hbase.zookeeper.quorum</name>
                <value>192.168.1.240</value>
        </property>
        <property>
                <name>hbase.zookeeper.property.dataDir</name>
                <value>/usr/zookeeper/data</value>
        </property>
        <property>
                <name>hbase.regionserver.handler.count</name>
                <value>100</value>
        </property>
        <property>
                <name>zookeeper.session.timeout</name>
                <value>1200000</value>
        </property>
        <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
        </property>

        <property>
                <name>hbase.master</name>
                <value>192.168.1.240:60000</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
</configuration>


配置完后hadoop 、zookeeper、hbase均正常启动没有错误,启动后进程如下
4385 NameNode
4499 DataNode
5744 Jps
4970 QuorumPeerMain
4838 TaskTracker
4633 SecondaryNameNode
4718 JobTracker
5339 HRegionServer
5143 HMaster

在eclipse中的代码如下
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.TableDescriptors;
import org.apache.hadoop.hbase.ZooKeeperConnectionException;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.generated.master.tablesDetailed_jsp;


public class HbaseTest {

        private static Configuration conf = null;

        /**
     * 初始化配置
     */  
    static {  
            conf = HBaseConfiguration.create();  
        conf.set("hbase.master", "192.168.1.240:60000");  
        conf.set("hbase.zookeeper.quorum","192.168.1.240");
        conf.set("hbase.zookeeper.property.clientPort","2181");


    }

    /**
     * 创建表
     * @param args
     * @throws IOException
     */
    public void createTable(String tablename,String[] cfs) throws IOException{
            HBaseAdmin admin = new HBaseAdmin(conf);
            if(admin.tableExists(tablename)){
                    System.out.println("表已经存在");
            }else{
                    HTableDescriptor tableDesc = new HTableDescriptor(tablename);
                    for(int i=0;i<cfs.length;i++){
                            tableDesc.addFamily(new HColumnDescriptor(cfs[i]));
                    }
                    admin.createTable(tableDesc);
                    System.out.println("表创建成功");
            }
    }

        public static void main(String[] args) throws IOException {
                HbaseTest test = new HbaseTest();
                test.createTable("hbase_test", new String[]{"cf"});

        }

}


执行java代码出现如下问题
13/12/13 11:03:57 INFO client.HConnectionManager$HConnectionImplementation: getMaster attempt 6 of 14 failed; retrying after sleep of 4009
java.net.SocketTimeoutException: 20000 millis timeout while waiting for channel to be ready for connect. ch : java.nio.channels.SocketChannel[connection-pending remote=master/192.168.1.44:60000]
        at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:213)
        at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:511)
        at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:481)
        at org.apache.hadoop.hbase.ipc.HBaseClient$Connection.setupConnection(HBaseClient.java:392)
        at org.apache.hadoop.hbase.ipc.HBaseClient$Connection.setupIOstreams(HBaseClient.java:438)
        at org.apache.hadoop.hbase.ipc.HBaseClient.getConnection(HBaseClient.java:1141)
        at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:988)
        at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:87)
        at com.sun.proxy.$Proxy5.getProtocolVersion(Unknown Source)
        at org.apache.hadoop.hbase.ipc.WritableRpcEngine.getProxy(WritableRpcEngine.java:141)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:813)
        at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:127)
        at HbaseTest.createTable(HbaseTest.java:36)
        at HbaseTest.main(HbaseTest.java:51)




请哪位大神帮忙看看并解决一下

已有(10)人评论

跳转到指定楼层
lzw 发表于 2013-12-13 12:53:26
这个参数要设置成true。export HBASE_MANAGES_ZK=true



我建议你不要用iP设置,在hosts配置域名,hadoop和hbase中ip改成域名,像下面这样:
  1. 192.168.0.101   hadoop.master
复制代码
回复

使用道具 举报

zhangcd123 发表于 2013-12-13 13:01:07
lzw 发表于 2013-12-13 12:53
这个参数要设置成true。export HBASE_MANAGES_ZK=true

朋友,我改完之后还是这个问题
回复

使用道具 举报

lzw 发表于 2013-12-13 13:15:22
zhangcd123 发表于 2013-12-13 13:01
朋友,我改完之后还是这个问题

你本地telnet一下zookeeper端口号通不通。如果不通确认一下防火墙是否关了。
回复

使用道具 举报

zhangcd123 发表于 2013-12-13 13:31:46
lzw 发表于 2013-12-13 13:15
你本地telnet一下zookeeper端口号通不通。如果不通确认一下防火墙是否关了。

能telnet上zookeeper的端口,而且我的linux系统的debian的没有防火墙
回复

使用道具 举报

lzw 发表于 2013-12-13 13:51:19
zhangcd123 发表于 2013-12-13 13:31
能telnet上zookeeper的端口,而且我的linux系统的debian的没有防火墙

你本地配置hostsname了吗
回复

使用道具 举报

zhangcd123 发表于 2013-12-13 13:52:30
lzw 发表于 2013-12-13 13:51
你本地配置hostsname了吗

本地在哪配置hostsname啊
回复

使用道具 举报

lzw 发表于 2013-12-13 13:54:14
zhangcd123 发表于 2013-12-13 13:52
本地在哪配置hostsname啊

是啊,
回复

使用道具 举报

zhangcd123 发表于 2013-12-13 13:55:15

“是啊,”是什么意思啊
回复

使用道具 举报

lzw 发表于 2013-12-13 13:56:55
zhangcd123 发表于 2013-12-13 13:55
“是啊,”是什么意思啊

在C:\Windows\System32\drivers\etc\hosts
配置:
  1. #hbase
  2. 192.168.0.101       hadoop.master
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条