Updated on 2024-08-10 GMT+08:00

Commissioning an Application in the Linux Environment

Scenario

The Hadoop distributed file system (HDFS) application can run in the Linux operating system (OS) with the HDFS client installed. After the application code has been developed, you can upload the jar packages to the HDFS client and run the application.

After an HDFS application is run, you can learn the application running conditions by viewing the running result or HDFS logs.

Prerequisite

  • When the client is installed:
    • The HDFS client has been installed.
    • When the host where the Linux OS runs is not a node of the cluster, you are required to set the mapping between the host name and IP address in the hosts file of the node where the client is installed. The host name must be correctly mapped to the IP address.
  • When the client is not installed:
    • A JDK has been installed in the Linux environment. The version of the JDK must be consistent with that of the JDK used by IDEA to export the JAR package.
    • When the host where the Linux OS runs is not a node of the cluster, you are required to set the mapping between the host name and IP address in the hosts file of the node where the Linux OS runs. The host name must be correctly mapped to the IP address.

Compiling and Running an Application With the Client Installed

  1. Go to the local root directory of the project, copy the required configuration file to the conf folder of the local project, and run the following command in Windows cmd to compress the package:

    mvn -s "{maven_setting_path}" clean package

    • In the preceding command, {maven_setting_path} is the path of the settings.xml file of the local Maven.
    • After the package is successfully packed, obtain the JAR package, for example, HDFSTest-XXX.jar, from the target subdirectory in the root directory of the project. The name of the JAR package varies according to the actual package.

  2. Upload the exported jarpackages to any directory in the running environment of the client, for example, /opt/client.
  3. Configure the environment variables:

    cd /opt/client

    source bigdata_env

  4. Run the following commands to execute the jar packages.

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

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

    When com.huawei.bigdata.hdfs.examples.ColocationExample is run, the HDFSparameter fs.defaultFS cannot be set to viewfs://ClusterX.

Compiling and Running an Application With the Client Not Installed

  1. Go to the local root directory of the project, copy the required configuration file to the conf folder of the local project and run the following command in Windows cmd to compress the package:

    mvn -s "{maven_setting_path}" clean package

    • In the preceding command, {maven_setting_path} is the path of the settings.xml file of the local Maven.
    • After the package is successfully packed, obtain the JAR package from the target subdirectory in the root directory of the project.

  2. Upload the exported jar packages to any directory in the running environment of the Linux OS, for example, /opt/hadoop_client.
  3. Upload the lib and conf folders of the project to the same directory that stores the jar packages (the lib Create a lib folder in the Linux operating environment directory (for example, /opt/Bigdata/client) and upload the required JAR packages. The lib folder contains all the JAR packages that the project depends on. For details, see section Preparing an Operating Environment.
  4. Run the following commands to execute the jar packages.

    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

    When com.huawei.bigdata.hdfs.examples.ColocationExample is run, the HDFSparameter fs.defaultFS cannot be set to viewfs://ClusterX.

Checking the Commissioning Result

  • Learn the application running conditions by viewing the running result.
    • The running result of the HDFS example application is shown as follows:
      0    [main] INFO  org.apache.hadoop.security.UserGroupInformation  - Login successful for user hdfsDevelop using keytab file user.keytab
      1    [main] INFO  com.huawei.hadoop.security.LoginUtil  - Login success!!!!!!!!!!!!!!
      568  [main] WARN  org.apache.hadoop.util.NativeCodeLoader  - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
      582  [main] WARN  org.apache.hadoop.hdfs.shortcircuit.DomainSocketFactory  - The short-circuit local reads feature cannot be used because libhadoop cannot be loaded.
      793  [main] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to create path /user/hdfs-examples
      969  [main] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to write.
      1068 [main] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to append.
      1191 [main] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - result is : hi, I am bigdata. It is successful if you can see me.I append this content.
      1191 [main] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to read.
      1202 [main] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to delete the file /user/hdfs-examples/test.txt
      1210 [main] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to delete path /user/hdfs-examples
      1223 [hdfs_example_0] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to create path /user/hdfs-examples/hdfs_example_0
      1224 [hdfs_example_1] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to create path /user/hdfs-examples/hdfs_example_1
      1261 [hdfs_example_0] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to write.
      1264 [hdfs_example_1] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to write.
      2807 [hdfs_example_0] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to append.
      2810 [hdfs_example_1] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to append.
      2861 [hdfs_example_0] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - result is : hi, I am bigdata. It is successful if you can see me.I append this content.
      2861 [hdfs_example_0] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to read.
      2866 [hdfs_example_0] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to delete the file /user/hdfs-examples/hdfs_example_0/test.txt
      2874 [hdfs_example_0] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to delete path /user/hdfs-examples/hdfs_example_0
      2874 [hdfs_example_1] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - result is : hi, I am bigdata. It is successful if you can see me.I append this content.
      2874 [hdfs_example_1] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to read.
      2879 [hdfs_example_1] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to delete the file /user/hdfs-examples/hdfs_example_1/test.txt
      2885 [hdfs_example_1] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to delete path /user/hdfs-examples/hdfs_example_1
    • The running result of the Colocation example application is shown as follows:
      0    [main] INFO  com.huawei.hadoop.security.LoginUtil  - JaasConfiguration loginContextName=Client principal=hdfsDevelop useTicketCache=false keytabFile=/opt/hdfsDemo/conf/user.keytab
      817  [main] INFO  org.apache.hadoop.security.UserGroupInformation  - Login successful for user hdfsDevelop using keytab file user.keytab
      817  [main] INFO  com.huawei.hadoop.security.LoginUtil  - Login success!!!!!!!!!!!!!!
      1380 [main] WARN  org.apache.hadoop.util.NativeCodeLoader  - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
      ...
      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.
      ...
  • Learn the application running conditions by viewing HDFS logs.

    The namenode logs of HDFS offer immediate visibility into application running conditions. You can adjust application programs based on the logs.