开始直接在 CDH Pyspark 的环境里面运行 Ipython 。

spark = SparkSession \
.builder \
.master('yarn') \
.appName('md_day_dump_users') \
.enableHiveSupport() \
.getOrCreate()

In [3]: spark.sql('show databases').show()
+------------+
|databaseName|
+------------+
| default|
+------------+

可以用看到,我们直接使用这个配置去读取 hive 数据库并不能获得我们想要的数据库,而是只能读取到一个 default 默认数据库。

很明显是我们现在的 client 端还并没有得到 hive metastore 数据库的数据。无法知晓现在 hive 数据库的情况。

所以我们需要为其添加一些参数让他能读取到 hive 的 metastore,通过访问 hive 的 metastore.uris 就可以用获取,我们使用配置

spark = SparkSession \
.builder \
.master('yarn') \
.appName('md_day_dump_users') \
.config("hive.metastore.uris", "thrift://ryze-1:9083") \
.enableHiveSupport() \
.getOrCreate()
spark.sql("show databases").show() +-------------+
| databaseName|
+-------------+
|ads_algorithm|
| analytics_db|
| course|
| default|
|dw_dim_global|
| dw_matrix|
| member|
| pay|
| recommend|
| sensors|
| tmp|
| user|
| yanzhi|
+-------------+

替换当前的配置,就可以了。

在 ipython 跑通整个流程之后,剩下的我们就是在当前权限用户下安装 Jupyter 。按照官方教程来安装,注意我们使用的是 Python2.7.x 所以要选择 2.7.x 的安装方法,最终我的同事折腾了一下还替换掉一个 kernal 搞定。跑起来之后就可以从服务器上直接通过 SparkSession 来方便的使用 Spark 测试跑数据或者出数据了。

另外需要注意的一点是,由于我们使用的是 CDH ,可以非常方便的动态配置资源池,在为了不影响其他同步任务的情况下,我为 Jupyter 配置了单独的支援池,可以和其他池子里面的任务互不影响。因为这个脚本可能起多个,所以如果我们起得太多可能会影响到正常的同步脚本和任务使用资源。

使用特定的池也很简单,指定参数  .config('spark.yarn.queue', 'root.jupyter')  即可。

Reference:

https://stackoverflow.com/questions/51128243/hive-databases-only-list-default-db  hive-databases-only-list-default-db

https://stackoverflow.com/questions/31980584/how-to-connect-to-a-hive-metastore-programmatically-in-sparksql  how-to-connect-to-a-hive-metastore-programmatically-in-sparksql

https://stackoverflow.com/questions/48646097/setting-yarn-queue-in-pyspark  setting-yarn-queue-in-pyspark

CDH 集群机器上部署 Jupyter notebook 使用 Pyspark 读取 Hive 数据库的更多相关文章

  1. CDH集群搭建部署

    1. 硬件准备     使用了五台机器,其中两台8c16g,三台4c8g.一台4c8g用于搭建cmServer和NFS服务端,另外4台作为cloudera-manager agent部署CDH集群. ...

  2. 一脸懵逼学习Hadoop分布式集群HA模式部署(七台机器跑集群)

    1)集群规划:主机名        IP      安装的软件                     运行的进程master    192.168.199.130   jdk.hadoop      ...

  3. 1.还不会部署高可用的kubernetes集群?看我手把手教你使用二进制部署v1.23.6的K8S集群实践(上)

    公众号关注「WeiyiGeek」 设为「特别关注」,每天带你玩转网络安全运维.应用开发.物联网IOT学习! 本章目录: 0x00 前言简述 0x01 环境准备 主机规划 软件版本 网络规划 0x02 ...

  4. CDH集群部署hive建表中文乱码

    背景:部署CDH集群的 hive 服务,选用 mysql 作为 hive 元数据的存储数据库,通过 hive cli 建表时发现中文注释均乱码. 现象:hive端建表中文注释乱码. 定位: 已经确认过 ...

  5. 部署CDH集群环境准备

    一.系统centOS7以上,至少三台主机 添加ip 主机名映射关系:(每台主机都要做) vim /etc/hosts 127.0.0.1 localhost localhost.localdomain ...

  6. 【docker】【redis】2.docker上设置redis集群---Redis Cluster部署【集群服务】【解决在docker中redis启动后,状态为Restarting,日志报错:Configured to not listen anywhere, exiting.问题】【Waiting for the cluster to join...问题】

    参考地址:https://www.cnblogs.com/zhoujinyi/p/6477133.html https://www.cnblogs.com/cxbhakim/p/9151720.htm ...

  7. Cloudera Manager安装_搭建CDH集群

    2017年2月22日, 星期三 Cloudera Manager安装_搭建CDH集群 cpu   内存16G 内存12G 内存8G 默认单核单线 CDH1_node9 Server  || Agent ...

  8. CDH集群安装&测试总结

    0.绪论 之前完全没有接触过大数据相关的东西,都是书上啊,媒体上各种吹嘘啊,我对大数据,集群啊,分布式计算等等概念真是高山仰止,充满了仰望之情,觉得这些东西是这样的: 当我搭建的过程中,发现这些东西是 ...

  9. CentOS7安装CDH 第七章:CDH集群Hadoop的HA配置

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

随机推荐

  1. Spring Boot入门-快速搭建web项目

    Spring Boot 概述: Spring Boot makes it easy to create stand-alone, production-grade Spring based Appli ...

  2. Android开发——绘图基础

    前言: Android中绘图基本三个类,分别是Paint(画笔),Path(路径),Canvas(画布),这三个也是自定义View经常会使用到的类 个人理解,Canvas画布这个翻译其实不太好,这个类 ...

  3. 解决echarts饼图不显示数据为0的数据

    如图所示 饼图数据为0但是还是会显示lableline和lable 解决方法 var echartData = [{ value: data_arry[0]==0?null:data_arry[0], ...

  4. 记录 FTPClient 超时处理的相关问题

    apache 有个开源库:commons-net,这个开源库中包括了各种基础的网络工具类,我使用了这个开源库中的 FTP 工具. 但碰到一些问题,并不是说是开源库的 bug,可能锅得算在产品头上吧,各 ...

  5. Django---forms表单使用(1)

    使用过Django的同学应该都比较清楚,Django的表单功能是十分强大的,可以完成数据的校验等功能. 下面讲下常用的表单类型.我们讲下创建表单到前台可以正常显示的步骤: 一.创建表单类(可以直接在v ...

  6. Selenium自动化测试 Verify

    Selenium 找了很久,没有发现有verify的方法,可是,有个时候要的是确认,而不是直接断言, 当然要在运行结束后能够得到确认的结果,于是写了下面的代码,给大家分享.     import ja ...

  7. C# Debug和release判断用法

    C# Debug和release判断用法 #if (!DEBUG) Response.Write("DEBUG下运行");#else Response.Write("re ...

  8. 从0开始的Python学习003序列

    sequence 序列 序列是一组有顺序数据的集合.不知道怎么说明更贴切,因为python的创建变量是不用定义类型,所以在序列中(因为有序我先把它看作是一个有序数组)的元素也不会被类型限制. 序列可以 ...

  9. Python爬虫之pyquery库的基本使用

    # 字符串初始化 html = ''' <div> <ul> <li class = "item-0">first item</li> ...

  10. Filebeat插件启动失败,不能直接查找报错原因

    老是在filebeat启动的这一步骤上出错,但是由于filebeat是由systemd启动的,因此原因也经常查不清楚,因此并不能直观的查出错误在哪里,所以今天教给大家两个寻找错误的根源的方法 先看我这 ...