Ignite+CDH5.8安装配置

来源:互联网 发布:java解析syslog 编辑:程序博客网 时间:2024/06/08 06:27

最近在研究基于内存处理技术,其中就有比较出名的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/igniteIGNITE_LIBS="\${IGNITE_HOME}/libs/*"for file in \${IGNITE_HOME}/libs/*doif [ -d \${file} ] && [ "\${file}"!="\${IGNITE_HOME}"/libs/optional ]; then IGNITE_LIBS=\${IGNITE_LIBS}:\${file}/*fidoneexport 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

(待续。)

0 0
原创粉丝点击