• 在CDH上用外部Spark2.2.1安装和配置 CarbonData


    在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
     
    参考:
    中文文档
     
     
    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
    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包。
     
     
     
     
     
     
     
     
     
    四、spark集成carbondata
     
     
     
    1、编译 CarbonData 工程,并且从 carbondata-parent-1.4.0assembly argetscala-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任务就可以了。
     
     
     
     
     

  • 相关阅读:
    Linux下巧用my.cnf,mysql连接服务器不需要输入账号密码信息
    MySQL 5.6 my.cnf 参数说明
    Docker实战(七)之为镜像添加SSH服务
    Docker实战(六)之使用Dockerfile创建镜像
    Docker实战(五)之端口映射与容器互联
    Docker实战(四)之Docker数据管理
    Docker实战(三)之访问Docker仓库
    Docker实战(二)之操作Docker容器
    Docker实战(一)之使用Docker镜像
    ubuntu16.04之sudo问题
  • 原文地址:https://www.cnblogs.com/double-kill/p/9610159.html
Copyright © 2020-2023  润新知