Hbase的安装和简单配置,实现简单扫描demo

记录Hbase部署和扫描

1.找到Hadoop和Hbase兼容的安装包,在Hbase的官方文档中(http://hbase.apache.org/book.html#hadoop)搜索Hadoop version support matrix就可以看到相应的兼容版本,去对应官网搜索下载。

2.准备环境,第一次部署时,在hadoop,zookeeper,hbase中和host相关的配置,我都使用的ip做映射,然后运行和调试中各种问题(高潮那种),后来全部将ip和域名进行了映射,然后逐步重启所有服务,才正常。具体配置如下
1)vim /etc/sysconfig/networ,在新的一行追加下配置
NETWORKING=yes
HOSTNAME=yourhostname(你的准备修改主机名)
2)vim /etc/hosts,在新的一行追加一下配置
192.168.1.20 yourhostname (主机ip和域名的映射)
3)shell中执行hostname yourhostname,可以不用重启就修改hostname,然后hostname一下,看是否修改成功
3.安装配置hadoop,解压包到你要安装的目录
进入hadoop安装包目录,进入etc/hadoop
1)hadoop-env.sh(环境设置)
配置jdk

 2)core-site.xml
			<configuration>
					<!--master换成你的域名yourhostname-->
			        <property>
			                <name>fs.defaultFS</name>
			                <value>hdfs://master:9001</value>
			        </property>
			        <!--安装目录下创建data/tmp目录,然后添加到配置中-->
			        <property>
			                <name>hadoop.tmp.dir</name>
			                <value>/opt/modules/hadoop-3.2.0/data/tmp</value>
			        </property>
			</configuration>
		3)hdfs-site.xml
			<configuration>
					<!--数据副本数,简单测试就1个-->
			        <property>
			                <name>dfs.replication</name>
			                <value>1</value>
			        </property>
			        <!--不需要权限检测-->
			        <property>
			                <name>dfs.permissions.enabled</name>
			                <value>false</value>
			        </property>
			</configuration>
	4)配置workers(以前叫做slave)
		我是单节点,所以只在文件中添加了域名,即yourhostname
	5)启动hadoop,进入安装目录
		./bin/hdfs namenode -format     //格式化
	    ./sbin/hadoop-daemon.sh start namenode   //启动namenode节点
	    ./sbin/hadoop-daemon.sh start datanode     //启动datanode
		然后使用jps看是否有namenode和datanode的进程,
	6)若需要重新格式化namenode,需要删除data/tmp(你所创建的目录)下的所有文件,再格式化,否则肯能有异常

4.安装zookeeper,解压包到你要安装的目录
1)进入安装包目录,进入conf下,里面有一个zoo_example.xml,将其改名为zoo.cfg,,然后打开,配置如下

            tickTime=2000
			initLimit=10
			syncLimit=5
			dataDir=/opt/modules/apache-zookeeper-3.5.5-bin/data   //改为你需要的目录
			clientPort=2181                                                                  //zookeeper的端口,根据需要修改
			#autopurge.purgeInterval=1
			server.1=master:2888:3888                                               //集群的服务器,只需要更换master为yourhostname
			server.2=worker1:2888:3888                                             //更改worker为其他服务器的hostname即可
		注意:你有多少个服务器接着添加就行
	2)然后进入你创建的data目录,创建名称为myid的文件,进去后添加服务id,主机填1,其他的依次填数字即可
	3)将配置好的zookeeper目录分发到其他集群服务器,然后更改他们myid文件中的值
	4)进入安装目录下使用./bin/zkServer.sh start启动服务,jps检查QuorumPeerMain进程存在,依次启动所有集群的服务

5.安装hbase,解压包到你要安装的目录
1)进入安装目录,进入conf目录下,配置hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_05 //jdk的环境
export HBASE_MANAGES_ZK=false //默认为true,表示使用hbase自带的zk,使用自己的zk时需要改为false
2)配置hbase-site.xml

<configuration>
				 <!--自定义目录-->
				  <property>
				    <name>hbase.tmp.dir</name>
				    <value>/opt/modules/hbase-2.0.5/data/tmp</value>
				  </property>
				  <!--master需要替换为yourhostname-->
				  <property>
				    <name>hbase.rootdir</name>
				    <value>hdfs://master:9000/hbase</value>
				  </property>
				  <!--是否集群,是-->
				  <property>
				    <name>hbase.cluster.distributed</name>
				    <value>true</value>
				  </property>
				  <!--集群的节点,我有两个节点所以都添加上-->
				  <property>
				    <name>hbase.zookeeper.quorum</name>
				    <value>master,worker1</value>
				  </property>
				  <property>
				    <name>hbase.unsafe.stream.capability.enforce</name>
				    <value>false</value>
				  </property>
				  <!--避免javaapi操作时链接超时-->
				  <property>
				    <name>zookeeper.session.timeout</name>
				    <value>60000</value>
				  </property>
			</configuration>
	3)修改regionservers,添加yourhostname
	4)启动hbase,首先jps确认hadoop和zookeeper已经正常启动,然后再安装目录执行以下命令即可
		./bin/start-hbase.sh,然后检查Hmaster和Hregionserver是否正常启动。
	5)./bin/hbase shell即可进入hbase的shell客户端,可以键入list,create,put,delete,truncate,drop等命令,均有帮助  信息

注意:如果hbase的master启动失败,请检查集群节点的时间是否相同,差别太大则不行,若不断报错,建议关闭hbase,关闭zookeeper,然后删除zookeeper安装目录下data内version-2目录,然后再启动zookeeper和hbase,

===============================================================================================
尽量使用域名配置,简单高效,坑少

在windows上扫描你的linux服务器的hbase时需要修改集群各个节点的/etc/host文件,ip和域名的映射
有多少个节点就配多少个,每个节点都要配
然后再windows的C:\Windows\System32\drivers\etc\hosts文件中也要加入这些映射如下,才能扫描,不报错,还没研究为什么,但是不添加扫描时候就在你的windows上找127.0.0.1/localhost:16010端口,
在这里插入图片描述
扫描demo如下

<dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-common</artifactId>
            <version>2.1.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-server</artifactId>
            <version>2.1.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-client</artifactId>
            <version>2.1.4</version>
        </dependency>

//初始化链接和管理员
private static void init() {
    Configuration conf = new Configuration();

    conf.set("fs.defaultFS", "hdfs://192.168.1.21:9000");
    conf.set("hbase.zookeeper.quorum", "192.168.1.21,192.168.1.20");
    conf.set("hbase.zookeeper.property.clientPort", "2181");
    try {
        connection = ConnectionFactory.createConnection(conf);
        admin = connection.getAdmin();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
//扫描权表
public static void scan() throws IllegalArgumentException, IOException {
    Table table = connection.getTable(tableName);
    Scan scan = new Scan();
    ResultScanner results = table.getScanner(scan);
    for (Result result : results) {
        Cell[] cells = result.rawCells();
        for (Cell cell : cells) {
            System.out.println("RowKey" + CellUtil.cloneRow(cell) +
                    ",RowFamily" + CellUtil.cloneFamily(cell) +
                    ",RowName" + CellUtil.cloneQualifier(cell) +
                    ",RowValue" + CellUtil.cloneValue(cell));
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值