关于 Ambari 和 Electron
两个有用的知识点,记录一下,后续深入研读实践。
Ambari——大数据平台的搭建利器
参考:https://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari/
Electron 主进程调试
参考:http://www.w3cschool.cn/electronmanual/u59k1qkp.html
Ambari 跟 Hadoop 等开源软件一样,也是 Apache Software Foundation 中的一个项目,并且是顶级项目。目前最新的发布版本是 2.0.1,未来不久将发布 2.1 版本。就 Ambari 的作用来说,就是创建、管理、监视 Hadoop 的集群,但是这里的 Hadoop 是广义,指的是 Hadoop 整个生态圈(例如 Hive,Hbase,Sqoop,Zookeeper 等),而并不仅是特指 Hadoop。用一句话来说,Ambari 就是为了让 Hadoop 以及相关的大数据软件更容易使用的一个工具。
那些苦苦花费好几天去安装、调试 Hadoop 的初学者是最能体会到 Ambari 的方便之处的。而且,Ambari 现在所支持的平台组件也越来越多,例如流行的 Spark,Storm 等计算框架,以及资源调度平台 YARN 等,我们都能轻松地通过 Ambari 来进行部署。
Ambari 自身也是一个分布式架构的软件,主要由两部分组成:Ambari Server 和 Ambari Agent。简单来说,用户通过 Ambari Server 通知 Ambari Agent 安装对应的软件;Agent 会定时地发送各个机器每个软件模块的状态给 Ambari Server,最终这些状态信息会呈现在 Ambari 的 GUI,方便用户了解到集群的各种状态,并进行相应的维护。详细的操作和介绍会在后续章节介绍。
大数据与云计算可谓是如今数据中心中最火的两项技术领域,几乎所有的 IT 服务商都想在这两项技术中有所建树。相信 Ambari 可以帮助一些 Hadoop 的初学者。长远看来,大数据的发展离不开云计算,云计算中 IaaS 可谓已经很成熟,并且价格低廉。这时候许多公司将目光聚集在了 PaaS。大数据的流行更是加速了相关 PaaS 产品的发展,而 Ambari 的出现必然可以拉近 IaaS 和 PaaS 的距离。也就是说有了 Ambari,或许再加上 Docker,那么快速从 IaaS 演进到 PaaS 就显得不是那么困难了。
当然这里 Ambari 要跟 IaaS 更好的切合,还有个对手那就是 Sahara。它是另一个土生土长的 OpenStack 的子项目,其目的也是为了在 Openstack 上面快速搭建 Hadoop 等集群。期望着这些项目能够快速成长,将来对大家都有所帮助。
------------------------------
浏览器窗口的开发工具仅能调试渲染器的进程脚本(比如 web 页面)。为了提供一个可以调试主进程的方法,Electron 提供了 --debug
和 --debug-brk
开关。
命令行开关
使用如下的命令行开关来调试 Electron 的主进程:
--debug=[port]
当这个开关用于 Electron 时,它将会监听 V8 引擎中有关 port
的调试器协议信息。默认的 port
是 5858
。
--debug-brk=[port]
就像 --debug
一样,但是会在第一行暂停脚本运行。
使用 node-inspector 来调试
备注: Electron 目前对 node-inspector 支持的不是特别好,如果你通过 node-inspector 的 console 来检查 process
对象,主进程就会崩溃。
1. 确认你已经安装了 node-gyp 所需工具
2. 安装 node-inspector
$ npm install node-inspector
3. 安装 node-pre-gyp
的一个修订版
$ npm install git+https://git@github.com/enlight/node-pre-gyp.git#detect-electron-runtime-in-find
4. 为 Electron 重新编译 node-inspector
v8
模块(将 target 参数修改为你的 Electron 的版本号)
$ node_modules/.bin/node-pre-gyp --target=0.36.2 --runtime=electron --fallback-to-build --directory node_modules/v8-debug/ --dist-url=https://atom.io/download/atom-shell reinstall
$ node_modules/.bin/node-pre-gyp --target=0.36.2 --runtime=electron --fallback-to-build --directory node_modules/v8-profiler/ --dist-url=https://atom.io/download/atom-shell reinstall
[How to install native modules][how-to-install-native-modules].
5. 打开 Electron 的调试模式
你也可以用调试参数来运行 Electron :
$ electron --debug=5858 your/app
或者,在第一行暂停你的脚本:
$ electron --debug-brk=5858 your/app
6. 使用 Electron 开启 node-inspector 服务
$ ELECTRON_RUN_AS_NODE=true path/to/electron.exe node_modules/node-inspector/bin/inspector.js
7. 加载调试器界面
在 Chrome 中打开 http://127.0.0.1:8080/debug?ws=127.0.0.1:8080&port=5858

赠人玫瑰
手留余香
我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容……我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系!-杨绛先生
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?