问题导读 1.编译spark源文件的过程中,如何防止内存不足? 2.spark如果没有自己hadoop或则hive版本对应的预构建版本,该如何编译? 3.spark需要将hive-site.xml放入spark目录下的conf文件中,不兼容该如何处理? 4.运行spark-sql会报缺少mysql驱动包错误,该如何处理? ![]() 1、编译spark源文件 下载spark时,可以选择对应自己hadoop版本的pre-built版下载最新spark1.3.0。 如果没有自己hadoop版本对应的预构建版本,或者spark对应的hive版本不一致等都需要重新构建 构建方法详情见spark官网网址为https://spark.apache.org/docs/latest/building-spark.html 本文是使用maven进行构建,构建的命令为: 执行上述命令,避免在构建过程中内存不足错误。然后执行以下命令: Pyarn代表支持yarn,Phadoop指定hadoop版本,Phive指定hive版本。 只需要更改hadoop版本和hive版本即可。详情见https://spark.apache.org/docs/latest/building-spark.html 编译时间大概为两三个小时,具体根据网络情况而定。 由于我使用的是hadoop2.3版本,我首先下载了一个pre-built for hadoop2.3版本的spark,由于我使用的hive版本为0.12.0,pre-built内hive版本为0.13.0不能使用。 我们只需将刚才构建spark目录下assembly/target/scala-2.10目录下的spark-assembly-1.3.0-hadoop2.3.0.jar文件将pre-built for hadoop2.3版本目录下lib中的相同文件替换掉。此时pre-built for hadoop2.3就是我们需要的spark for hadoop2.3 and hive0.12.0。 如果没有hadoop版本需要重新构建spark目录为pre-built spark形式。 2、在yarn上运行spark 修改spark配置,首先hive-site.xml文件放入spark目录下的conf文件中,以便支持hive。此时如果有一些不兼容的错误,需要修改hive-site.xml文件, 将上面的value值改为false 修改spark-env.sh配置 以上的配置对spark on yarn 的client模式下起作用,如果配置其他的可以参考spark-env.sh.template文件说明,或者spark-shell --help查看 运行spark-sql会报缺少mysql驱动包错误,下载mysql-connector-java.jar包 在运行程序时进行指定一下就可以了 如下: 3、说明 如果想让spark运行在yarn之上,spark部署将会非常简单。只需要将上面构建好的spark文件拷贝到driver机器上,运行spark bin目录下命令即可,如果是client模式,yarn将会按照conf/spark-env.sh文件中设置的cpu和内存、worker instances进行部署,部署工作由yarn进行分发,包括jar包的分发。如果是cluster模式,需要在命令行进行指定。 spark构建文件只需要放到一台机器上,就可以通过yarn启动数十台spark worker机器。 |
spark部署
最新推荐文章于 2023-03-20 12:15:29 发布