未安装客户端时编译并运行程序
操作场景
HBase应用程序支持在未安装HBase客户端的Linux环境中运行。在程序代码完成开发后,您可以上传Jar包至Linux环境中运行应用。
前提条件
- Linux环境已安装JDK,版本号需要和Eclipse导出Jar包使用的JDK版本一致。
- 当Linux环境所在主机不是集群中的节点时,需要在节点的hosts文件中设置主机名和IP地址映射。主机名和IP地址请保持一一对应。
操作步骤
1、可选)如果使用IBM JDK,需要进行如下配置。
- krb5.conf文件的[libdefaults]下增加如下配置。
default_tkt_enctypes = aes128-cts-hmac-sha1-96 rc4-hmac default_tgs_enctypes = aes128-cts-hmac-sha1-96 rc4-hmac permitted_enctypes = aes128-cts-hmac-sha1-96 rc4-hmac krb5.conf文件一般在客户端的“./KrbClient/kerberos/var/krb5kdc/krb5.conf”目录下。配置举例: [libdefaults] default_realm = HADOOP.COM kdc_timeout = 2500 clockskew = 300 use_dns_lookup = 0 udp_preference_limit = 1465 max_retries = 3 dns_lookup_kdc = false dns_lookup_realm = false renewable = false forwardable = false renew_lifetime = 0m max_renewable_life = 30m default_tkt_enctypes = aes128-cts-hmac-sha1-96 rc4-hmac default_tgs_enctypes = aes128-cts-hmac-sha1-96 rc4-hmac permitted_enctypes = aes128-cts-hmac-sha1-96 rc4-hmac 配置jaas.conf文件。
com.ibm.security.auth.module.Krb5LoginModule required useKeytab="file:///opt/huawei/Bigdata/etc/1_13_RegionServer/hbase.keytab" principal="hbase/[email protected]" credsType="both";其中,useKeytab和principal客户需要根据实际使用的keytab和keytab中对应的principal来配置。
请在客户端目录下查找所有组件的“jaas.conf”文件进行配置。
2、导出Jar包。
- 右击样例工程,选择导出。
图1导出jar包

- 选择JAR file,单击“Next”。
图2选择JAR file

- 勾选“src”和“conf”目录,导出Jar包到指定位置。单击两次“Next”。
图3选择导出路径

- 单击“Browse”,选择Main class,并单击“OK”。
图4选择main函数类

- 单击“Finish”,完成导出Jar包。
3、准备依赖的Jar包和配置文件。
- 在Linux环境新建目录,例如“/opt/test”,并创建子目录“lib”和“conf”。将样例工程中“lib”的Jar包,以及步骤 2导出的Jar包上传到Linux的“lib”目录。将样例工程中“conf”的配置文件上传到Linux中“conf”目录。
在“/opt/test”根目录新建脚本“run.sh”,修改内容如下并保存:
!/bin/sh
BASEDIR=
cd $(dirname $0);pwdcd ${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为举例,具体以实际样例代码为准。
4、切换到“/opt/test”,执行以下命令,运行Jar包。
sh run.sh