未安装客户端时编译并运行程序
操作场景
HDFS应用程序支持在未安装HDFS客户端的Linux环境中运行。在程序代码完成开发后,可以上传Jar包至Linux环境中运行应用。
前提条件
- 已安装1.7或1.8版本的JDK。
- 当Linux环境所在主机不是集群中的节点时,需要在Linux环境所在节点的hosts文件中设置主机名和IP地址映射。主机名和IP地址请保持一一对应。
操作步骤
(可选)如果使用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”文件进行配置。
导出HDFS应用可执行包。右键选择工程,选择“Export”,如图1所示。 图1导出jar包
选择导出“JAR file”,如图2所示。 图2选择JAR file
选择包的导出路径,然后单击“Next”。在弹出的页面再单击“Next”。
- 导出“hdfs-example.jar”时,只需选择src文件夹即可,如图3所示。
图3选择导出路径
- (可选)如果使用SmallFS小文件样例代码,导出“smallfs-example.jar”包时,只需选择src文件夹即可,如图4所示。
图4选择导出路径
- 导出“colocation-example.jar”时,只需选择src文件夹即可,如图5所示。
图5选择导出路径
- 导出“hdfs-example.jar”时,只需选择src文件夹即可,如图3所示。
图3选择导出路径
选择main函数入口类。
- 导出“hdfs-example.jar”包时,选择HdfsMain,如图6所示。
图6选择main函数类
- (可选)如果使用SmallFS小文件样例代码,导出“smallfs-example.jar”包时,选择HdfsMain,如图6所示。
- 导出“colocation-example.jar”包时,选择ColocationExample,如图7所示。
图7选择main函数类
- 导出“hdfs-example.jar”包时,选择HdfsMain,如图6所示。
图6选择main函数类
将导出的Jar包拷贝上传至Linux运行环境的任意目录下,例如“/opt/hadoop_client”。
- 将工程中的“lib”文件夹和“conf”文件夹上传至和Jar包相同的Linux运行环境目录下,例如“/opt/hadoop_client”。
- (可选)如果运行SmallFS小文件样例,打开上传的“conf”文件夹,将“core-site.xml”文件中的配置项“fs.defaultFS”由“hdfs://hacluster”改成“sfs://hacluster”。
- 执行如下命令运行Jar包。
java -cphdfs-example.jar:conf/:lib/* com.huawei.bigdata.hdfs.examples.HdfsMain java -cpcolocation-example.jar:conf/:lib/* com.huawei.bigdata.hdfs.examples.ColocationExample (可选)java -cpsmallfs-example.jar:conf/:lib/* com.huawei.bigdata.hdfs.examples.HdfsMain