在Linux环境中调测HBase应用
操作场景
HBase应用程序支持在已安装或未安装HBase客户端的Linux环境中运行。在程序代码完成开发后,您可以上传Jar包至准备好的Linux运行环境中运行。
前提条件
- 已安装客户端时:
    - 已安装HBase客户端。
- 当客户端所在主机不是集群中的节点时,需要在客户端所在节点的hosts文件中设置主机名和IP地址映射。主机名和IP地址请保持一一对应。
 
- 未安装HBase客户端时:
    - Linux环境已安装JDK,版本号需要和IntelliJ IDEA导出Jar包使用的JDK版本一致。
- 当Linux环境所在主机不是集群中的节点时,需要在节点的hosts文件中设置主机名和IP地址映射。主机名和IP地址请保持一一对应。
 
已安装客户端时编译并运行程序
- 导出Jar包。
    
    构建jar包方式有以下两种: - 方法一:
      选择“Maven > 样例工程名称 > Lifecycle > clean”,双击“clean”运行maven的clean命令。 选择“Maven > 样例工程名称 > Lifecycle > install”,双击“install”运行maven的install命令。图1 maven工具clean和install  
 - 方法二:在IDEA的下方Terminal窗口进入“pom.xml”所在目录,手动输入mvn clean install命令进行编译。
      图2 idea termial输入“mvn clean install”  编译完成,打印“BUILD SUCCESS”,生成target目录,生成jar包在target目录中。 
 
- 方法一:
      
- 导出样例项目依赖的jar包。
    
    在IDEA的下方Terminal窗口或其他命令行工具进入“pom.xml”所在目录。 执行命令mvn dependency:copy-dependencies -DoutputDirectory=lib。 在“pom.xml”所在目录将生成lib文件夹,其中包含样例项目所依赖的jar包。 
- 执行Jar包。
    
    - 使用客户端安装用户登录客户端所在节点,切换到客户端目录:
- 执行以下命令加载环境变量:
      
        启用多实例功能后,为其他HBase服务实例进行应用程序开发时还需执行以下命令,切换指定服务实例的客户端。 例如HBase2:source /opt/client/HBase2/component_env。 
- 将应用开发环境中生成的样例项目Jar包(非依赖jar包)上传至客户端运行环境的“客户端安装目录/HBase/hbase/lib”目录,还需将准备连接HBase集群配置文件获取的配置文件和认证文件复制到“客户端安装目录/HBase/hbase/conf”目录。
- 进入目录“客户端安装目录/HBase/hbase”,执行以下命令运行Jar包。
      hbase com.huawei.bigdata.hbase.examples.TestMain 其中,hbase com.huawei.bigdata.hbase.examples.TestMain为举例,具体以实际样例代码为准。 
 
未安装客户端时编译并运行程序
- 导出Jar包。
    
    构建jar包方式有以下两种: - 方法一:
      选择“Maven > 样例工程名称 > Lifecycle > clean”,双击“clean”运行maven的clean命令。 选择“Maven > 样例工程名称 > Lifecycle > install”,双击“install”运行maven的install命令。图3 maven工具clean和install  
 - 方法二:在IDEA的下方Terminal窗口进入“pom.xml”所在目录,手动输入mvn clean install命令进行编译。
      图4 idea termial输入“mvn clean install”  编译完成,打印“BUILD SUCCESS”,生成target目录,生成jar包在target目录中。 
 
- 方法一:
      
- 准备依赖的Jar包和配置文件。
    
    - 在Linux环境新建目录,例如“/opt/test”,并创建子目录“lib”和“conf”。将样例工程依赖的Jar包导出,导出步骤请参考在Linux环境中调测HBase应用章节的2,以及1导出的Jar包,上传到Linux的“lib”目录。将准备连接HBase集群配置文件获取的配置文件及认证文件上传到Linux中“conf”目录。
- 在“/opt/test”根目录新建脚本“run.sh”,修改内容如下并保存:
      #!/bin/sh BASEDIR=`cd $(dirname $0);pwd` cd ${BASEDIR} for file in ${BASEDIR}/lib/*.jar do i_cp=$i_cp:$file echo "$file" done for file in ${BASEDIR}/conf/* do i_cp=$i_cp:$file done java -cp .${i_cp} com.huawei.bigdata.hbase.examples.TestMain 其中,com.huawei.bigdata.hbase.examples.TestMain为举例,具体以实际样例代码为准。 
 
- 切换到“/opt/test”,执行以下命令,运行Jar包。
    
    sh run.sh 
查看Linux调测结果
HBase应用程序运行完成后可通过如下方式查看应用程序的运行情况。
- 通过运行结果查看应用程序运行情况。
- 通过HBase日志获取应用程序运行情况。
- 登录HBase WebUI查看应用程序运行情况。可参见。
- 通过HBase shell命令查看应用程序运行情况。可参见。
2280 [main] INFOcom.huawei.hadoop.hbase.example.HBaseSample- Entering testCreateTable. 3091 [main] WARNcom.huawei.hadoop.hbase.example.HBaseSample- table already exists 3091 [main] INFOcom.huawei.hadoop.hbase.example.HBaseSample- Exiting testCreateTable. 3091 [main] INFOcom.huawei.hadoop.hbase.example.HBaseSample- Entering testPut. 3264 [main] INFOcom.huawei.hadoop.hbase.example.HBaseSample- Put successfully. 3264 [main] INFOcom.huawei.hadoop.hbase.example.HBaseSample- Exiting testPut. 3264 [main] INFOcom.huawei.hadoop.hbase.example.HBaseSample- Entering testGet. 3283 [main] INFOcom.huawei.hadoop.hbase.example.HBaseSample- 012005000201:info,address,Shenzhen, Guangdong 3283 [main] INFOcom.huawei.hadoop.hbase.example.HBaseSample- 012005000201:info,name,yugeZhang San 3283 [main] INFOcom.huawei.hadoop.hbase.example.HBaseSample- Get data successfully. 3283 [main] INFOcom.huawei.hadoop.hbase.example.HBaseSample- Exiting testGet. 3283 [main] INFOorg.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation- Closing zookeeper sessionid=0xd000035eba278e9 3297 [main] INFOorg.apache.zookeeper.ZooKeeper- Session: 0xd000035eba278e9 closed 3297 [main-EventThread] INFOorg.apache.zookeeper.ClientCnxn- EventThread shut down -----------finish HBase -------------------
 
  