Uploaded image for project: 'Ambari'
  1. Ambari
  2. AMBARI-23286

check_fs_root() in hive_service.py may replace Hive HDFS locations with ":8020:8020"

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 2.6.1
    • 2.6.1
    • ambari-server
    • None

    Description

      Modify check_fs_root() in hive_services.py to check if "fs_root" and "out" are not endswith('/'), append '/'

       

      Background

      When hive's metatstore database table 'DBS' contains a HDFS location which doesn't contain any port number, Ambari may incorrectly replace the HDFS locations.

      For example, "hdfs://sandbox-hdp.hortonworks.com/apps/hive/warehouse/dummies.db" should be a valid location:

      [hive@sandbox-hdp ~]$ hive --config /usr/hdp/current/hive-server2/conf/conf.server --service metatool -listFSRoot 2>/dev/null
      Initializing HiveMetaTool..
      Listing FS Roots..
      hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/foodmart.db
      hdfs://sandbox-hdp.hortonworks.com/apps/hive/warehouse/dummies.db
      hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/xademo.db
      hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse
      

      Ambari uses same command as below:

      [hive@sandbox-hdp ~]$ hive --config /usr/hdp/current/hive-server2/conf/conf.server --service metatool -listFSRoot 2>/dev/null | grep hdfs:// | cut -f1,2,3 -d '/' | grep -v 'hdfs://sandbox-hdp.hortonworks.com:8020' | head -1
      hdfs://sandbox-hdp.hortonworks.com
      

      Then tries to update location with same command as below (except dryRun), which breaks Hive completely.

      [hive@sandbox-hdp ~]$ hive --config /usr/hdp/current/hive-server2/conf/conf.server --service metatool -updateLocation hdfs://sandbox-hdp.hortonworks.com:8020 hdfs://sandbox-hdp.hortonworks.com -dryRun
      Initializing HiveMetaTool..
      ... (snip)...
      Looking for LOCATION_URI field in DBS table to update..
      Dry Run of updateLocation on table DBS..
      old location: hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/foodmart.db new location: hdfs://sandbox-hdp.hortonworks.com:8020:8020/apps/hive/warehouse/foodmart.db
      old location: hdfs://sandbox-hdp.hortonworks.com/apps/hive/warehouse/dummies.db new location: hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/dummies.db
      old location: hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/xademo.db new location: hdfs://sandbox-hdp.hortonworks.com:8020:8020/apps/hive/warehouse/xademo.db
      old location: hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse new location: hdfs://sandbox-hdp.hortonworks.com:8020:8020/apps/hive/warehouse
      Found 4 records in DBS table to update
      Looking for LOCATION field in SDS table to update..
      Dry Run of updateLocation on table SDS..
      old location: hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/dummies.db/emp_part_bckt/department=A new location: hdfs://sandbox-hdp.hortonworks.com:8020:8020/apps/hive/warehouse/dummies.db/emp_part_bckt/department=A
      old location: hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/dummies.db/emp_part_bckt/department=B new location: hdfs://sandbox-hdp.hortonworks.com:8020:8020/apps/hive/warehouse/dummies.db/emp_part_bckt/department=B
      old location: hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/dummies.db/hdfs_audit new location: hdfs://sandbox-hdp.hortonworks.com:8020:8020/apps/hive/warehouse/dummies.db/hdfs_audit
      old location: hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/test2 new location: hdfs://sandbox-hdp.hortonworks.com:8020:8020/apps/hive/warehouse/test2
      old location: hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/xademo.db/recharge_details new location: hdfs://sandbox-hdp.hortonworks.com:8020:8020/apps/hive/warehouse/xademo.db/recharge_details
      old location: hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/dummies.db/sample_07_orc new location: hdfs://sandbox-hdp.hortonworks.com:8020:8020/apps/hive/warehouse/dummies.db/sample_07_orc
      old location: hdfs://sandbox-hdp.hortonworks.com/tmp/emp_stage_data new location: hdfs://sandbox-hdp.hortonworks.com:8020/tmp/emp_stage_data
      old location: hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/dummies.db/emp_part_bckt/department=C new location: hdfs://sandbox-hdp.hortonworks.com:8020:8020/apps/hive/warehouse/dummies.db/emp_part_bckt/department=C
      old location: hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/dummies.db/emp_part_bckt new location: hdfs://sandbox-hdp.hortonworks.com:8020:8020/apps/hive/warehouse/dummies.db/emp_part_bckt
      old location: hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/dummies.db/emp_part_bckt/department=D new location: hdfs://sandbox-hdp.hortonworks.com:8020:8020/apps/hive/warehouse/dummies.db/emp_part_bckt/department=D
      old location: hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/xademo.db/call_detail_records new location: hdfs://sandbox-hdp.hortonworks.com:8020:8020/apps/hive/warehouse/xademo.db/call_detail_records
      old location: hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/xademo.db/customer_details new location: hdfs://sandbox-hdp.hortonworks.com:8020:8020/apps/hive/warehouse/xademo.db/customer_details
      old location: hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/foodmart.db/customer new location: hdfs://sandbox-hdp.hortonworks.com:8020:8020/apps/hive/warehouse/foodmart.db/customer
      old location: hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/sample_08 new location: hdfs://sandbox-hdp.hortonworks.com:8020:8020/apps/hive/warehouse/sample_08
      old location: hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/foodmart.db/product new location: hdfs://sandbox-hdp.hortonworks.com:8020:8020/apps/hive/warehouse/foodmart.db/product
      old location: hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/sample_07 new location: hdfs://sandbox-hdp.hortonworks.com:8020:8020/apps/hive/warehouse/sample_07
      old location: hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/foodmart.db/sales_fact_1998 new location: hdfs://sandbox-hdp.hortonworks.com:8020:8020/apps/hive/warehouse/foodmart.db/sales_fact_1998
      old location: hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/foodmart.db/inventory_fact_1998 new location: hdfs://sandbox-hdp.hortonworks.com:8020:8020/apps/hive/warehouse/foodmart.db/inventory_fact_1998
      old location: hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/dummies.db/census new location: hdfs://sandbox-hdp.hortonworks.com:8020:8020/apps/hive/warehouse/dummies.db/census
      old location: hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/foodmart.db/store new location: hdfs://sandbox-hdp.hortonworks.com:8020:8020/apps/hive/warehouse/foodmart.db/store
      old location: hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/dummies.db/census_clus new location: hdfs://sandbox-hdp.hortonworks.com:8020:8020/apps/hive/warehouse/dummies.db/census_clus
      old location: hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/dummies.db/sample_08 new location: hdfs://sandbox-hdp.hortonworks.com:8020:8020/apps/hive/warehouse/dummies.db/sample_08
      old location: hdfs://sandbox-hdp.hortonworks.com:8020/apps/hive/warehouse/dummies.db/sample_07 new location: hdfs://sandbox-hdp.hortonworks.com:8020:8020/apps/hive/warehouse/dummies.db/sample_07
      Found 23 records in SDS table to update
      

      Lines from output-9505.txt

      2018-02-27 20:16:42,747 - call['ambari-sudo.sh su hive -l -s /bin/bash -c 'hive --config /usr/hdp/current/hive-server2/conf/conf.server --service metatool -listFSRoot' 2>/dev/null | grep hdfs:// | cut -f1,2,3 -d '/' | grep -v 'hdfs://farmerm.hw262.com:8020' | head -1'] {}
      2018-02-27 20:16:48,897 - call returned (0, 'hdfs://farmerm.hw262.com')
      2018-02-27 20:16:48,898 - Execute['hive --config /usr/hdp/current/hive-server2/conf/conf.server --service metatool -updateLocation hdfs://farmerm.hw262.com:8020 hdfs://farmerm.hw262.com'] {'environment': {'PATH': u'/usr/sbin:/sbin:/usr/lib/ambari-server/*:/sbin:/usr/sbin:/bin:/usr/bin:/var/lib/ambari-agent:/usr/hdp/current/hive-server2/bin:/usr/hdp/current/hadoop-client/bin'}, 'user': 'hive'}

      Attachments

        Activity

          People

            mahadev Mahadev Konar
            jgolieb Jason Golieb
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: