在CDH上用外部Spark2.2.1 (hadoop free版本)standalone 模式安装和配置 CarbonData
一、cdh中外部spark(standalone模式安装)
1、把安装包和配置文件拷贝到其他机器
1.1复制hdfs、hive等配置文件到spark的conf目录
spark-env.sh文件最后新增的配置
export SPARK_HOME=/opt/cloudera/parcels/spark2.2.1/lib/spark2
export SPARK_DAEMON_CLASSPATH=$SPARK_HOME/jars/*:$SPARK_HOME/carbonlib/*
# - 这里的dsd为spark的master主机
export SPARK_MASTER_HOST=dsd
export JAVA_HOME=/usr/java/jdk1.8.0_112
export HADOOP_CONF_DIR=/etc/hadoop/conf
export YARN_CONF_DIR=/etc/hadoop/conf.cloudera.yarn/
# Passing a Hadoop configuration directory
export SPARK_DIST_CLASSPATH=$(hadoop --config /etc/hadoop/conf classpath)
--------------------------------------------------------------------------
spark-defaults.conf文件最后新增的配置
spark.driver.extraJavaOptions="-Dcarbon.properties.filepath = /opt/cloudera/parcels/spark2.2.1/lib/spark2/conf/carbon.properties"
spark.executor.extraJavaOptions="-Dcarbon.properties.filepath = /opt/cloudera/parcels/spark2.2.1/lib/spark2/conf/carbon.properties"
--------------------------------------------------------------------------
1.2、slaves文件最后新增的配置(把所有的spark节点都加入,包括master)
dsf
dse
dsd
dsb
ddf
--------------------------------------------------------------------------
1.3、分发安装包:
scp -r /opt/cloudera/parcels/spark2.2.1 root@192.168.101.217:/opt/cloudera/parcels/
二、编译需要版本的carbondata
参考:
http://www.zhuyongpeng.cn/1557.html
中文文档
http://carbondata.iteblog.com/installation-guide.html
1、遇到的问题
1.1、编译carbondata的cdh版本安装包:直接用官网的apache版本,装上去启动不了。
到安装目录下去看一下spark的版本 #不要看cloudera manager的包管理上面的版本,那个是错误的
1.2、直接在centos上编译、在window上编译不知道有没有区别。2种都试了。都不行,最终发现不是编译的carbondata有问题。是cdh集成的spark有问题。怎么试都不行。
最终换成原版的spark2.2.1(hadoop free版本的)
2、解决maven仓库默认不支持cdh
目前maven仓库中没有支持cdh的相关依赖。cloudera自己建立了一个相关的仓库。要想利用maven添加相关依赖,则必须单独添加cloudera仓库。
2.1、项目的pom.xml文件里面, 添加仓库配置
<repositories>
<repository>
<id>cloudera</id>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
</repositories>
2.2、在国内使用maven中央仓库一般会有网络问题,所以大部分人会使用aliyun仓库或者其他开源的仓库。
所以需要修改setting.xml (以下配置中 *,!cloudera 表示除了aliyun仓库还使用cloudera仓库)
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*,!cloudera</mirrorOf>
<name>Nexus aliyun</name>
<url>
http://maven.aliyun.com/nexus/content/groups/public
</url>
</mirror>
2.3、若未设置自动更新maven项目,则需更新maven项目,然后等待下载相关依赖。完成之后便可以使用cdh进行开发啦
3、在centos下编译
3.1、安装thrift-0.9.3,此步骤较为繁琐,需要其他库的支持。没有详细记录。
yum install automake bison flex g++ git libboost-all-dev libevent-dev libssl-dev libtool make pkg-config
下载thrift-0.9.3
http://archive.apache.org/dist/thrift/0.9.3/thrift-0.9.3.tar.gz
tar -xzvf thrift-0.9.3.tar.gz
3.1、安装mvn
tar zxvf apache-maven-3.5.3-bin.tar.gz -C /root/ssss/
vim /etc/profile #添加mvn的配置信息
export M2_HOME=/root/ssss/apache-maven-3.5.3/ export PATH=$PATH:$M2_HOME/bin
source /etc/profile
mvn -version
mvn -Pwindows -Dmaven.test.skip=true -Pspark-2.2 -Dspark.version=2.2.1 clean package
下载了好几次才完整的下载了所有依赖jar包。
http://repo1.maven.org/maven2/org/apache/spark/spark-streaming_2.11/2.2.0/
四、spark集成carbondata
1、编译 CarbonData 工程,并且从 carbondata-parent-1.4.0\assembly\target\scala-2.11路径获取 apache-carbondata-1.4.0-bin-spark2.2.0.cloudera2-hadoop2.7.2.jar。
最后将这个 jar 复制到 $SPARK_HOME/carbonlib 文件夹。
注意: 如果 $SPARK_HOME 路径下不存在 carbonlib 文件夹,请事先创建它。
压缩 carbonlib 文件夹的内容到tar.gz 文件中,并将这个压缩文件移到 carbonlib 文件夹下面。
cd /opt/cloudera/parcels/spark2.2.1/lib/spark2/ tar -zcvf carbonlib.tar.gz carbonlib/ mv carbonlib.tar.gz carbonlib/
2、到carbondata的源码当中找到carbon.properties配置文件,并拷贝到spark的配置文件目录
3、将下面的配置添加到 $SPARK_HOME/conf/carbon.properties 文件中:
carbon.storelocation=hdfs://nameservice1/ddhome/carbondata
carbon.badRecords.location=hdfs://nameservice1/ddhome/carbondata/badRecords
4、在hdfs中建立上面配置的hdfs://nameservice1/ddhome/carbondata目录。
hadoop fs -mkdir -p /ddhome/carbondata
hadoop fs -mkdir -p /ddhome/carbondata_badRecords
hadoop fs -mkdir -p /ddhome/carbondata_data
授予访问目录的权限,否则文件写入不了
hadoop fs -chmod -R 777 /ddhome/carbondata
hadoop fs -chmod -R 777 /ddhome/carbondata_badRecords
hadoop fs -chmod -R 777 /ddhome/carbondata_data
五、启动:验证安装
1、启动:standalone集群:有效
/opt/cloudera/parcels/spark2.2.1/lib/spark2/sbin/start-all.sh
2、关闭:standalone集群:有效
/opt/cloudera/parcels/spark2.2.1/lib/spark2/sbin/stop-all.sh
3、spark-submit提交普通任务jar进行测试
成功 --supervise(出现错误重启driver)提交作业的端口是6066(restful接口)
/opt/cloudera/parcels/spark2.2.1/lib/spark2/bin/spark-submit --class com.ziyun.DpiGet2Hiveparquet --master spark://192.168.101.218:6066 --deploy-mode cluster --supervise /home/usr/sparkjob/zy-just-spark-1.0.0.jar first --conf spark.network.timeout=300
这种用7077端口也可以提交成功
/opt/cloudera/parcels/spark2.2.1/lib/spark2/bin/spark-submit --class com.ziyun.DpiGet2Hiveparquet --master spark://192.168.101.218:7077 --deploy-mode client /root/zy-just-spark-1.0.0.jar first --conf spark.network.timeout=300
4、目前配置standalone模式的spark是否支持hive(spark任务提示一些错误:需要给sparksession添加一些配置
.enableHiveSupport() //开启hive支持
.config("spark.sql.warehouse.dir", "/user/hive/warehouse"))
hadoop fs -chmod -R 777 /user/hive/warehouse #给配置的目录加入权限
/opt/cloudera/parcels/spark2.2.1/lib/spark2/bin/spark-submit --class com.ziyun.MRecKqmj --master spark://192.168.101.217:7077 --deploy-mode client /root/zy-just-spark-1.0.0.jar first --conf spark.network.timeout=300
5、测试普通任务能否写入hdfs:新spark(standalone) ##按照后面添加了jar之后,可以正常写入的
/opt/cloudera/parcels/spark2.2.1/lib/spark2/bin/spark-submit --class com.ziyun.MRecKqmjTest --master spark://192.168.101.217:7077 --deploy-mode client /root/zy-just-spark-1.0.0.jar first --conf spark.network.timeout=300
独立模式提示找不到hive的classes。需要拷贝这2个jar到spark的jars目录下
6、最后是把cloudera manager上集成的spark2.2.0.cloudera2版本中相关hive和spark的jar复制到新装的spark的jar目录。
把mysql的驱动jar也拷贝过去。在hive里面也是有的。
后面又提示缺失thriftserver。最终是解压了一个spark自带hadoo2.6(cm版本的hadoop也是基于2.6)版本的jar,把它里面的jar也拷贝到新装的spark的jars目录下。
跑普通spark任务就可以了。

转载于:https://www.cnblogs.com/double-kill/p/9610159.html

在CDH上用外部Spark2.2.1安装和配置 CarbonData相关推荐

  1. Spark2.1.0安装与配置(单机版)

    Spark2.1.0安装与配置(单机版) B站同步视频:Spark2.1.0安装与配置(单机版) 前言 该安装教程是承接Spark源码编译B站教程所制,因此所使用的安装包是在Spark源码编译教程中得 ...

  2. linux下装sqlserver安装包,【sqlServer】CentOS7.x 上Microsoft SQL Server for Linux安装和配置...

    SQL Server Documentation https://docs.microsoft.com/en-us/sql/sql-server/sql-server-technical-docume ...

  3. secure连不上远程地址_[笔记]Mariadb安装并配置远程访问

    引言 熟悉的小伙伴都知道我自用有一台NAS,并为此折腾了不少内容: 西蒙宫:折腾,用J3455搭建家庭nas 西蒙宫:让家庭NAS走向世界,兼谈Zerotier 西蒙宫:折腾--组装NAS编译安装ff ...

  4. 教你10分钟内在Windows上完成Rails开发环境的安装和配置

    原文:http://www.cnblogs.com/tambor/archive/2011/12/25/rails_anzhuang_railsinstaller.html 一般来说,Windows开 ...

  5. cvDrawContours:在图像上绘制外部和内部轮廓

    转自:http://www.aiseminar.cn/html/18/t-618.html?action-uchimage 函数cvDrawContours用于在图像上绘制外部和内部轮廓.当thick ...

  6. php 运行外部程序_PHP在linux上执行外部命令的方法

    目录: 一.PHP中调用外部命令介绍 二.关于安全问题 三.关于超时问题 四.关于PHP运行linux环境中命令出现的问题 一.PHP中调用外部命令介绍 在PHP中调用外部命令,可以用,1>调用 ...

  7. 如何在linux环境下安装kvm,如何在Linux发行版上安装和配置KVM和Open vSwitch?

    在如今多租户模式的数据中心环境下,虚拟化技术正从传统的基于虚拟机管理程序的服务器虚拟化,扩展到网络虚拟化.在这种环境下,基于软件的虚拟交换机通常连同虚拟机管理程序一起部署在服务器上,串联起了不同虚拟机 ...

  8. 如何在CentOS 7上安装和配置MySQL Cluster

    翻译&转载:https://www.howtoforge.com/tutorial/how-to-install-and-configure-mysql-cluster-on-centos-7 ...

  9. 哪个Linux发行版运行kvm,如何在Linux发行版上安装和配置KVM和Open vSwitch

    在如今多租户模式的数据中心环境下,虚拟化技术正从传统的基于虚拟机管理程序的服务器虚拟化,扩展到网络虚拟化.在这种环境下,基于软件的虚拟交换机通常连同虚拟机管理程序一起部署在服务器上,串联起了不同虚拟机 ...

最新文章

  1. 交叉编译器工具链的使用
  2. 早上醒来收获一个Surprise,成为CSDN博客专家了
  3. java---编写一个方法,返回一个int型的二维数组,数组中的元素通过解析字符串参数获得。
  4. Linux 3D 编程学习总结
  5. 2019 CCPC-Wannafly Winter Camp Div2 Day1
  6. Java 网络实例一(获取指定主机的IP地址、查看端口是否已使用、获取本机ip地址及主机名、获取远程文件大小)
  7. 反射工厂在数据访问层的应用
  8. ubuntu之安装显卡驱动
  9. Linux监控工具Spotlight on Unix
  10. python3.1415926_Python3中操作字符串str必须记住的几个方法
  11. linux 删除文件内容
  12. Word排版艺术 读后感
  13. Adobe Illustrator教程
  14. Linux kernel Panic后自动重启机器的设置
  15. 码云上最棒的Java管理后台系统
  16. 简易javascript图片轮播代码
  17. iframe 的使用理解
  18. Win32 Disk Imager Error 5: Access is Denied 解决方案
  19. linux备份当前目录压缩,Linux备份压缩命令:tar详解
  20. 中兴面试经历(回忆版) -20160628

热门文章

  1. 每天一道LeetCode-----后缀表达式求值
  2. 嵌入式烤箱能不能放台面上_2021年开放式厨房怎么设计?先来做做嵌入式家电的功课吧!...
  3. golang中如何抓取panic让程序正常退出
  4. 记录部署hue在k8s上
  5. hbase启动报错Permission denied: user=xxx, access=WRITE, inode=“/HBase/MasterProcWALs“:root:supergroup:d
  6. 剑指offer 求第n个丑数
  7. pixhawk/px4如何获取及使用传感器数据
  8. 嵌入式操作系统内核原理和开发(内存分配算法)
  9. SRAM与SDRAM的区别
  10. 关于stable_sort()和sort()的区别: