你好杰米 2018-06-13 07:35 采纳率: 87.5%
浏览 3055
已采纳

sqoop1使用java报Can't get Kerberos principal renewer

全部代码如下

**sqoop1使用java api过Kerberos出现Can't get Master Kerberos principal for use as renewer
**

 public class SqoopTest {

    public static void main(String[] args) throws Exception {
        // =================================================================
        Configuration conf = new Configuration();
        conf.set("fs.default.name", "hdfs://101.30.188.246:9000/");//设置HDFS服务地址
        String keytabFile = "/home/hcj/tab/hdfs.keytab";
        String principle = "hdfs@MSO.COM";
        String krbConf = "/home/hcj/krb5.conf";
        System.setProperty("java.security.krb5.conf", krbConf);
        conf.set("hadoop.security.authentication", "Kerberos");
        //conf.setBoolean("fs.hdfs.imHADOpl.disable.cache", true);
        conf.set("keytab.file", keytabFile);
        UserGroupInformation.setConfiguration(conf);
        UserGroupInformation.loginUserFromKeytab(principle, keytabFile);
        // =================================================================
        String[] arg = new String[] {
                // Oracle数据库信息

                /*
                 * sqoop export --connect  jdbc:mysql://127.0.0.1:3306/test  --username jamie  --table  
                 * persons --export-dir /user/hive/warehouse/dw_api_server.db/persons2/ 
                 * --input-fields-terminated-by '\t' --input-lines-terminated-by '\n'
                 */
                "--connect","jdbc:mysql://114.115.156.37:3306/test",
                "--username","root",
                "--password","root",
                "--table","persons",
                "--m","1",
                "--export-dir","hdfs://101.30.188.246:9000/user/hive/warehouse/dw_api_server.db/persons/",
                "--input-fields-terminated-by","\t"
                //"-columns","id,city"
        };



        String[] expandArguments = OptionsFileUtil.expandArguments(arg);
        SqoopTool tool = SqoopTool.getTool("export");

        Configuration loadPlugins = SqoopTool.loadPlugins(conf);




        Sqoop sqoop = new Sqoop((com.cloudera.sqoop.tool.SqoopTool) tool, loadPlugins);
        int res = Sqoop.runSqoop(sqoop, expandArguments);
        if (res == 0)
            System.out.println ("成功");

    }

}

报错

 java.io.IOException: Can't get Master Kerberos principal for use as renewer
    at org.apache.hadoop.mapreduce.security.TokenCache.obtainTokensForNamenodesInternal(TokenCache.java:133)
    at org.apache.hadoop.mapreduce.security.TokenCache.obtainTokensForNamenodesInternal(TokenCache.java:100)
    at org.apache.hadoop.mapreduce.security.TokenCache.obtainTokensForNamenodes(TokenCache.java:80)
    at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:166)
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1290)
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1287)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:422)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1866)
    at org.apache.hadoop.mapreduce.Job.submit(Job.java:1287)
    at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1308)
    at org.apache.sqoop.mapreduce.ExportJobBase.doSubmitJob(ExportJobBase.java:322)
    at org.apache.sqoop.mapreduce.ExportJobBase.runJob(ExportJobBase.java:299)
    at org.apache.sqoop.mapreduce.ExportJobBase.runExport(ExportJobBase.java:440)
    at org.apache.sqoop.manager.SqlManager.exportTable(SqlManager.java:931)
    at org.apache.sqoop.tool.ExportTool.exportTable(ExportTool.java:80)
    at org.apache.sqoop.tool.ExportTool.run(ExportTool.java:99)
    at org.apache.sqoop.Sqoop.run(Sqoop.java:147)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
    at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)
    at com.mshuoke.datagw.impl.sqoop.SqoopTest.main(SqoopTest.java:58)

求解

  • 写回答

1条回答

  • threenewbee 2018-06-13 07:46
    关注

    这个似乎和你的问题类似 http://lookqlp.iteye.com/blog/2162495
    增加yarn gateway

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 STM32驱动继电器