Ignite+CDH5.8安装配置

本文探讨了Apache Ignite的特性和应用场景,并详细介绍了如何在四节点环境下安装配置Ignite及集成CDH-Spark环境变量的过程。同时,提供了简单的测试代码及解决常见错误的方法。

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

最近在研究基于内存处理技术,其中就有比较出名的Apache Ignite的项目。应用场景是,通过Spark/Java等工具处理Parquet文件,但是直接通过Java API处理Parquet文件的性能较差,主要原因在于不能实现并行化处理。

本文结构:

  1. Ignite特性;
  2. 四节点安装Ignite、配置CDH-Spark环境变量;
  3. 测试Ignite。

Ignite特性

Ignite的应用场景比较多,主要用在数据库缓存方便。当然,集合Ignite也可以结合Spark共享RDD用作缓存处理。

更多关于 Ignite的介绍,可以查看官方文档V1.7。如果对实际操作比较感兴趣,可以查看Ignite在Github上的实例代码

安装Ignite

版主使用四节点实现分布式Ignite的安装,由于 Ignite具有自动发现机制,因此即使不进行配置,在同一局域网中也可以实现多个Server的分布式配置。

配置环境

  1. CDH5.8.0;
  2. JDK1.8.0;
  3. Spark1.6。

配置代码

同一般Spark集群不同的地方在于,Ignite安装在Yarn节点上,且配置Yarn节点与Spark Geteway环境变量,在/XXX/conf.cloudera.spark_on_yarn2/spark-env.sh文件中添加:

# Optionally set IGNITE_HOME here.
# IGNITE_HOME=/path/to/ignite
IGNITE_LIBS="\${IGNITE_HOME}/libs/*"
for file in \${IGNITE_HOME}/libs/*
do
if [ -d \${file} ] && [ "\${file}"!="\${IGNITE_HOME}"/libs/optional ]; then
 IGNITE_LIBS=\${IGNITE_LIBS}:\${file}/*
fi
done
export SPARK_DIST_CLASSPATH=$IGNITE_LIBS

这里与官方文档中唯一的区别在于,官方文档中使用的CLASSPATH为SPARK_CLASSPATH,这里使用的CLASSPATH为SPARK_DIST_CLASSPATH

测试Ignite

使用简单测试代码(spark-shell):

import org.apache.ignite.configuration._
import org.apache.ignite.spark._

// 使用default-config下面的配置
val igniteContext = new IgniteContext(sc, () => new IgniteConfiguration())
// val igniteContext = new IgniteContext(sc, "config/default-config.xml")
val cache = igniteContext.fromCache[Integer,Integer]("partitioned")
println("Name: "+cache.cacheName+"\tCount: "+cache.count())

cache.savePairs(sc.parallelize(1 to 10000, 10).map( item => (item, item)))
println("Name: "+cache.cacheName+"\tCount: "+cache.count())

报错信息:

java.lang.NoClassDefFoundError: javax/cache/configuration/MutableConfiguration

这个类主要是在cache-api中,在Ignite的libs里面有,将给Jar包的路径包含在Jars的路径中即可。另外一种,可能的解决方案为:Ignite Installation with Spark under CDH

ClassNoDefMethodError: org.apache.ignite.configuration.IgniteConfiguration

缺少Jar包:将要Ignite下面的Ignite-core包含在Jars里面,或者配置路径。
另,Ignite-Spark这个Jar包不回在Ignite_Home/libs下面,所以需要手动下载到相应的路径下面,最好的办法就是将libs下面所有的Jar包放在spark_home/jars下面。

org.apache.ignite.IgniteCheckedException: Work directory does not exist and cannot be created

(待续。)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值