更新时间:2024-10-23 GMT+08:00

在Linux环境中调测HDFS应用

操作场景

HDFS应用程序支持在Linux环境中运行。在程序代码完成开发后,可以上传Jar包至准备好的Linux环境中运行。

HDFS应用程序运行完成后,可直接通过运行结果查看应用程序运行情况,也可以通过HDFS日志获取应用运行情况。

前提条件

  • 已安装客户端时:
    • 已安装HDFS客户端。
    • 当客户端所在主机不是集群中的节点时,需要在客户端所在节点的hosts文件中设置主机名和IP地址映射。主机名和IP地址请保持一一对应。
  • 未安装客户端时:
    • Linux环境已安装JDK,版本号需要和IDEA导出Jar包使用的JDK版本一致。
    • 当Linux环境所在主机不是集群中的节点时,需要在Linux环境所在节点的hosts文件中设置主机名和IP地址映射。主机名和IP地址请保持一一对应。

已安装客户端时编译并运行程序

  1. 进入样例工程本地根目录,在Windows命令提示符窗口中执行下面命令进行打包。

    mvn -s "{maven_setting_path}" clean package

    • 上述打包命令中的{maven_setting_path}为本地Maven的“settings.xml”文件路径。
    • 打包成功之后,在工程根目录的target子目录下获取打好的jar包,例如“HDFSTest-XXX.jar”,jar包名称以实际打包结果为准。

  2. 将导出的Jar包上传至Linux客户端运行环境的任意目录下,例如“/opt/client”。
  3. 配置环境变量:

    cd /opt/client

    source bigdata_env

  4. 运行此样例代码需要设置运行用户,设置运行用户有两种方式,添加环境变量HADOOP_USER_NAME或者修改代码设置运行用户。若在没有修改代码的场景下,执行以下语句添加环境变量:

    export HADOOP_USER_NAME=test

    用户可向管理员咨询运行用户。test在这里只是举例,若需运行Colocation相关操作的样例代码,则此用户需属supergroup用户组。

  5. 执行如下命令,运行Jar包。

    hadoop jar HDFSTest-XXX.jar com.huawei.bigdata.hdfs.examples.HdfsExample

    hadoop jar HDFSTest-XXX.jar com.huawei.bigdata.hdfs.examples.ColocationExample

    在运行com.huawei.bigdata.hdfs.examples.ColocationExample时,HDFS的配置项“fs.defaultFS”不能配置为“viewfs://ClusterX”。

未安装客户端时编译并运行程序

  1. 进入工程本地根目录,在Windows命令提示符窗口中执行下面命令进行打包。

    mvn -s "{maven_setting_path}" clean package

    • 上述打包命令中的{maven_setting_path}为本地Maven的“settings.xml”文件路径。
    • 打包成功之后,在工程根目录的target子目录下获取打好的jar包。

  2. 将导出的Jar包上传至Linux运行环境的任意目录下,例如“/optclient”
  3. 将工程中的“lib”文件夹和“conf”文件夹上传至和Jar包相同的Linux运行环境目录下,例如“/opt/client”(其中“lib”目录汇总包含了工程中依赖的所有的Jar包,“conf”目录包含运行jar包所需的集群相关配置文件,请参考准备运行环境)。
  4. 运行此样例代码需要设置运行用户,设置运行用户有两种方式,添加环境变量HADOOP_USER_NAME或者修改代码设置运行用户。若在没有修改代码的场景下,执行以下语句添加环境变量:

    export HADOOP_USER_NAME=test

    用户可向管理员咨询运行用户。test在这里只是举例,若需运行Colocation相关操作的样例代码,则此用户需属supergroup用户组。

  5. 执行如下命令运行Jar包。

    java -cp HDFSTest-XXX.jar:conf/:lib/* com.huawei.bigdata.hdfs.examples.HdfsExample

    java -cp HDFSTest-XXX.jar:conf/:lib/* com.huawei.bigdata.hdfs.examples.ColocationExample

    在运行com.huawei.bigdata.hdfs.examples.ColocationExample:时,HDFS的配置项“fs.defaultFS”不能配置为“viewfs://ClusterX”。

查看调测结果

  • 查看运行结果获取应用运行情况
    • HdfsExample Linux样例程序运行结果如下所示。
      [root@192-168-32-144 client]#hadoop jar HDFSTest-XXX.jar com.huawei.bigdata.hdfs.examples.HdfsExample
      WARNING: Use "yarn jar" to launch YARN applications.
      17/10/26 19:11:44 INFO examples.HdfsExample: success to create path /user/hdfs-examples
      17/10/26 19:11:44 INFO examples.HdfsExample: success to write.
      17/10/26 19:11:45 INFO examples.HdfsExample: success to append.
      17/10/26 19:11:45 INFO examples.HdfsExample: result is : hi, I am bigdata. It is successful if you can see me.I append this content.
      17/10/26 19:11:45 INFO examples.HdfsExample: success to read.
      17/10/26 19:11:45 INFO examples.HdfsExample: success to delete the file /user/hdfs-examples/test.txt
      17/10/26 19:11:45 INFO examples.HdfsExample: success to delete path /user/hdfs-examples
      17/10/26 19:11:45 INFO examples.HdfsExample: success to create path /user/hdfs-examples/hdfs_example_1
      17/10/26 19:11:45 INFO examples.HdfsExample: success to create path /user/hdfs-examples/hdfs_example_0
      17/10/26 19:11:45 INFO examples.HdfsExample: success to write.
      17/10/26 19:11:45 INFO examples.HdfsExample: success to write.
      17/10/26 19:11:46 INFO examples.HdfsExample: success to append.
      17/10/26 19:11:46 INFO examples.HdfsExample: result is : hi, I am bigdata. It is successful if you can see me.I append this content.
      17/10/26 19:11:46 INFO examples.HdfsExample: success to read.
      17/10/26 19:11:46 INFO examples.HdfsExample: success to delete the file /user/hdfs-examples/hdfs_example_1/test.txt
      17/10/26 19:11:46 INFO examples.HdfsExample: success to delete path /user/hdfs-examples/hdfs_example_1
      17/10/26 19:11:46 INFO examples.HdfsExample: success to append.
      17/10/26 19:11:46 INFO examples.HdfsExample: result is : hi, I am bigdata. It is successful if you can see me.I append this content.
      17/10/26 19:11:46 INFO examples.HdfsExample: success to read.
      17/10/26 19:11:46 INFO examples.HdfsExample: success to delete the file /user/hdfs-examples/hdfs_example_0/test.txt
      17/10/26 19:11:46 INFO examples.HdfsExample: success to delete path /user/hdfs-examples/hdfs_example_0
    • ColocationExample Linux样例程序运行结果如下所示。
      [root@192-168-32-144 client]#hadoop jar HDFSTest-XXX.jar com.huawei.bigdata.hdfs.examples.ColocationExample
      WARNING: Use "yarn jar" to launch YARN applications.
      17/10/26 19:12:38 INFO zookeeper.ZooKeeper: Client environment:zookeeper.version=xxx, built on 10/19/2017 04:21 GMT
      17/10/26 19:12:38 INFO zookeeper.ZooKeeper: Client environment:host.name=192-168-32-144
      17/10/26 19:12:38 INFO zookeeper.ZooKeeper: Client environment:java.version=1.8.0_144
      17/10/26 19:12:38 INFO zookeeper.ZooKeeper: Client environment:java.vendor=Oracle Corporation
      17/10/26 19:12:38 INFO zookeeper.ZooKeeper: Client environment:java.home=/opt/client/JDK/jdk1.8.0_144/jre
      ......
      Create Group has finished.
      Put file is running...
      Put file has finished.
      Delete file is running...
      Delete file has finished.
      Delete Group is running...
      Delete Group has finished.
      17/10/26 19:12:39 INFO zookeeper.ZooKeeper: Session: 0x13000074b7e4687f closed
      17/10/26 19:12:39 INFO zookeeper.ClientCnxn: EventThread shut down for session: 0x13000074b7e4687f
      17/10/26 19:12:39 INFO zookeeper.ZooKeeper: Session: 0x12000059699f69e1 closed
      17/10/26 19:12:39 INFO zookeeper.ClientCnxn: EventThread shut down for session: 0x12000059699f69e1
  • 查看HDFS日志获取应用运行情况

可以查看HDFS的namenode日志了解应用运行情况,并根据日志信息调整应用程序。