编译spark:[thriftServer.sh属于测试阶段 hive-0.13.1]

本文档详细介绍了如何从源代码编译Spark并配置支持Parquet文件格式的步骤,包括设置Maven内存使用、编译参数及生成部署包的过程。此外还提供了启动集群和服务的具体命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编译spark:[thriftServer.sh属于测试阶段 hive-0.13.1]

说明: 目前已经发布了1.2版本此文至合适安装参考,不用自己编译了


vi  sql/hive/pom.xml 支持读取parquet
<dependency>
           <groupId>com.twitter</groupId>
           <artifactId>parquet-hive-bundle</artifactId>
           <version>1.5.0</version>
        </dependency>


Setting up Maven’s Memory Usage
export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"


编译:
mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.0 -Phive-0.13.1 -Dhive.version=0.13.1 -Phbase-0.98.7 -Dhbase.version=0.98.7 -DskipTests clean package


生成部署包:


[修改SPARK_HIVE那一段脚本,<id>hive</id>改为自己需要的版本,不然无法生成支持hive的包]
https://github.com/apache/spark/blob/master/make-distribution.sh 


./make-distribution.sh --tgz -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.0 -Phive-0.13.1 -Dhive.version=0.13.1 -Phbase-0.98.7 -Dhbase.version=0.98.7
[等价==> mvn clean package -DskipTests -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.0 -Phive-0.13.1 -Dhive.version=0.13.1 -Phbase-0.98.7 -Dhbase.version=0.98.7]


install:
修改 spark-env.sh 添加如下内容
export JAVA_HOME=/usr/local/jdk1.7.0_45
export SCALA_HOME=/usr/local/scala
export HIVE_CONF_DIR=/usr/local/hive-0.12/conf
export CLASSPATH=$CLASSPATH:/usr/local/hive-0.12/lib
export HADOOP_CONF_DIR=/usr/local/hadoop-2.5.1/etc/hadoop
export SPARK_MASTER_IP=hadoop0
export SPARK_WORKER_MEMORY=2g


start/stop cluster:
start-all.sh
stop-all.sh


JVM:
最大堆 最小堆新生代大小
-Xmx60m -Xms20m -Xmn7m -XX:+PrintGCDetails




spark-submit:
https://spark.apache.org/docs/latest/submitting-applications.html
./bin/spark-submit 
--name SparkAnalysis 
--class com.itweet.spark.Analysis 
--master spark://itr-mastertest01:7077 
--executor-memory 20G 
--total-executor-cores 20 
/program/spark-1.0-project-1.0.jar 
hdfs://itr-mastertest01:9000/labs/docword
hdfs://itr-mastertest01:9000/wc


