zeppelin的操作流程:

首先添加hive的interpreter

相关的配置信息如下所示:

hive账户和密码是啥 rhythm hive账号_bc

另外还要添加相关的依赖:

hive账户和密码是啥 rhythm hive账号_bc_02

 

hive的操作方式  利用hiveserver2来操作

首先要启动元数据服务

cd hive
cd  bin
./hive --service metastore &  //后台启动
./hive --service hiveserver2 &
./beeline -u jdbc:hive2://172.16.0.37:10000 hadoop  //这里的用户名是hive所在的机器的用户和密码 本地是hadoop  hadoop

接下就可以操作sql了。

 

在beeline连接hiveserver2的时候报错了

第一种方式
beeline> !connect jdbc:hive2://localhost:10000
Connecting to jdbc:hive2://localhost:10000
Enter username for jdbc:hive2://localhost:10000: !connect jdbc:hive2://localhost:10000 hadoop
Enter password for jdbc:hive2://localhost:10000: ******
Error: Failed to open new session: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: !connect jdbc:hive2:/localhost:10000%20hadoop (state=,code=0)
0: jdbc:hive2://localhost:10000 (closed)>
第二种方式就没有错了
./beeline -u jdbc:hive2://172.16.0.37:10000 hadoop  //这里的用户名是hive所在的机器的用户和密码 本地是hadoop  Hadoop

接下来创建notebook

hive账户和密码是啥 rhythm hive账号_spark_03

注意在写sql的时候,前面必须要加上[hive]

我们知道hive默认是解析成Mapreduce来执行的。

但是我们可以设置spark作为hive的默认解析方式这样的话,执行sql的效率会快很多的。

设置的方式:

在./hive –servive hiveserver2 &
./beeline -u jdbc:hive2://172.16.0.37:10000 hadoop
在连接成功的时候会执行sql操作了:
set hive.execution.engine=spark;
 set spark.master=yarn-cluster; //是spark的运行模式 local[*]
 set mapreduce.job.queuename=ada.spark; //这个可以默认参数验证是否设置成功

执行相关的查询操作就ok了。

 

使用spark引擎查询hive有以下几种方式:
1>使用spark-sql(spark sql cli)
2>使用spark-thrift提交查询sql
3>使用hive on spark(即hive本身设置执行引擎为spark)
针对第一种情况:
1>ambari 已经支持,不需要特殊配置;
2>cdh不支持spark sql cli,原因是cdh自带的spark,spark-sql和spark-R是阉割版本的,如果需要使用
spark sql cli,需要下载原生的编译好的spark包替换cdh自带的包

针对第二种情况:

1>cdh 上手动启动/opt/cloudera/parcels/SPARK2-2.0.0.cloudera.beta1-1.cdh5.7.0.p0.108015/lib/spark2/sbin/start-thriftserver.sh 
然后通过beeline连接即可(由于hive-site.xml配置的和hive thrift一样,没有单独配置,所以应在hiveserver2之外的其他节点启动start-thriftserver.sh,这个服务看看能不能添加到spark2管理界面中 ),目前已经调试通过
注:131上spark/conf/yarn-conf/hive-site.xml这个文件不存在,手动拷贝的,50上是有的
2>ambari支持,且sparkthrift服务也启动正常,但是在通过beeline连接的时候报错:
原因是:自启动的hive默认配置不完全,需要手动在spark的配置下找到hive-site的配置添加缺少项;

hive.server2.enable.doAs=true
 hive.server2.thrift.port=10016与hive的区别开
 hive.server2.transport.mode=binary
spark.yarn.queue=ada.spark
 hive.metastore.warehouse.dir=/apps/hive/warehouse,否则找不到会使用执行命令所在目录作为仓库