一:整合目的
采用 SparkSql 与 hive 进行整合,通过 SparkSql 读取 hive 中表的元数据,把 HiveHQL 底层采用 MapReduce 来处理任 务,导致性能慢的特点,改为更加强大的 Spark 引擎来进行相应的分析处理
二:整合前提
1.安装好hadoop集群
2.安装好Hive
3.安装好Mysql
4.安装好JDK
5.安装好spark
需要这些集群的搭建…
三:整合步骤
1.在spark的Master节点上
2.进入hive的conf 目录–把hive-site.xml 拷贝到spark的conf目录下
cp hive-site.xml /export/servers/spark-2.2.0-bin-hadoop2.7/conf/hive-site.xml
3.进入spark的conf目录,把hive-site.xml配置文件分发到所有安装了spark的节点
scp hive-site.xml node02:$PWD
4.进入hive的lib目录,把mysql驱动包拷贝到spark的jars目录上
cp mysql-connector-java-5.1.38.jar /export/servers/spark-2.2.0-bin-hadoop2.7/jars
5.进入spark的jars目录,把mysql驱动包分发到其他节点
scp mysql-connector-java-5.1.38.jar node02:$PWD
三:启动集群
1.启动mysql
2.启动hive(元数据)
3.启动zookeeper集群
4.启动hadoop集群以及JobHistoryServer
5.启动spark集群以及 HistoryServer
四:验证是否整合成功
启动命令:
/export/servers/spark-2.2.0-bin-hadoop2.7/bin/spark-sql --master spark://node01:7077 --executor-memory 1g --total-executor-cores 2 --conf spark.sql.warehouse.dir=hdfs://node01:8020/user/hive/warehouse
命令解释:
1.首先需要在/export/servers/spark-2.2.0-bin-hadoop2.7/bin/spark-sql 启动sparksql
2.–master spark://node01:7077 指定spark集群的Master的节点和端口号
3.–executor-memory 1g 指定运行内存,默认1G
4.–total-executor-cores 2 指定executor的核数
5. --conf spark.sql.warehouse.dir=hdfs://node01:8020/user/hive/warehouse 这个是最重要的,指定sparksql中创建的数据库存放的位置在hdfs文件系统上 , spark 2.0 以上都有这个问题,如果不指定存放位置,就会在spark的bin目录下创建数据库的存放位置,如图:
指定存储位置的元数据信息
转载:https://blog.csdn.net/weixin_44769733/article/details/101295546