所有文档

          百度MapReduce BMR

          存储数据至HBase

          准备

          使用HBase存储数据需正确安装HBase,操作详情如下:

          1. 安装HBase。请在创建集群时安装HBase,具体操作请参考创建集群。HBase安装成功后,HBase的Master部署在BMR的Master节点,Region Server部署在BMR的Core节点。
          2. 登录HBase Master节点。即连接到BMR集群的Master节点,具体操作请参考SSH连接到集群
          3. 登录HBase Master节点后,通过SSH登录BMR的Core节点:Core节点的内网地址作为SSH连接的IP地址,端口号请至站内信获取。

          读写数据

          可通过以下步骤完成读写数据操作:

          1. 连接HBase。登录HBase Master节点,执行命令:hbase shell。
          2. 建表。

            示例:若建立一个名为’test’的表,这个表包含一个名为’family’的列族,请执行命令:hbase(main):001:0> create 'test', 'family'。

          3. 列出所有表。执行命令:hbase(main):001:0> list。
          4. 写入数据。

            示例:若设置行’row1’、列’ family:col1’对应的数据为’val1’,请执行命令:hbase(main):001:0> put 'test', 'row1', 'family:col1', 'val1'

          5. 读取数据。

            示例:

            • 若读取行’row1’的全部数据,请执行命令:hbase(main):001:0> get 'test', 'row1'
            • 若读取行’row1’、列’family:col1’对应的数据,请执行命令:hbase(main):001:0> get 'test', 'row1', 'family:col1'

          配置HBase

          1. 登录HBase的Master节点。
          2. 在Master节点的/etc/hbase/conf目录下,找到配置文件hbase-sit.xml和配置JVM和GC参数的hbase-env.sh脚本,修改相应的参数并保存配置文件。
          3. 修改完配置文件后,请重启HBase Master节点和Region Server使配置生效。

            • Master的重启命令如下:su hbase -c '/opt/bmr/hbase/bin/hbase-daemon.sh --config /etc/hbase/conf restart master'
            • Region Server的重启命令如下:su hbase -c '/opt/bmr/hbase/bin/hbase-daemon.sh --config /etc/hbase/conf restart regionserver'

          使用Hive访问HBase

          应用场景

          在BMR中,用户可以结合HBase使用Hive。使用Hive访问HBase时,Hive和HBase可以在同一集群上,也可以分别存在于不同集群上。通常建议用户将HBase和Hive运行于不同集群中,因为这样可以让HBase更充分的利用集群资源。

          将Hive连接到HBase后,可以通过在Hive中创建外部表对HBase中存储的数据进行访问。

          说明: 用户只能将Hive集群连接到单个的HBase集群。

          操作步骤

          1. Hive连接到HBase。

            1. 通过控制台创建BMR集群,并添加Hive应用。请参考创建集群
            2. 通过SSH连接到主节点。请参考SSH连接到集群
            3. 复制HBase集群的/etc/hosts内容至Hive集群的/etc/hosts中。
            4. 执行命令hive启动Hive程序。
            5. 连接Hive集群上的HBase客户端与包含数据的HBase集群。执行命令set hbase.zookeeper.quorum=hbase_cluster_master_ip

              说明:

              • hbase_cluster_master_ip为Hbase服务所在集群的主节点内网IP,Hive和Hbase必须是同一用户的两个集群。
              • 若Hive和Hbase在同一集群中,此步骤可省略。
          2. Hive访问HBase数据。 从Hive提示符中运行时,以下示例创建了一个外部表,此表引用了存储在名为hive_hbase的HBase表上的数据。然后,您可直接引用Hive语句中的pagecounts_hbase,查询和修改存储在HBase集群上的数据。

                CREATE EXTERNAL TABLE IF NOT EXISTS pagecounts_hbase (rowkey STRING, pageviews STRING, bytes STRING)
                STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
                    WITH SERDEPROPERTIES ('hbase.columns.mapping' = ':key,f:c1,f:c2')
                     TBLPROPERTIES ('hbase.table.name' = 'hive_hbase');
            
            select count(*) from pagecounts_hbase;

          查看HBase日志

          请在HBase Master和Region server节点的/var/log/hbase目录下查看HBase日志。

          上一篇
          导出数据
          下一篇
          编译Maven项目