请考虑以下设置。
hadoop版本2.6.4
spark版本2.1.0
os centos linux 7.2.1511版(核心)
所有软件作为单节点群集安装在一台机器上,spark以独立模式安装。我正在尝试使用spark thrift服务器。为了启动spark thrift服务器,我运行shell脚本 start-thriftserver.sh
运行thrift服务器后,我可以运行beeline命令行工具并发出以下命令:命令运行成功:
!connect jdbc:hive2://localhost:10000 user_name '' org.apache.hive.jdbc.HiveDriver
create database testdb;
use testdb;
create table names_tab(a int, name string) row format delimited fields terminated by ' ';
我的第一个问题是haddop上创建的表/数据库的底层文件/文件夹在哪里?问题是,即使使用stop-all.sh停止hadoop,create table/database命令仍然是成功的,这使我认为表根本不是在hadoop上创建的。
我的第二个问题是如何告诉spark hadoop到底安装在哪里?并要求spark使用hadoop作为从beeline运行的所有查询的底层数据存储。
我应该在其他模式下安装spark吗?
提前谢谢。
1条答案
按热度按时间li9yvcax1#
我的目标是让beeline命令行实用程序通过spark-thrift服务器工作,使用hadoop作为底层数据存储,我让它工作起来。我的设置如下:
我想以这样一种方式配置spark,它使用hadoop处理beeline命令行实用程序中运行的所有查询。诀窍是在spark-defaults.xml中指定以下属性。
默认情况下,spark对元数据和数据本身(在spark中称为仓库)都使用derby,为了让spark使用hadoop作为仓库,我必须添加这个属性。
下面是一个示例输出
下面是hadoop中的相应文件