Kerberos Exception在本地启动Spark

时间:2017-03-02 17:56:22

标签: scala unit-testing apache-spark kerberos

我正在尝试设置Spark Testng单元测试:

$(document).ready(function () {

    var table1 = [];
    var table2 = [];
    var table3 = [];
    var table4 = [];
    var names = [];
    var pref = [];

    function seat() {
        for (var i = 0; i < names.length; i++) {
            if (pref != "") {
                if (pref == names[i]) {
                    var who = names[i];
                    function prandomize(min, max) {
                        var pr = Math.floor(Math.random() * (max - min + 1)) + min;
                        if (pr == 1) {
                            table1.push(names[i]);
                            table1.push(who);
                        } else if (pr == 2) {
                            table2.push(names[i]);
                            table2.push(who);
                        } else if (pr == 3) {
                            table3.push(names[i]);
                            table3.push(who);
                        } else if (pr == 4) {
                            table4.push(names[i]);
                            table4.push(who);
                        } else {
                            return "Error: Contact Source Code Author!!";
                        }
                    }
                }
            }

            function randomize(min, max) {
                var r = Math.floor(Math.random() * (max - min + 1)) + min;
                if (r == 1) {
                    table1.push(names[i]);
                } else if (r == 2) {
                    table2.push(names[i]);
                } else if (r == 3) {
                    table3.push(names[i]);
                } else if (r == 4) {
                    table4.push(names[i]);
                } else {
                    return "Error: Contact Source Code Author!!";
                }
            }
            randomize(1, 4);
        };
        console.log(table1);
        console.log(table2);
        console.log(table3);
        console.log(table4);
        console.log("first call");
    };

    var htable1 = document.getElementById('t1');
    var htable11 = document.getElementById('t11');
    var htable111 = document.getElementById('t111');
    var htable1111 = document.getElementById('t1111');
    var htable11111 = document.getElementById('t11111');
    var htable111111 = document.getElementById('t111111');

    var htable2 = document.getElementById('t2');
    var htable22 = document.getElementById('t22');
    var htable222 = document.getElementById('t222');
    var htable2222 = document.getElementById('t2222');
    var htable22222 = document.getElementById('t22222');
    var htable222222 = document.getElementById('t222222');

    var htable3 = document.getElementById('t3');
    var htable33 = document.getElementById('t33');
    var htable333 = document.getElementById('t333');
    var htable3333 = document.getElementById('t3333');
    var htable33333 = document.getElementById('t33333');
    var htable333333 = document.getElementById('t333333');

    var htable4 = document.getElementById('t4');
    var htable44 = document.getElementById('t44');
    var htable444 = document.getElementById('t444');
    var htable4444 = document.getElementById('t4444');
    var htable44444 = document.getElementById('t44444');
    var htable444444 = document.getElementById('t444444');

    function check() {
        var stable1 = table1.slice().sort();
        for (var i = 0; i < table1.length - 1; i++) {
            if (stable1[i + 1] == stable1[i]) {
                table1.splice(i, 1);
                console.log("removed");
            }
        }
        if (table1.length > 6) {
            while (table1.length > 6) {
                var lastvalue = table1.pop();
                table2.push(lastvalue);
                console.log("moved to table2");
            }
        }
        if (table2.length > 6) {
            while (table2.length > 6) {
                var lastvalue2 = table2.pop();
                table3.push(lastvalue2);
                console.log("moved to table3");
            }
        }
        if (table3.length > 6) {
            while (table3.length > 6) {
                var lastvalue3 = table3.pop();
                table4.push(lastvalue3);
                console.log("moved to table4");
            }
        }
        if (table4.length > 6) {
            while (table4.length > 6) {
                var lastvalue4 = table4.pop();
                table1.push(lastvalue4);
                console.log("moved to table1");
            }
        }
    }

    function changeHTML() {
        htable1.innerHTML = table1[0];
        htable11.innerHTML = table1[1];
        htable111.innerHTML = table1[2];
        htable1111.innerHTML = table1[3];
        htable11111.innerHTML = table1[4];
        htable111111.innerHTML = table1[5];

        htable2.innerHTML = table2[0];
        htable22.innerHTML = table2[1];
        htable222.innerHTML = table2[2];
        htable2222.innerHTML = table2[3];
        htable22222.innerHTML = table2[4];
        htable222222.innerHTML = table2[5];

        htable3.innerHTML = table3[0];
        htable33.innerHTML = table3[1];
        htable333.innerHTML = table3[2];
        htable3333.innerHTML = table3[3];
        htable33333.innerHTML = table3[4];
        htable333333.innerHTML = table3[5];

        htable4.innerHTML = table4[0];
        htable44.innerHTML = table4[1];
        htable444.innerHTML = table4[2];
        htable4444.innerHTML = table4[3];
        htable44444.innerHTML = table4[4];
        htable444444.innerHTML = table4[5];
    }

    function namesdefine() {
        names.push(document.getElementById('nameone').value);
        names.push(document.getElementById('nametwo').value);
        names.push(document.getElementById('namethree').value);
        names.push(document.getElementById('namefour').value);
        names.push(document.getElementById('namefive').value);
        names.push(document.getElementById('namesix').value);
        names.push(document.getElementById('nameseven').value);
        names.push(document.getElementById('nameeight').value);
        names.push(document.getElementById('namenine').value);
        names.push(document.getElementById('nameten').value);
        names.push(document.getElementById('nameeleven').value);
        names.push(document.getElementById('nametwelve').value);
        names.push(document.getElementById('namethirteen').value);
        names.push(document.getElementById('namefourteen').value);
        names.push(document.getElementById('namefifthteen').value);
        names.push(document.getElementById('namesixteen').value);
        names.push(document.getElementById('nameseventeen').value);
        names.push(document.getElementById('nameeighteen').value);
        names.push(document.getElementById('namenineteen').value);
        names.push(document.getElementById('nametwenty').value);
        names.push(document.getElementById('nametwentyone').value);
        names.push(document.getElementById('nametwentytwo').value);
        names.push(document.getElementById('nametwentythree').value);
        names.push(document.getElementById('nametwentyfour').value);
        console.log(names);
        var testvar = document.getElementById('nameone').value;
        console.log(testvar);
        console.log("Look here please");
    }

    function prefsdefine() {
        pref.push(document.getElementById('prefone').value);
        pref.push(document.getElementById('preftwo').value);
        pref.push(document.getElementById('prefthree').value);
        pref.push(document.getElementById('preffour').value);
        pref.push(document.getElementById('preffive').value);
        pref.push(document.getElementById('prefsix').value);
        pref.push(document.getElementById('prefseven').value);
        pref.push(document.getElementById('prefeight').value);
        pref.push(document.getElementById('prefnine').value);
        pref.push(document.getElementById('preften').value);
        pref.push(document.getElementById('prefeleven').value);
        pref.push(document.getElementById('preftwelve').value);
        pref.push(document.getElementById('prefthirteen').value);
        pref.push(document.getElementById('preffourteen').value);
        pref.push(document.getElementById('preffifthteen').value);
        pref.push(document.getElementById('prefsixteen').value);
        pref.push(document.getElementById('prefseventeen').value);
        pref.push(document.getElementById('prefeightteen').value);
        pref.push(document.getElementById('prefnineteen').value);
        pref.push(document.getElementById('preftwenty').value);
        pref.push(document.getElementById('preftwentyone').value);
        pref.push(document.getElementById('preftwentytwo').value);
        pref.push(document.getElementById('preftwentythree').value);
        pref.push(document.getElementById('preftwentyfour').value);

    }

    document.getElementById('sbm').addEventListener('click', function (e) {
        e.preventDefault();
        namesdefine();
        prefsdefine();
        seat();
        check();
        check();
        check();
        changeHTML();
    });

    console.log(table1);
    console.log(table2);
    console.log(table3);
    console.log(table4);
    console.log("second call");
    console.log(pref);

});

代码失败:@Test def testStuff(): Unit = { val sc = new SparkContext(new SparkConf().setAppName("test").setMaster("local")) ... }

我错过了什么?

1 个答案:

答案 0 :(得分:1)

该错误表明您的JVM无法找到kerberos配置(krb5.conf文件)。

根据您公司的环境/基础设施,您可以选择以下几种方式:

  1. 检查贵公司是否有标准库来设置kerberos身份验证。
  2. 或者尝试:
    • 设置JVM属性:-Djava.security.krb5.conf=/file-path/for/krb5.conf
    • krb5.conf文件放入<jdk-home>/jre/lib/security文件夹