您好,登錄后才能下訂單哦!
本篇內容介紹了“如何修改編譯hadoop”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
spark 3.1.x
hive 1.2.x
hadoop 2.6.0-cdh-5.13.1
由于好多公司的yarn集群用的是cdh版本的,用Cloudera Manager管理的。而截止到目前為止,spark的最新版本已經到了3.1.1。而對于cdh 2.6.0-5.13.1來說目前支持的hive版本為1.2.1,所以我們做一下集中嘗試:
直接修改pom文件中的hive對應的版本
直接修改編譯的hadoop版本
在spark運行的時候,動態加載hive對應的版本包
直接在spark的父pom文件增加如下proflie信息:
<profile> <id>hive-1.2</id> <properties> <hive.version>1.2.1</hive.version> <!-- Version used for internal directory structure --> <hive.version.short>1.2</hive.version.short> <hive.storage.version>2.6.0</hive.storage.version> <datanucleus-core.version>3.2.10</datanucleus-core.version> </properties> </profile>
運行
./dev/make-distribution.sh --name 2.6.0-cdh6.13.1 --pip --tgz -Phive-1.2 -Phive-thriftserver -Pyarn
報錯:
[INFO] --- scala-maven-plugin:4.3.0:compile (scala-compile-first) @ spark-hive_2.12 --- [INFO] Using incremental compilation using Mixed compile order [INFO] Compiler bridge file: .sbt/1.0/zinc/org.scala-sbt/org.scala-sbt-compiler-bridge_2.12-1.3.1-bin_2.12.10__52.0-1.3.1_20191012T045515.jar [INFO] compiler plugin: BasicArtifact(com.github.ghik,silencer-plugin_2.12.10,1.6.0,null) [INFO] Compiling 29 Scala sources and 2 Java sources to spark/sql/hive/target/scala-2.12/classes ... [ERROR] [Error] spark/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveShim.scala:29: object SerializationUtilities is not a msmber of package org.apache.hadoop.hive.ql.exec [ERROR] [Error] spark/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveShim.scala:150: not found: value SerializationUtilities [ERROR] [Error] spark/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveShim.scala:154: not found: value SerializationUtilities [ERROR] [Error] spark/sql/hive/src/main/scala/org/apache/spark/sql/hive/hiveUDFs.scala:350: too many arguments (4) for constructor SimpleGenericUDAFParameterInfo: (x$1: Array[org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector], x$2: Boolean, x$3: Boolean)org.apache.hadoop.hive.ql.udf.generic.SimpleGenericUDAFParameterInfo [ERROR] four errors found
說明hive1.2.1版本的不兼容
直接修改hadoop的版本為2.6.0-cdh6.13.1
運行如下命令:
./dev/make-distribution.sh --name 2.6.0-cdh6.13.1 --pip --tgz -Phive-1.2 -Phive-thriftserver -Pyarn -Dhadoop.version=2.6.0-cdh6.13.1
報錯:
[INFO] --- scala-maven-plugin:4.3.0:compile (scala-compile-first) @ spark-core_2.12 --- [INFO] Using incremental compilation using Mixed compile order [INFO] Compiler bridge file: .sbt/1.0/zinc/org.scala-sbt/org.scala-sbt-compiler-bridge_2.12-1.3.1-bin_2.12.10__52.0-1.3.1_20191012T045515.jar [INFO] compiler plugin: BasicArtifact(com.github.ghik,silencer-plugin_2.12.10,1.6.0,null) [INFO] Compiling 560 Scala sources and 99 Java sources to spark/core/target/scala-2.12/classes ... [ERROR] [Error] spark/core/src/main/scala/org/apache/spark/ui/HttpSecurityFilter.scala:107: type mismatch; found : K where type K required: String [ERROR] [Error] spark/core/src/main/scala/org/apache/spark/ui/HttpSecurityFilter.scala:107: value map is not a member of V [ERROR] [Error] spark/core/src/main/scala/org/apache/spark/ui/HttpSecurityFilter.scala:107: missing argument list for method stripXSS in class XssSafeRequest Unapplied methods are only converted to functions when a function type is expected. You can make this conversion explicit by writing `stripXSS _` or `stripXSS(_)` instead of `stripXSS`. [ERROR] [Error] spark/core/src/main/scala/org/apache/spark/ui/PagedTable.scala:307: value startsWith is not a member of K [ERROR] [Error] spark/core/src/main/scala/org/apache/spark/util/Utils.scala:580: value toLowerCase is not a member of object org.apache.hadoop.util.StringUtils [ERROR] 5 errors found
說明對2.6.0-cdh6.13.1版本的不兼容
根據官網的說明 ,spark從1.4.0 開始就能和不同的hive元數據進行交互,也就是說spark編譯的hive內部版本和spark訪問hive的元數據是獨立的,可以配置不同的hive版本進行對應元數據的訪問。
“如何修改編譯hadoop”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。