spark-sql:
/uar/local/spark-1.2/bin/spark-sql --master spark://itr-mastertest01:7077 --executor-memory 512M --total-executor-cores 2
spark-shell:
MASTER=spark://itr-mastertest01:7077 /usr/local/spark-1.2/bin/spark-shell
spark-thriftserver:
/usr/local/spark-1.2/sbin/start-thriftserver.sh --master spark://itr-mastertest01:7077
<think>好的,我现在需要解决用户提到的两个问题:Hadoop本地库加载失败的警告和Hive-on-MR被弃用的问题。首先,我得分别分析这两个问题的原因,然后找到对应的解决方法。 关于Hadoop本地库加载失败的警告:“Unable to load native-hadoop library for your platform... using builtin-java classes where applicable”[^2]。这个警告通常是因为Hadoop的本地库(native libraries)是为特定平台(如32/64位)编译的,而用户当前的环境可能不兼容。首先,我需要确认用户的系统架构,比如是否是64位的Linux。然后检查Hadoop是否下载了对应版本的预编译本地库,或者是否需要用户自己重新编译。可能还需要设置环境变量,如JAVA_HOME,或者配置Hadoop的配置文件(如hadoop-env.sh)来指定本地库路径。 接下来是Hive-on-MR被弃用的问题,用户在使用Hive插入数据时遇到警告,提示Hive-on-MR在Hive 2中已弃用,建议使用Spark或Tez作为执行引擎[^3][^4]。这意味着用户当前的Hive配置默认使用MapReduce作为执行引擎,但需要切换到其他引擎。可能需要安装并配置Spark或Tez,然后在Hive中设置相关的属性,比如hive.execution.engine为spark。此外,还需要确保HiveSpark或Tez的版本兼容,避免出现依赖冲突。 在处理这两个问题时,可能需要分步骤进行。首先解决本地库的问题,确保Hadoop运行环境正常,再处理Hive的执行引擎替换,以避免同时处理多个问题导致的混淆。同时,用户可能在执行这些步骤时遇到其他问题,比如环境变量配置错误、依赖缺失或版本不匹配,需要提供详细的检查方法和解决方案。 另外,用户提到插入数据时长时间加载后失败,可能和MapReduce作业执行效率低或配置有关,切换到Spark或Tez可能提升性能。但切换执行引擎需要相应的集群支持,比如YARN资源管理是否配置正确,Spark是否集成到Hive中,这些都需要进一步验证。 总结来说,解决方案需要分步骤指导用户检查和配置Hadoop的本地库,然后调整Hive的执行引擎设置,同时提供备选方案和验证方法,确保问题得到彻底解决。</think>### 解决Hadoop本地库加载失败警告和Hive-on-MR弃用问题 --- #### **一、Hadoop本地库加载失败警告** **问题描述**: 控制台提示 `Unable to load native-hadoop library for your platform... using builtin-java classes where applicable`,表示Hadoop无法加载本地优化库(如压缩、IO加速等),导致性能下降。 **原因分析**: 1. Hadoop预编译的本地库(`lib/native`)与当前系统架构(如64位Linux)不兼容。 2. 环境变量未正确配置,Hadoop未找到本地库路径。 **解决方案**: 1. **验证本地库兼容性** 执行以下命令检查Hadoop本地库支持的平台: ```bash hadoop checknative ``` 输出应为 `native library is available`。若显示 `cannot load ... because of ldd path issues`,则需重新编译或替换本地库。 2. **重新编译Hadoop本地库(推荐)** - 安装编译依赖: ```bash sudo apt-get install build-essential autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev ``` - 下载Hadoop源码,进入源码目录后执行: ```bash mvn package -Pdist,native -DskipTests -Dtar ``` - 将生成的 `hadoop-dist/target/hadoop-X.X.X/lib/native` 复制到Hadoop安装目录的 `lib/native`。 3. **配置环境变量** 在 `hadoop-env.sh` 中添加: ```bash export HADOOP_OPTS="-Djava.library.path=/path/to/hadoop/lib/native" ``` --- #### **二、Hive-on-MR弃用问题** **问题描述**: Hive插入数据时提示 `WARNING: Hive-on-MR is deprecated in Hive 2`[^3],表明Hive默认的MapReduce执行引擎已过时,建议改用Spark或Tez。 **解决方案**: 1. **切换到Spark执行引擎** - **前提条件**:已安装Spark并配置与Hive集成。 -Hive中设置执行引擎为Spark: ```sql SET hive.execution.engine=spark; ``` - 或在 `hive-site.xml` 中永久配置: ```xml <property> <name>hive.execution.engine</name> <value>spark</value> </property> ``` 2. **切换到Tez执行引擎** - **安装Tez**: 下载Tez并解压到Hadoop的公共目录(如 `/opt/tez`)。 - 在 `hive-site.xml` 中配置: ```xml <property> <name>hive.execution.engine</name> <value>tez</value> </property> <property> <name>tez.lib.uris</name> <value>${fs.defaultFS}/tez/tez.tar.gz</value> </property> ``` 3. **回退到Hive 1.X(不推荐)** 若无法升级执行引擎,可降级Hive1.X版本,但会失去新特性支持。 --- #### **三、验证操作** 1. **检查Hadoop本地库** ```bash hadoop checknative # 期望输出:openssl、zlib等显示为可用 ``` 2. **验证Hive执行引擎** ```sql SET hive.execution.engine; -- 输出应为 spark 或 tez ``` --- #### **四、其他注意事项** - **Spark集成问题**:确保Spark版本与Hive兼容(如Hive 2.3+需Spark 2.4+)[^4]。 - **资源分配**:若使用YARN,需调整 `yarn-site.xml` 中的内存和CPU配额。 - **日志排查**:通过 `yarn logs -applicationId <app_id>` 查看任务失败详情。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值