1.【报错】AttributeError: ‘SparkContext’ object has no attribute ‘setcheckpointDir’
本人传参:
conf = SparkConf().setAppName("test").setMaster("local[*]")
sc = SparkContext(conf=conf)# 1.告知spark,开启CheckPoint功能
sc.setcheckpointDir("hdfs://node1:8020/output/ckp")
分析:SparkContext找不到setcheckpointDir方法,参数传参错误
解决:将setcheckpointDir改成setCheckpointDir,其中c字母大写。是因为两个方法的传参不同导致
2.【报错】Spark on Hive:Table or view ‘xxx’ already exists in database ‘default’
确认是有创建的table,但是
show tables;
的时候不展示
分析:没有建立Spark和Hive之间的连接
解决:建立连接
- 进入spark的配置(
/export/server/spark/conf
),编辑hive-site.xml
文件
<configuration><!--告知Spark创建表存到哪里 --><property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value></property><property><name>hive.metastore.local</name><value>false</value></property><!--告知Spark Hive的MetaStore在哪 node1中安装了hive,所以路径从node1找 --><property><name>hive.metastore.uris</name><value>thrift://node1:9083</value></property></configuration>
- 进入hive的配置(
/export/server/hive/conf
),编辑hive-site.xml
文件
<configuration><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://node1:3306/hive?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8</value></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>你设置数据库的密码</value></property><property><name>hive.server2.thrift.bind.host</name><value>node1</value></property><property><name>hive.metastore.uris</name><value>thrift://node1:9083</value></property><property><name>hive.metastore.event.db.notification.api.auth</name><value>false</value></property></configuration>
- 执行
show tables;
后可以看到创建的表格了
updateTime:2024-02-08
标签:
spark
本文转载自: https://blog.csdn.net/weixin_42311968/article/details/135772947
版权归原作者 黄黄黄黄黄莹 所有, 如有侵权,请联系我们删除。
版权归原作者 黄黄黄黄黄莹 所有, 如有侵权,请联系我们删除。