由于之前有事情回家, 然后这几天才开始继续的学习,今天学习Sparksql 的时候遇到了整合不了的情况,然后在网上找资料并且整理好了这些相关的知识,希望可以帮助大家!
Spark操纵hive表
1.描述
如果没有hive依赖,spark会自动加载hive的依赖库,注意hive所有依赖需要出现在worker中。
配置hive只需要复制core-site.xml + hdfs-site.xml +hive-site.xml三个文档到/soft/spark/conf下即可。
如果没有配置hive-site.xml,spark启动时会在当前目录下创建metastore_db和spark-warehouse两个目录。
准备工作:
拷贝$HIVE_HOME/conf/hive-site.xml和hive-log4j.properties到$SPARK_HOME/conf/
2. 在$SPARK_HOME/conf/目录中,修改spark-env.sh,添加
export HIVE_HOME=/soft/hive
export SPARK_CLASSPATH=$HIVE_HOME/lib/ mysql-connector-java-5.0.8-bin.jar
3. 另外也可以设置一下Spark的log4j配置文件,使得屏幕中不打印额外的INFO信息:
log4j.rootCategory=WARN, console
这里的准备工作切记你之前的驱动可以用,至于这个驱动你们要自己找自己合适的!这是很重要的一点
$>cd /soft/spark/conf
$>cp/soft/hive/conf/hive-site.xml .
$>cp/soft/hadoop/etc/hadoop/core-site.xml .
$>cp/soft/hadoop/etc/hadoop/hdfs-site.xml .
2.分发文档
$>cd/soft/spark/conf
$>xsync core-site.xml
$>xsync hdfs-site.xml
$>xsync hive-site.xml
3.操作过程
a.启动zk cluster
[202+ 203]
$>zkServer.shstart
b.启动hadoop(只需要hdfs)
[s201]
$>start-dfs.sh
//
$>start-yarn.sh
c.验证hive
$>hive
$hive>showdatabases ;
$hive>showtables ;
$hive>descformatted weblogs ;
d.启动spark-shell
//本地模式
$>spark-shell--master local
//创建支持hive的Spark Session
$scala>importorg.apache.spark.sql.Row
$scala>importorg.apache.spark.sql.SparkSession
$scala>valspark2 = SparkSession.builder().appName("Spark HiveExample").enableHiveSupport().getOrCreate()
$scala>spark2.sql("showdatabases").show;
$scala>spark2.sql("showtables").show;
$scala>spark2.sql("select* from weblogs").show;