当出现这个情况的时候,查看 --class后的名字是否和jar包中的名字相同
[root@node1 spark]# bin/spark-submit --class demo --master yarn --deploy-mode client /opt/module/IDEA_into_HiveMysql.jar 10
在提交spark作业时,Error: Failed to load class demo
出现在我们打包的jar包中,是以demo2命名的,所以提交demo会提示没有找到class
import java.util.Properties
import org.apache.spark.SparkConf
import org.apache.spark.sql.SparkSession
object demo2 {
def main(args: Array[String]): Unit = {
val demo = new SparkConf().setAppName("demo2") //创建class名称
val session = SparkSession.builder().enableHiveSupport().config(demo).getOrCreate()
val properties = new Properties() // 连接mysql
properties.setProperty("user", "root") //设置用户名
properties.setProperty("password", "1234") //设置密码
properties.setProperty("driver", "com.mysql.jdbc.Driver") //设置驱动
val dataframe = session.read
.jdbc("jdbc:mysql://node1:3306/test1", "test_01", properties) //读取数据库
dataframe.show() //显示数据
// 筛选1 统计每小时消息量、发送和接收用户数
session.sql("use db_msg")
将代码中demo改为demo2即可运行成功
[root@node1 spark]# bin/spark-submit --class demo --master yarn --deploy-mode client /opt/module/IDEA_into_HiveMysql.jar 10