spark程序找不到hive-site.xml文件

spark程序找不到hive-site.xml文件,hive,apache-spark-sql,Hive,Apache Spark Sql,我正在尝试使用Spark HiveContext访问配置单元数据。我已经编写了查询“showdatabases”。但我得到的回应是默认的 似乎我的程序无法找到放置在我的项目的conf/文件夹中的hive-site.xml文件,因此正在我的项目目录中创建metastore_db 这是我尝试做的一个示例代码: private static SparkConf sparkConf = new SparkConf().setAppName("JavaSparkSQL").setMaster("local

我正在尝试使用Spark HiveContext访问配置单元数据。我已经编写了查询“showdatabases”。但我得到的回应是默认的

似乎我的程序无法找到放置在我的项目的conf/文件夹中的hive-site.xml文件,因此正在我的项目目录中创建metastore_db

这是我尝试做的一个示例代码:

private static SparkConf sparkConf = new SparkConf().setAppName("JavaSparkSQL").setMaster("local[*]");
private static JavaSparkContext ctx = new JavaSparkContext(sparkConf);

public static boolean runQuery() {

    JavaHiveContext sqlContext = new org.apache.spark.sql.hive.api.java.JavaHiveContext(ctx);



    List<Row> rows=sqlContext.sql("show databases").collect();
    for(Row row:rows){
        String i=row.getString(0);
        System.out.println("Response: "+i);
    }
    return true;
}
private static SparkConf SparkConf=new SparkConf().setAppName(“JavaSparkSQL”).setMaster(“local[*]);
私有静态JavaSparkContext ctx=新JavaSparkContext(sparkConf);
公共静态布尔运行查询(){
JavaHiveContext sqlContext=neworg.apache.spark.sql.hive.api.java.JavaHiveContext(ctx);
List rows=sqlContext.sql(“显示数据库”).collect();
用于(行:行){
String i=row.getString(0);
System.out.println(“响应:+i”);
}
返回true;
}

我一点也不做。我只是调用runQuery()。如何在此代码中指定hive-site.xml的路径?或者是否有其他方法从配置单元读取数据?

确保在.bash_配置文件(如果正在开发)或用于设置环境变量的任何文件中设置了必要的Spark环境变量:

export SPARK_HOME=CHANGEME!!! 
export SPARK_MASTER_IP=127.0.0.1 
export SPARK_MASTER_PORT=7077 
export SPARK_MASTER_WEBUI_PORT=9080 
export SPARK_LOCAL_DIRS=$SPARK_HOME/../work 
export SPARK_WORKER_CORES=1 
export SPARK_WORKER_MEMORY=1G 
export SPARK_WORKER_INSTANCES=2 
export SPARK_DAEMON_MEMORY=384m
... ect ect ect

可能有一种方法可以使用SparkConf setters设置所有这些,但是我无法让它们工作。

您设置了环境变量吗?火花之家等。。。