VBA 目前支持哪些 CSS 选择器?

如何解决VBA 目前支持哪些 CSS 选择器?

早在 2021 年 5 月 19 日,我就最近(21 年 4 月至 21 日)对与 mshtml.dll 和后期绑定引用相关的界面的可疑更改撰写了 this 问答。如果您愿意,这是第 2 部分。

之前,在诸如 thisthis 之类的问题中,我曾评论过 mshtml.dll 缺乏对各种 CSS 选择器的支持,尤其是关于 pseudo-classes。在上述问题中,我强调了 nth-child()nth-of-type() 未针对 MSHTML 实现。

通常,如 here 所示,不受支持的选择器语法会导致:

运行时错误“-2140143604 (8070000c)”:无法完成 由于错误 8070000c 而操作。

我希望有些事情会因为与 Internet Explorer (IE) 相关的各种版本/平台不再受支持(MSHTML 与此相关 - 请参阅我的 this。我没想到 找到支持的 CSS 选择器的最新改进。以下面的例子:

Option Explicit

''Required references:
'' Microsoft HTML Object Library

Public Sub CssTest()

    Const URL = "https://books.toscrape.com/"
    Dim html As MSHTML.HTMLDocument
   
    Set html = New MSHTML.HTMLDocument

    With CreateObject("MSXML2.XMLHTTP")
        .Open "GET",URL,False
        .send
        html.body.innerHTML = .responseText
    End With
    
    Debug.Print html.querySelector("meta:nth-of-type(2)").outerHTML
    
End Sub

在 21 年 4 月至 5 月之前,由于使用了未实现的语法,这可能会出错。 现在,在我的设置中,我在 5 月初(最新)看到 mshtml.dll 的更新,我得到的结果与我通过自动化 Internet Explorer 实例运行它时得到的结果相同,它已经得到支持:

<meta name="created" content="24th Jun 2016 09:29">

那么,VBA 目前支持哪些 CSS 选择器?

我已经介绍了“我们为什么关心?”在之前的问答中,这里不再重复。但是,我将重新说明我的设置:

我的设置:

OS Name Microsoft Windows 10 Pro
Version 10.0.19042 Build 19042
System Type x64-based PC
Microsoft® Excel® 2019 MSO (16.0.13929.20206) 32-bit (Microsoft Office Professional Plus)
Version 2104 Build 13929.20373
mshtml.dll file  11.00.19041.985
ieframe.dll file 11.0.19041.964

反馈:

与之前的问答一样,对于没有/没有看到这些更改的设置,我将不胜感激。我将对此添加反馈以供其他人参考。

解决方法

tl;dr;

对 css 选择器和 Element.querySelector 的支持要大得多(允许在链接 querySelector(All) 调用时具有更大的灵活性。这极大地增强了 MSHTML 类在 CSS 方面的表现力选择器,并将其与 Selenium Basic 相提并论。


动机:

我一直想写一个支持选择器的列表有一段时间了,因为缺乏与 VBA 相关的文档,以及学习什么有效和无效的试验和错误性质。这个最新的变化促使我这样做,并包括那些目前支持在其中使用 CSS 选择器的库。


注意事项:

  1. 这并不详尽;它非常全面。
  2. 如果您发现任何错误,特别是关于 Selenium Basic 的错误,我必须凭记忆编写,请通知我,我会相应地进行编辑。
  3. 最近的变化,由汇总表中的阴影单元格表示 (JSFiddle)|在下面的简化表中,标有 ✔* 的是它们与我的设置有关的时间点。您的里程可能会有所不同,例如完全不支持 CSS 选择器

之前和之后:

传统上,就支持它们的库而言,VBA 中 CSS 选择器的表达方式如下:

enter image description here

Selenium 实现了迄今为止最多的 CSS 选择器。

当前状态:

我认为已实现的选择器的当前状态如下(对于图像质量很抱歉,即使您点击放大表格 - 请参阅 JSFiddle 以获得最清晰的表格视图):

enter image description here

我也将其作为简化的 HTML 插入包含在内,因此您可以单击超链接。请点击代码插入下方的运行代码片段,然后点击完整页面链接。抱歉,表格很大,我什至没有涵盖所有可以想到的选择器 - 只有我认为可能经常使用的主要选择器。插入一个花哨的表格让我超出了身体字符的限制,所以我们到了。如需精美表格,请参阅此 JSFiddle - 新支持的表格带有阴影。

<!DOCTYPE html>
<html>
<head>
    <title>VBA: Valid CSS Selectors 2021-05-30</title>
</head>
<body>
    <h1>VBA: Valid CSS Selectors 2021-05-30</h1>
    <table>
        <tr>
            <td colspan="2">
                <a href="https://drafts.csswg.org/selectors-3/">Selectors Level 3 Specification</a>
            </td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>Pattern</td>
            <td>Represents</td>
            <td>Description</td>
            <td>Level</td>
            <td>Microsoft HTML Object Library (MSHTML)</td>
            <td>Microsoft Internet Explorer Controls (SHDocVw)</td>
            <td>Selenium Type Library (Selenium)</td>
            <td>Remarks</td>
        </tr>
        <tr>
            <td>*</td>
            <td>any element</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#universal-selector">Universal selector</a>
            </td>
            <td>2</td>
            <td>✔</td>
            <td>✔</td>
            <td>✔</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>E</td>
            <td>an element of type E</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#type-selectors">Type selector</a>
            </td>
            <td>1</td>
            <td>✔</td>
            <td>✔</td>
            <td>✔</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>E[foo]</td>
            <td>an E element with a "foo" attribute</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#attribute-selectors">Attribute selectors</a>
            </td>
            <td>2</td>
            <td>✔</td>
            <td>✔</td>
            <td>✔</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>E[foo="bar"]</td>
            <td>an E element whose "foo" attribute value is exactly equal to "bar"</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#attribute-selectors">Attribute selectors</a>
            </td>
            <td>2</td>
            <td>✔</td>
            <td>✔</td>
            <td>✔</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>E[foo~="bar"]</td>
            <td>an E element whose "foo" attribute value is a list of whitespace-separated values,one of which is exactly equal to "bar"</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#attribute-selectors">Attribute selectors</a>
            </td>
            <td>2</td>
            <td>✔</td>
            <td>✔</td>
            <td>✔</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>E[foo^="bar"]</td>
            <td>an E element whose "foo" attribute value begins exactly with the string "bar"</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#attribute-selectors">Attribute selectors</a>
            </td>
            <td>3</td>
            <td>✔</td>
            <td>✔</td>
            <td>✔</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>E[foo$="bar"]</td>
            <td>an E element whose "foo" attribute value ends exactly with the string "bar"</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#attribute-selectors">Attribute selectors</a>
            </td>
            <td>3</td>
            <td>✔</td>
            <td>✔</td>
            <td>✔</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>E[foo*="bar"]</td>
            <td>an E element whose "foo" attribute value contains the substring "bar"</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#attribute-selectors">Attribute selectors</a>
            </td>
            <td>3</td>
            <td>✔</td>
            <td>✔</td>
            <td>✔</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>E[foo|="en"]</td>
            <td>an E element whose "foo" attribute has a hyphen-separated list of values beginning (from the left) with "en"</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#attribute-selectors">Attribute selectors</a>
            </td>
            <td>2</td>
            <td>x</td>
            <td>x</td>
            <td>x</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>E[attr operator value i]</td>
            <td>value compared case-insensitively (ASCII range).</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#attribute-selectors">Attribute selectors</a>
            </td>
            <td>4</td>
            <td>x</td>
            <td>x</td>
            <td>?</td>
            <td>
                <a href="https://www.w3.org/TR/selectors-4/#attribute-case">i identifier</a>
            </td>
        </tr>
        <tr>
            <td>E[attr operator value s]</td>
            <td>value compared case-sensitively (ASCII range).</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#attribute-selectors">Attribute selectors</a>
            </td>
            <td>4</td>
            <td>x</td>
            <td>x</td>
            <td>x</td>
            <td>
                <a href="https://www.w3.org/TR/selectors-4/#attribute-case">s identifier</a>
            </td>
        </tr>
        <tr>
            <td>E:root</td>
            <td>an E element,root of the document</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#structural-pseudos">Structural pseudo-classes</a>
            </td>
            <td>3</td>
            <td>✔</td>
            <td>✔</td>
            <td>✔</td>
            <td>HTML node only</td>
        </tr>
        <tr>
            <td>E:nth-child(n)</td>
            <td>an E element,the n-th child of its parent</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#structural-pseudos">Structural pseudo-classes</a>
            </td>
            <td>3</td>
            <td>✔*</td>
            <td>✔</td>
            <td>✔</td>
            <td>nth-child(odd) and (even) as well as nth-child(range) also supported</td>
        </tr>
        <tr>
            <td>E:nth-last-child(n)</td>
            <td>an E element,the n-th child of its parent,counting from the last one</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#structural-pseudos">Structural pseudo-classes</a>
            </td>
            <td>3</td>
            <td>✔*</td>
            <td>✔</td>
            <td>✔</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>E:nth-of-type(n)</td>
            <td>an E element,the n-th sibling of its type</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#structural-pseudos">Structural pseudo-classes</a>
            </td>
            <td>3</td>
            <td>✔*</td>
            <td>✔</td>
            <td>✔</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>E:nth-last-of-type(n)</td>
            <td>an E element,the n-th sibling of its type,counting from the last one</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#structural-pseudos">Structural pseudo-classes</a>
            </td>
            <td>3</td>
            <td>✔*</td>
            <td>✔</td>
            <td>✔</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>E:first-child</td>
            <td>an E element,first child of its parent</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#structural-pseudos">Structural pseudo-classes</a>
            </td>
            <td>2</td>
            <td>✔</td>
            <td>✔</td>
            <td>✔</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>E:last-child</td>
            <td>an E element,last child of its parent</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#structural-pseudos">Structural pseudo-classes</a>
            </td>
            <td>3</td>
            <td>✔</td>
            <td>✔</td>
            <td>✔</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>E:first-of-type</td>
            <td>an E element,first sibling of its type</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#structural-pseudos">Structural pseudo-classes</a>
            </td>
            <td>3</td>
            <td>✔*</td>
            <td>✔</td>
            <td>✔</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>E:last-of-type</td>
            <td>an E element,last sibling of its type</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#structural-pseudos">Structural pseudo-classes</a>
            </td>
            <td>3</td>
            <td>✔*</td>
            <td>✔</td>
            <td>✔</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>E:only-child</td>
            <td>an E element,only child of its parent</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#structural-pseudos">Structural pseudo-classes</a>
            </td>
            <td>3</td>
            <td>✔*</td>
            <td>✔</td>
            <td>✔</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>E:only-of-type</td>
            <td>an E element,only sibling of its type</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#structural-pseudos">Structural pseudo-classes</a>
            </td>
            <td>3</td>
            <td>✔*</td>
            <td>✔</td>
            <td>✔</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>E:empty</td>
            <td>an E element that has no children (including text nodes)</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#structural-pseudos">Structural pseudo-classes</a>
            </td>
            <td>3</td>
            <td>✔*</td>
            <td>✔</td>
            <td>✔</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>E:link</td>
            <td rowspan="2">an E element being the source anchor of a hyperlink of which the target is not yet visited (:link) or already visited (:visited)</td>
            <td rowspan="2">
                <a href="https://drafts.csswg.org/selectors-3/#link">The link pseudo-classes</a>
            </td>
            <td>1</td>
            <td>✔*</td>
            <td>✔</td>
            <td>✔</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>E:visited</td>
            <td>1</td>
            <td>✔*</td>
            <td>✔</td>
            <td>✔</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>E:not(s)</td>
            <td>an E element that does not match simple selector s</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#negation">Negation pseudo-class</a>
            </td>
            <td>3</td>
            <td>✔*</td>
            <td>✔</td>
            <td>✔</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>E F</td>
            <td>an F element descendant of an E element</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#descendant-combinators">Descendant combinator</a>
            </td>
            <td>1</td>
            <td>✔</td>
            <td>✔</td>
            <td>✔</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>E &gt; F</td>
            <td>an F element child of an E element</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#child-combinators">Child combinator</a>
            </td>
            <td>2</td>
            <td>✔</td>
            <td>✔</td>
            <td>✔</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>E + F</td>
            <td>an F element immediately preceded by an E element</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#adjacent-sibling-combinators">Next-sibling combinator</a>
            </td>
            <td>2</td>
            <td>✔</td>
            <td>✔</td>
            <td>✔</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>E ~ F</td>
            <td>an F element preceded by an E element</td>
            <td>
                <a href="https://drafts.csswg.org/selectors-3/#general-sibling-combinators">Subsequent-sibling combinator</a>
            </td>
            <td>3</td>
            <td>✔</td>
            <td>✔</td>
            <td>✔</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>foo,bar</td>
            <td>foo,bar&nbsp;will match both&nbsp;&lt;foo&gt;&nbsp;and&nbsp;&lt;bar&gt;&nbsp;elements.</td>
            <td>
                <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Selector_list">Selector list</a>
            </td>
            <td>1</td>
            <td>✔</td>
            <td>✔</td>
            <td>✔</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>element.querySelector</td>
            <td>Expanded element.querySelector</td>
            <td>
                <a href="https://developer.mozilla.org/en-US/docs/Web/API/Element/querySelector">Element.querySelector</a>
            </td>
            <td>API</td>
            <td>✔</td>
            <td>✔</td>
            <td>✔</td>
            <td>Can now chain querySelector(All) calls on wider base node range</td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>Lib info:</td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>Microsoft HTML Object Library (MSHTML)</td>
            <td>MS Internet Explorer Controls (SHDocVw)</td>
            <td>Selenium Type Library (Chromedriver)</td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>Lib</td>
            <td>mshtml.dll</td>
            <td>ieframe.dll</td>
            <td>selenium.dll</td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>File Version</td>
            <td>11.00.19041.985</td>
            <td>11.0.19041.964</td>
            <td>2.0.9.0</td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>Date</td>
            <td>2021-05-12</td>
            <td>2021-05-12</td>
            <td>2016-03-02</td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
    </table>
</body>
</html>


12 个新支持的伪类和一个扩展的 Element.querySelector:

如果您运行上述代码段并查看完整页面,您将看到现在至少支持 12 个新支持的伪类,并提到了扩展的 Element.querySelectorBam,kapow,ker-sploosh,关上众所周知的前门……欢迎来到 VBA CSS Canaan、Scraper 的香格里拉、Nerd Nirvana!

我认为 ieframe.dll 也可能有一些有趣的更新;这里的重点是最近的 mshtml.dll 变化。您可能希望在 Lifecyle 公告 herehere 下查看 IE 支持,或搜索 Lifecycle FAQ - Internet Explorer and Microsoft Edge

由于扩展 Element.querySelector() 的好处在上一个问答中没有涉及,我将在这里简要提及。通过扩展,我的意思是增加了您可以调用 querySelector 的元素数量,这样您就可以链接 .querySelector(),即 .querySelector(..).querySelector(..).querySelector(..).querySelectorAll(..)

以前,这在很大程度上是不可能的。如 this 问题所示。通常,解决方法是将传统方法链接到返回的节点上,例如 html.querySelector("body").getElementsByTagName("li");这会导致不雅观的链接和难以遵循,以及到目标元素的有限路径。更好的是,恕我直言,是代理 MSHTML.HTMLDocument 变量的想法,它将携带 innerHTML 返回的当前节点的 querySelector,从而允许您再次调用 querySelector(All) ;从而获得更快的匹配、更清晰的语法和更大的多功能性。这种方法的许多例子here


尾注:

这是一个正在修订的文件。欢迎所有关于改进的反馈。


谢谢:

最后,非常感谢@SIM 运行我的测试脚本以在不同的设置上检查这个。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)&gt; insert overwrite table dwd_trade_cart_add_inc &gt; select data.id, &gt; data.user_id, &gt; data.course_id, &gt; date_format(
错误1 hive (edu)&gt; insert into huanhuan values(1,&#39;haoge&#39;); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive&gt; show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 &lt;configuration&gt; &lt;property&gt; &lt;name&gt;yarn.nodemanager.res