开始直接在 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. PHP和Go中的闭包变量作用域

    关于闭包函数,之前在聊过.这里忽略了一点,不管是Go/Php/Python,闭包都存在局部变量的引用.我们还是先看个例子: PHP示例: $list = []; for ($i = 0; $i < ...

  2. 使用Jenkins自动发布Windows服务项目

    不同于发布Web项目,自动发布Windows服务项目需要解决以下几个问题: 如何远程停止和开启服务?需要在发布前停止服务,在发布完成后开启服务. 如何上传编译文件到目标服务器? 问题1:如何远程停止和 ...

  3. 原生js实现数据单向绑定

    Object.defineProperty()方法直接在对象上定义一个新属性,或修改对象上的现有属性,并返回该对象. Object.defineProperty(obj, prop, descript ...

  4. MongoDB副本集及C#程序的连接配置

    1.副本集 高可用是绝大多数数据库管理系统的核心目标之一.如果要想生产数据在发生故障后依然可用,就需要确保为生产数据库多部署一台服务器.MongoDB副本集提供了数据的保护.高可用和灾难恢复的机制. ...

  5. Highcharts入坑记

    第一次用Highcharts画一个温度湿度变化的图片,因为不熟悉跳了好多坑,特记录下: 一.JS引用 <script src="~/Scripts/jquery.min.js" ...

  6. 9102 IT人保持记忆力及健康的方法

    做技术时间久了,我们会发现有的时候我们会感觉记忆力衰减太快,前脚刚忙完的事或者刚做完计划任务没多久就遗忘了,或者是以前轻车熟入的方法死活都记不起来了,亦或者之前学习一门技术很快就掌握真谛,现在即便花N ...

  7. 一道CTF题引发的思考——SSI注入

    题目地址:http://210.32.4.22/index.php 一开始我一直考虑的用<!--#include file="文件"-->的格式进行读取文件,但是一直不 ...

  8. javascript Json和String互转

      var jsonText = "{\"id\":\"123\",\"name\":\"tom\",\&qu ...

  9. 网络威胁实时地图(CyberThread Real-time Map)

    今天跟大家分享一下网络威胁实时地图(CyberThread Real-time Map),从地图上可以看出目前网络威胁情况数据. 点击打开网络威胁实时地图 可以点击demo on/off来看演示.可以 ...

  10. Linux Collection:系统信息和配置

    PAS Linux系统配置相关文件 /etc 目录中是系统和各类软件的配置文件 /var/log 系统日志 /proc 系统运行信息 PAS /boot空间不足 查看内核 dpkg --get-sel ...