关于大数据:大数据开发解决Windows下开发环境常遇的几个问题

7次阅读

共计 1472 个字符,预计需要花费 4 分钟才能阅读完成。

1. 背景

大数据开发的测试环境,很多人不以为然,其实反复的打包,上传,测试尽管每次工夫大略也就几分钟,然而积攒起了往往会破费很多的工夫,然而一个残缺的测试环境在生产环境下往往难造成闭环,抛开堡垒机权限不说,hadoop,hive,spark 等服务端的权限也会难倒一群英雄好汉,次要是太繁琐了,测试环境的搭建,我这里采纳 Docker 容器,适宜多端迁徙,而且容器的镜像大小也比虚拟机小很多,难度上说,也只须要把握几个根底的命令即可,除非想引入 K8s 等技术,但测试环境齐全没必要,Docker 环境搭建大数据平台的系列从这里大数据开发 -Docker- 应用 Docker10 分钟疾速搭建大数据环境,Hadoop、Hive、Spark、Hue、Kafka、ElasticSearch…..[https://blog.csdn.net/hu_lichao/article/details/112125800](https://blog.csdn.net/hu_lichao/article/details/112125800),环境搭建好了,可能还是会有一些非凡的问题

2. 如何解决缺失 winutils.exe

在 Win 操作系统,idea 下开发 hadoop 程序或者 Spark 程序,那么你必定会遇到上面的问题

之所以呈现下面的问题,Spark 程序和 Hadoop 在 idea 写编写的程序是依赖 hadoop 的环境的,所以要提前配置好,并且设定HADOOP_HOME,不肯定须要$HADOOP_HOME/binPATH,后者是给快捷方式用的

留神:配置完环境变量后要将 idea,退出后重进,不能Restart

3. 如何解决 java.lang.NoSuchMethodError: org.apache.hadoop.security.authentication.util.KerberosUtil.hasKerberosKeyTab(Ljavax/security/auth/Subject;)Z

谬误如下图

呈现这个问题的起因是版本抵触,即便看起来不那么显著,可能是 spark 依赖的包中的 hadoop 和 hadoop 依赖的版本不统一 https://stackoverflow.com/questions/45470320/what-is-the-kerberos-method,具体不统一的问题,可能各有不同,解决难易水平因人而异????????????, 我的解决形式就是 excludespark的低版本hadoop

4. 如何解决 Exception in thread “main” org.apache.spark.SparkException: Task not serializable

这个问题,我是这么遇到的,如下程序:

//        results.foreach(System.out::println); // 输入没有序列化
        results.foreach(x -> System.out.println(x));

首先 foreach 是 action 算子,须要将 task 上的数据拉到 driver 上来遍历显示,就须要序列化,如果习惯了 Java 的 lambda 写法,可能会写第一种,第一种写法的问题是没有序列化,序列化是在闭包里实现的,而应用静态方法调用的形式,没有闭包化,所以会报序列化的问题,写成第二种就能够了,System.out 是一个 final static 对象。

    public final static PrintStream out = null;

吴邪,小三爷,混迹于后盾,大数据,人工智能畛域的小菜鸟。
更多请关注

正文完
 0