From 9846be0f2a99f3b14d68bab0e6e0241ab658a34c Mon Sep 17 00:00:00 2001 From: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> Date: Mon, 10 Jun 2024 15:09:14 -0400 Subject: [PATCH 01/11] HPCC-32030 ECL Watch v9 fix multi ESP calls on Query details Fix duplicate calls to /WsWorkunits/WUQueryDetails on Query detail page. Also fixes an issue when clicking the Save button, where deactivating a Query failed due to the "Name" param being missing in the request. Signed-off-by: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> --- esp/src/src-react/components/QueryDetails.tsx | 10 +++++--- esp/src/src-react/components/QuerySummary.tsx | 24 +++++++++---------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/esp/src/src-react/components/QueryDetails.tsx b/esp/src/src-react/components/QueryDetails.tsx index af9ef819876..bbd2e3e969c 100644 --- a/esp/src/src-react/components/QueryDetails.tsx +++ b/esp/src/src-react/components/QueryDetails.tsx @@ -36,19 +36,23 @@ export const QueryDetails: React.FunctionComponent = ({ const [logicalFileCount, setLogicalFileCount] = React.useState(0); const [superFileCount, setSuperFileCount] = React.useState(0); const [libsUsedCount, setLibsUsedCount] = React.useState(0); + const [suspended, setSuspended] = React.useState(false); + const [activated, setActivated] = React.useState(false); React.useEffect(() => { setQuery(ESPQuery.Get(querySet, queryId)); }, [setQuery, queryId, querySet]); React.useEffect(() => { - query?.getDetails().then(({ WUQueryDetailsResponse }) => { + query?.getDetails().then(() => { setWuid(query.Wuid); setLogicalFileCount(query.LogicalFiles?.Item?.length); setSuperFileCount(query.SuperFiles?.SuperFile?.length); setLibsUsedCount(query.LibrariesUsed?.Item?.length); + setActivated(query.Activated); + setSuspended(query.Suspended); }); - }, [query, setLogicalFileCount, setSuperFileCount, setLibsUsedCount]); + }, [query]); const onTabSelect = React.useCallback((tab: TabInfo) => { switch (tab.id) { @@ -100,7 +104,7 @@ export const QueryDetails: React.FunctionComponent = ({
- + diff --git a/esp/src/src-react/components/QuerySummary.tsx b/esp/src/src-react/components/QuerySummary.tsx index 9e9869ddb95..1ce2df2109c 100644 --- a/esp/src/src-react/components/QuerySummary.tsx +++ b/esp/src/src-react/components/QuerySummary.tsx @@ -15,17 +15,20 @@ const logger = scopedLogger("../components/QuerySummary.tsx"); interface QuerySummaryProps { querySet: string; queryId: string; + isSuspended?: boolean; + isActivated?: boolean; } export const QuerySummary: React.FunctionComponent = ({ querySet, - queryId + queryId, + isSuspended = false, + isActivated = false }) => { const [query, setQuery] = React.useState(); - const [wuid, setWuid] = React.useState(""); - const [suspended, setSuspended] = React.useState(false); - const [activated, setActivated] = React.useState(false); + const [suspended, setSuspended] = React.useState(isSuspended); + const [activated, setActivated] = React.useState(isActivated); const [DeleteConfirm, setShowDeleteConfirm] = useConfirm({ title: nlsHPCC.Delete, @@ -57,12 +60,9 @@ export const QuerySummary: React.FunctionComponent = ({ }, [queryId, querySet]); React.useEffect(() => { - query?.getDetails().then(({ WUQueryDetailsResponse }) => { - setWuid(query?.Wuid); - setSuspended(query.Suspended); - setActivated(query.Activated); - }); - }, [query]); + setActivated(isActivated); + setSuspended(isSuspended); + }, [isActivated, isSuspended]); const buttons = React.useMemo((): ICommandBarItemProps[] => [ { @@ -73,7 +73,7 @@ export const QuerySummary: React.FunctionComponent = ({ { key: "save", text: nlsHPCC.Save, iconProps: { iconName: "Save" }, disabled: !canSave, onClick: () => { - const selection = [{ QuerySetId: querySet, Id: queryId }]; + const selection = [{ QuerySetId: querySet, Id: queryId, Name: query?.QueryName }]; const actions = []; if (suspended !== query?.Suspended) { actions.push(WsWorkunits.WUQuerysetQueryAction(selection, suspended ? "Suspend" : "Unsuspend")); @@ -125,7 +125,7 @@ export const QuerySummary: React.FunctionComponent = ({ }} /> {nlsHPCC.Workunit} {nlsHPCC.Other} From bfb1f425895489542fc1d23a586e44d49a44f54c Mon Sep 17 00:00:00 2001 From: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> Date: Mon, 17 Jun 2024 16:03:20 -0400 Subject: [PATCH 02/11] HPCC-32076 ECL Watch v9 fix Logs filter start date fix an issue where the "Start Date" filter param specified by the user was not being correctly set in the request sent to ESP Signed-off-by: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> --- esp/src/src-react/components/Logs.tsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/esp/src/src-react/components/Logs.tsx b/esp/src/src-react/components/Logs.tsx index 10ee0a988be..911cf63b236 100644 --- a/esp/src/src-react/components/Logs.tsx +++ b/esp/src/src-react/components/Logs.tsx @@ -13,7 +13,7 @@ import { Filter } from "./forms/Filter"; import { Fields } from "./forms/Fields"; import { ShortVerticalDivider } from "./Common"; -const maximumTimeUntilRefresh = 8 * 60 * 60 * 1000; +const eightHours = 8 * 60 * 60 * 1000; const startTimeOffset = 1 * 60 * 60 * 1000; const endTimeOffset = 23 * 60 * 60 * 1000; const defaultStartDate = new Date(new Date().getTime() - startTimeOffset); @@ -115,8 +115,9 @@ export const Logs: React.FunctionComponent = ({ if (typeof filter.StartDate === "string") { filter.StartDate = new Date(filter.StartDate + ":00Z"); } - if (filter.StartDate && now.getTime() - filter.StartDate.getTime() > maximumTimeUntilRefresh) { - filter.StartDate = new Date(now.getTime() - startTimeOffset); + if (!filter.StartDate) { + //assign a reasonable default start date if one isn't set + filter.StartDate = new Date(now.getTime() - eightHours); } if (!filter.EndDate) { filter.EndDate = new Date(now.getTime() + endTimeOffset); From d5574ace2d557fa26013251d3a7a8e97769da5ce Mon Sep 17 00:00:00 2001 From: Jake Smith Date: Mon, 17 Jun 2024 18:15:55 +0100 Subject: [PATCH 03/11] HPCC-31627 Remove legacy central node delay Some very old redundant code that was not being hit until the HPCC-18382 changes were introduced caused random delays when sockets were connecting in Thor. This was spuriously seen when SORT was connecting merge streams, introducing significant delays overall. Signed-off-by: Jake Smith --- system/jlib/jsocket.cpp | 28 ++-------------------------- system/jlib/jsocket.hpp | 3 --- thorlcr/slave/thslavemain.cpp | 1 - 3 files changed, 2 insertions(+), 30 deletions(-) diff --git a/system/jlib/jsocket.cpp b/system/jlib/jsocket.cpp index 962d328364b..9f4bb2d6b72 100644 --- a/system/jlib/jsocket.cpp +++ b/system/jlib/jsocket.cpp @@ -353,9 +353,6 @@ struct xfd_set { __fd_mask fds_bits[XFD_SETSIZE / __NFDBITS]; }; // define our o #define T_SOCKET int #define SEND_FLAGS (MSG_NOSIGNAL) #endif -#ifdef CENTRAL_NODE_RANDOM_DELAY -static SocketEndpointArray CentralNodeArray; -#endif enum SOCKETMODE { sm_tcp_server, sm_tcp, sm_udp_server, sm_udp, sm_multicast_server, sm_multicast}; #define BADSOCKERR(err) ((err==JSE_BADF)||(err==JSE_NOTSOCK)) @@ -1538,20 +1535,8 @@ void CSocket::connect_wait(unsigned timems) bool exit = false; int err; unsigned refuseddelay = 1; - while (!exit) { -#ifdef CENTRAL_NODE_RANDOM_DELAY - ForEachItemIn(cn,CentralNodeArray) { - const SocketEndpoint &ep=CentralNodeArray.item(cn); - if (ep.ipequals(targetip)) { - unsigned sleeptime = getRandom() % 1000; - StringBuffer s; - ep.getHostText(s); - DBGLOG("Connection to central node %s - sleeping %d milliseconds", s.str(), sleeptime); - Sleep(sleeptime); - break; - } - } -#endif + while (!exit) + { unsigned remaining; exit = tm.timedout(&remaining); bool blockselect = exit; // if last time round block @@ -6189,15 +6174,6 @@ ISocketBufferReader *createSocketBufferReader(const char *trc) } -extern jlib_decl void markNodeCentral(SocketEndpoint &ep) -{ -#ifdef CENTRAL_NODE_RANDOM_DELAY - CriticalBlock block(CSocket::crit); - CentralNodeArray.append(ep); -#endif -} - - static CSocket *prepareSocket(unsigned idx,const SocketEndpoint &ep, ISocketConnectNotify &inotify) { Owned sock = new CSocket(ep,sm_tcp,NULL); diff --git a/system/jlib/jsocket.hpp b/system/jlib/jsocket.hpp index 6587e9410ff..83c01639ef6 100644 --- a/system/jlib/jsocket.hpp +++ b/system/jlib/jsocket.hpp @@ -72,7 +72,6 @@ enum JSOCKET_ERROR_CODES { #ifndef _WIN32 #define BLOCK_POLLED_SINGLE_CONNECTS // NB this is much slower in windows -#define CENTRAL_NODE_RANDOM_DELAY #else #define USERECVSEM // to singlethread BF_SYNC_TRANSFER_PUSH #endif @@ -633,8 +632,6 @@ interface ISocketBufferReader: extends IInterface extern jlib_decl ISocketBufferReader *createSocketBufferReader(const char *trc=NULL); -extern jlib_decl void markNodeCentral(SocketEndpoint &ep); // random delay for linux - interface ISocketConnectNotify { public: diff --git a/thorlcr/slave/thslavemain.cpp b/thorlcr/slave/thslavemain.cpp index 2f0c496a8cf..17bea9fb450 100644 --- a/thorlcr/slave/thslavemain.cpp +++ b/thorlcr/slave/thslavemain.cpp @@ -434,7 +434,6 @@ int main( int argc, const char *argv[] ) SocketEndpoint masterEp(master); localHostToNIC(masterEp); setMasterPortBase(masterEp.port); - markNodeCentral(masterEp); if (RegisterSelf(masterEp)) { From d79a8d2f9833ae6fe3d1246c9c6508ae37b1cb5a Mon Sep 17 00:00:00 2001 From: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> Date: Wed, 19 Jun 2024 09:28:28 -0400 Subject: [PATCH 04/11] HPCC-32077 ECL Watch v9 correct label in Delete Queries dialog change the label in the Delete Queries dialog to show "Delete Selected Queries" instead of "Delete Selected Workunits" Signed-off-by: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> --- esp/src/src-react/components/Queries.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/esp/src/src-react/components/Queries.tsx b/esp/src/src-react/components/Queries.tsx index a0da7144844..e11938a5734 100644 --- a/esp/src/src-react/components/Queries.tsx +++ b/esp/src/src-react/components/Queries.tsx @@ -180,7 +180,7 @@ export const Queries: React.FunctionComponent = ({ const [DeleteConfirm, setShowDeleteConfirm] = useConfirm({ title: nlsHPCC.Delete, - message: nlsHPCC.DeleteSelectedWorkunits, + message: nlsHPCC.DeleteSelectedQueries, items: selection.map(s => s.Id), onSubmit: React.useCallback(() => { WsWorkunits.WUQuerysetQueryAction(selection, "Delete").then(() => refreshTable.call(true)); From 98c533a8a313ae0ec54a4aaebdc0025d0ecedb14 Mon Sep 17 00:00:00 2001 From: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> Date: Tue, 18 Jun 2024 16:08:04 -0400 Subject: [PATCH 05/11] HPCC-27635 ECL Watch v9 add syntax check to Playground added a syntax check button to the ECL Playground page Signed-off-by: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> --- .../src-react/components/ECLPlayground.tsx | 129 +++++++++++++----- esp/src/src-react/components/InfoGrid.tsx | 19 ++- esp/src/src/nls/hpcc.ts | 1 + 3 files changed, 111 insertions(+), 38 deletions(-) diff --git a/esp/src/src-react/components/ECLPlayground.tsx b/esp/src/src-react/components/ECLPlayground.tsx index ecee18566cd..665e0c699ad 100644 --- a/esp/src/src-react/components/ECLPlayground.tsx +++ b/esp/src/src-react/components/ECLPlayground.tsx @@ -1,14 +1,17 @@ import * as React from "react"; import { ReflexContainer, ReflexElement, ReflexSplitter } from "../layouts/react-reflex"; -import { PrimaryButton, IconButton, IIconProps, Link, Dropdown, IDropdownOption, TextField, useTheme } from "@fluentui/react"; +import { IconButton, IIconProps, Link, Dropdown, IDropdownOption, TextField, useTheme } from "@fluentui/react"; +import { Button } from "@fluentui/react-components"; +import { CheckmarkCircleRegular, DismissCircleRegular, QuestionCircleRegular } from "@fluentui/react-icons"; import { scopedLogger } from "@hpcc-js/util"; import { useOnEvent } from "@fluentui/react-hooks"; import { mergeStyleSets } from "@fluentui/style-utilities"; import { ECLEditor, IPosition } from "@hpcc-js/codemirror"; -import { Workunit, WUUpdate } from "@hpcc-js/comms"; +import { Workunit, WUUpdate, WorkunitsService } from "@hpcc-js/comms"; import { HolyGrail } from "../layouts/HolyGrail"; import { DojoAdapter } from "../layouts/DojoAdapter"; import { pushUrl } from "../util/history"; +import { debounce } from "../util/throttle"; import { darkTheme } from "../themes"; import { InfoGrid } from "./InfoGrid"; import { TabbedResults } from "./Results"; @@ -77,6 +80,9 @@ const playgroundStyles = mergeStyleSets({ borderRight: borderStyle } }, + ".fui-Button": { + height: "min-content" + }, ".ms-Label": { marginRight: "12px" }, @@ -155,43 +161,58 @@ const warningIcon: IIconProps = { title: nlsHPCC.ErrorWarnings, ariaLabel: nlsHP const resultsIcon: IIconProps = { title: nlsHPCC.Outputs, ariaLabel: nlsHPCC.Outputs, iconName: "Table" }; const graphIcon: IIconProps = { title: nlsHPCC.Visualizations, ariaLabel: nlsHPCC.Visualizations, iconName: "BarChartVerticalFill" }; -const displayErrors = (wu, editor) => { +const displayErrors = async (wu = null, editor, errors = []) => { if (!editor) return; - wu.fetchECLExceptions().then(errors => { - errors.forEach(err => { - const lineError = err.LineNo; - const lineErrorNum = lineError > 0 ? lineError - 1 : 0; - const startPos: IPosition = { - ch: (err.Column > 0) ? err.Column - 1 : 0, - line: lineErrorNum - }; - const endPos: IPosition = { - ch: editor.getLineLength(lineErrorNum), - line: lineErrorNum - }; - - switch (err.Severity) { - case "Info": - editor.highlightInfo(startPos, endPos); - break; - case "Warning": - editor.highlightWarning(startPos, endPos); - break; - case "Error": - default: - editor.highlightError(startPos, endPos); - break; - } - }); + if (wu) { + errors = await wu.fetchECLExceptions(); + } + if (!errors.length) { + editor.removeAllHighlight(); + } + errors.forEach(err => { + const lineError = err.LineNo; + const lineErrorNum = lineError > 0 ? lineError - 1 : 0; + const startPos: IPosition = { + ch: (err.Column > 0) ? err.Column - 1 : 0, + line: lineErrorNum + }; + const endPos: IPosition = { + ch: editor.getLineLength(lineErrorNum), + line: lineErrorNum + }; + + switch (err.Severity) { + case "Info": + editor.highlightInfo(startPos, endPos); + break; + case "Warning": + editor.highlightWarning(startPos, endPos); + break; + case "Error": + default: + editor.highlightError(startPos, endPos); + break; + } }); }; +const service = new WorkunitsService({ baseUrl: "" }); + +enum SyntaxCheckResult { + Unknown, + Failed, + Passed +} + interface ECLEditorToolbarProps { editor: ECLEditor; outputMode: OutputMode; setOutputMode: (_: OutputMode) => void; workunit: Workunit; setWorkunit: (_: Workunit) => void; + setSyntaxErrors: (_: any) => void; + syntaxStatusIcon: number; + setSyntaxStatusIcon: (_: number) => void; } const ECLEditorToolbar: React.FunctionComponent = ({ @@ -199,7 +220,10 @@ const ECLEditorToolbar: React.FunctionComponent = ({ outputMode, setOutputMode, workunit, - setWorkunit + setWorkunit, + setSyntaxErrors, + syntaxStatusIcon, + setSyntaxStatusIcon }) => { const [cluster, setCluster] = React.useState(""); @@ -258,6 +282,24 @@ const ECLEditorToolbar: React.FunctionComponent = ({ } }, [cluster, editor, playgroundResults, queryName, setQueryNameErrorMsg]); + const checkSyntax = React.useCallback(() => { + service.WUSyntaxCheckECL({ + ECL: editor.ecl(), + Cluster: cluster + }).then(response => { + if (response.Errors) { + setSyntaxStatusIcon(SyntaxCheckResult.Failed); + setSyntaxErrors(response.Errors.ECLException); + displayErrors(null, editor, response.Errors.ECLException); + setOutputMode(OutputMode.ERRORS); + } else { + setSyntaxStatusIcon(SyntaxCheckResult.Passed); + setSyntaxErrors([]); + displayErrors(null, editor, []); + } + }); + }, [cluster, editor, setOutputMode, setSyntaxErrors, setSyntaxStatusIcon]); + const handleKeyUp = React.useCallback((evt) => { switch (evt.key) { case "Enter": @@ -282,10 +324,19 @@ const ECLEditorToolbar: React.FunctionComponent = ({ return
{showSubmitBtn ? ( - + ) : ( - + )} + = (props const [query, setQuery] = React.useState(""); const [selectedEclSample, setSelectedEclSample] = React.useState(""); const [eclContent, setEclContent] = React.useState(""); + const [syntaxErrors, setSyntaxErrors] = React.useState([]); + const [syntaxStatusIcon, setSyntaxStatusIcon] = React.useState(SyntaxCheckResult.Unknown); const [eclSamples, setEclSamples] = React.useState([]); React.useEffect(() => { @@ -417,6 +470,13 @@ export const ECLPlayground: React.FunctionComponent = (props }, [editor]); useOnEvent(document, "eclwatch-theme-toggle", handleThemeToggle); + const handleEclChange = React.useMemo(() => debounce((evt) => { + if (editor.hasFocus()) { + setSyntaxStatusIcon(SyntaxCheckResult.Unknown); + } + }, 300), [editor]); + useOnEvent(window, "keyup", handleEclChange); + return

{nlsHPCC.title_ECLPlayground}

@@ -437,7 +497,8 @@ export const ECLPlayground: React.FunctionComponent = (props main={} footer={ @@ -453,7 +514,7 @@ export const ECLPlayground: React.FunctionComponent = (props {outputMode === OutputMode.ERRORS ? ( - + ) : outputMode === OutputMode.RESULTS ? ( diff --git a/esp/src/src-react/components/InfoGrid.tsx b/esp/src/src-react/components/InfoGrid.tsx index 2fe63499487..0e13e1d0e7b 100644 --- a/esp/src/src-react/components/InfoGrid.tsx +++ b/esp/src/src-react/components/InfoGrid.tsx @@ -32,11 +32,13 @@ interface FilterCounts { } interface InfoGridProps { - wuid: string; + wuid?: string; + syntaxErrors?: any[]; } export const InfoGrid: React.FunctionComponent = ({ - wuid + wuid = null, + syntaxErrors = [] }) => { const [costChecked, setCostChecked] = React.useState(true); @@ -46,6 +48,7 @@ export const InfoGrid: React.FunctionComponent = ({ const [otherChecked, setOtherChecked] = React.useState(true); const [filterCounts, setFilterCounts] = React.useState({ cost: 0, penalty: 0, error: 0, warning: 0, info: 0, other: 0 }); const [exceptions] = useWorkunitExceptions(wuid); + const [errors, setErrors] = React.useState([]); const [data, setData] = React.useState([]); const { selection, setSelection, @@ -61,6 +64,14 @@ export const InfoGrid: React.FunctionComponent = ({ { key: "others", onRender: () => setOtherChecked(value)} styles={{ root: { paddingTop: 8, paddingRight: 8 } }} /> } ], [filterCounts.cost, filterCounts.error, filterCounts.info, filterCounts.other, filterCounts.warning]); + React.useEffect(() => { + if (syntaxErrors.length) { + setErrors(syntaxErrors); + } else { + setErrors(exceptions); + } + }, [syntaxErrors, exceptions]); + // Grid --- const columns = React.useMemo((): FluentColumns => { return { @@ -137,7 +148,7 @@ export const InfoGrid: React.FunctionComponent = ({ info: 0, other: 0 }; - const filteredExceptions = exceptions.map((row, idx) => { + const filteredExceptions = errors?.map((row, idx) => { if (row.Source === "Cost Optimizer") { row.Severity = "Cost"; } @@ -199,7 +210,7 @@ export const InfoGrid: React.FunctionComponent = ({ }); setData(filteredExceptions); setFilterCounts(filterCounts); - }, [costChecked, errorChecked, exceptions, infoChecked, otherChecked, warningChecked]); + }, [costChecked, errorChecked, errors, infoChecked, otherChecked, warningChecked]); React.useEffect(() => { if (data.length) { diff --git a/esp/src/src/nls/hpcc.ts b/esp/src/src/nls/hpcc.ts index ff03308e6fd..8588cf18c54 100644 --- a/esp/src/src/nls/hpcc.ts +++ b/esp/src/src/nls/hpcc.ts @@ -922,6 +922,7 @@ export = { Statistics: "Statistics", SVGSource: "SVG Source", SyncSelection: "Sync To Selection", + Syntax: "Syntax", SystemServers: "System Servers", tag: "tag", Target: "Target", From 34fa63d0d8dcc1839e263de31f219545dde78cc8 Mon Sep 17 00:00:00 2001 From: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> Date: Wed, 5 Jun 2024 15:37:17 -0400 Subject: [PATCH 06/11] HPCC-31841 ECL Watch v9 redirect to intended url after login Captures the hash portion of the ECL Watch v9 url if present, eg "#/workunits/W20240514-150949/metrics/sg974", redirecting to this intended page after login. Signed-off-by: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> --- esp/src/Login.html | 2 ++ esp/src/src/Session.ts | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/esp/src/Login.html b/esp/src/Login.html index 42208eceae2..fcac7c377db 100644 --- a/esp/src/Login.html +++ b/esp/src/Login.html @@ -112,6 +112,8 @@ function (ready, nlsHPCCMod) { var nlsHPCC = nlsHPCCMod.default; ready(function () { + window.localStorage.setItem("redirectAfterLogin", window.location.hash); + var loginStr = document.getElementById("loginStr"); var error = document.getElementById("hidden_msg"); var disabled = document.getElementById('disabled_msg'); diff --git a/esp/src/src/Session.ts b/esp/src/src/Session.ts index 281742e4b13..f7a43044e3d 100644 --- a/esp/src/src/Session.ts +++ b/esp/src/src/Session.ts @@ -6,7 +6,7 @@ import { SMCService } from "@hpcc-js/comms"; import { scopedLogger } from "@hpcc-js/util"; import { cookieKeyValStore, sessionKeyValStore, userKeyValStore } from "src/KeyValStore"; import { singletonDebounce } from "../src-react/util/throttle"; -import { parseSearch } from "../src-react/util/history"; +import { parseSearch, replaceUrl } from "../src-react/util/history"; import { ModernMode } from "./BuildInfo"; import * as ESPUtil from "./ESPUtil"; @@ -135,6 +135,11 @@ export function formatCost(value): string { export function initSession() { if (sessionIsActive > -1) { + const redirectUrl = window.localStorage.getItem("redirectAfterLogin") ?? ""; + if (redirectUrl) { + window.localStorage.removeItem("redirectAfterLogin"); + replaceUrl(redirectUrl); + } idleWatcher.on("active", function () { resetESPTime(); }); From 02b1fcc2e11d05bec6b22997fb61d26070aab51d Mon Sep 17 00:00:00 2001 From: Valdir Fumene Junior Date: Wed, 12 Jun 2024 14:36:20 -0300 Subject: [PATCH 07/11] HPCC-32050 -HPCC Portuguese language Update 9.6 Signed-off-by: Valdir Fumene Junior HPCC-32050 -HPCC Portuguese language Update 9.6 tSigned-off-by: Valdir Fumene Junior --- .../PT_BR/ConfiguringHPCC/ConfiguringHPCC.xml | 3116 +++++++++-------- .../ContainerizedHPCCSystemsPlatform.xml | 56 +- .../ContainerizedMods/ConfigureValues.xml | 685 +++- .../ContainerizedMods/ContainerLogging.xml | 910 +++-- .../ContainerizedMods/CustomConfig.xml | 793 ++++- .../ContainerizedMods/LocalDeployment.xml | 19 +- .../SLR-Mods/Contains.xml | 2 +- .../SLR-Mods/Copy.xml | 17 +- .../SLR-Mods/CreateExternalDirectory.xml | 25 +- .../SLR-Mods/DeleteExternalFile.xml | 17 +- .../SLR-Mods/Find.xml | 2 + .../SLR-Mods/MoveExternalFile.xml | 29 +- .../SLR-Mods/RemoteDirectory.xml | 36 +- .../SLR-Mods/TimestampToString.xml | 88 + .../SLR-Mods/getElapsedMs.xml | 55 + .../SLR-includer.xml | 18 +- .../CT_Mods/CT_Comm_Line_DFU.xml | 8 + .../HPCCClientTools/CT_Mods/CT_ECL_CLI.xml | 66 + .../HPCCClientTools/CT_Mods/CT_Overview.xml | 61 +- .../CT_Mods/CT_Overview_withoutIDE.xml | 61 +- docs/PT_BR/HPCCClientTools/CT_Mods/ECLCC.xml | 215 +- .../HPCCSystemAdmin/SA-Mods/SecMgrMod.xml | 10 +- .../SA-Mods/SecMgrModConfDeploy.xml | 3 +- docs/PT_BR/HPCCSystemAdmin/SA-Mods/WUTool.xml | 236 +- .../Inst-Mods/UserSecurityMaint.xml | 25 + .../Inst-Mods/hpcc_ldap.xml | 21 + 26 files changed, 4492 insertions(+), 2082 deletions(-) create mode 100644 docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/TimestampToString.xml create mode 100644 docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/getElapsedMs.xml diff --git a/docs/PT_BR/ConfiguringHPCC/ConfiguringHPCC.xml b/docs/PT_BR/ConfiguringHPCC/ConfiguringHPCC.xml index f9ba3b272d4..45e356df861 100644 --- a/docs/PT_BR/ConfiguringHPCC/ConfiguringHPCC.xml +++ b/docs/PT_BR/ConfiguringHPCC/ConfiguringHPCC.xml @@ -799,8 +799,7 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi de Dali - - + Selecione Dali Server no painel Navigator no lado esquerdo. @@ -823,8 +822,7 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi fileref="images/GS-img01c.png"/> ícone do disco para salvar os atributos do - - + @@ -832,19 +830,16 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi Esta seção descreve os atributos do DaliServer. - - - + - - - + @@ -855,19 +850,16 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi Esta seção descreve os atributos que configuram como o Dali manipula o armazenamento de dados do sistema. - - - + - - - + @@ -877,17 +869,14 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi Esta seção descreve a aba DaliServer LDAP. - - - + - - - + @@ -911,17 +900,14 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi Esta seção descreve os atributos do DaliServerPlugin. - - - + - - - + @@ -934,9 +920,8 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi Sistema para obter mais detalhes sobre como configurar um servidor Cassandra como um datastore do sistema. - - + @@ -976,15 +961,13 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi prefixsize - - Um valor inteiro especificando o número mínimo de - caracteres que devem ser fornecidos ao procurar curingas - no repositório. Valores maiores serão mais eficientes , - mas também mais restritivos para os usuários. O padrão é - 2. Assim como o partitions, este valor só entra em vigor - quando um novo repositório da workunit do Cassandra é - criado. - + Um valor inteiro especificando o número + mínimo de caracteres que devem ser fornecidos ao procurar + curingas no repositório. Valores maiores serão mais + eficientes , mas também mais restritivos para os usuários. + O padrão é 2. Assim como o partitions, este valor só entra + em vigor quando um novo repositório da workunit do + Cassandra é criado. @@ -1011,8 +994,7 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi - - + @@ -1046,9 +1028,8 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi Select All e depois pressione o botão OK . - - - + @@ -1065,17 +1046,14 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi Esta seção descreve os atributos do Dafilesrv. - - - + - - - + @@ -1113,17 +1091,14 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi Esta seção descreve os atributos do DfuServer. - - - + - - - + @@ -1131,17 +1106,14 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi Esta seção descreve as opções DfuServer SSH. - - - + - - - + @@ -1161,9 +1133,8 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi componentes com objetivo de determinar os diretórios que eles usarão para várias funções. - - - + @@ -1171,7 +1142,7 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi - + Nome @@ -1179,11 +1150,11 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi Descrição + + - - log - + log /var/log/[NAME]/[INST] @@ -1191,9 +1162,7 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi - - temp - + temp /var/lib/[NAME]/[INST]/temp @@ -1201,9 +1170,7 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi - - data - + data @@ -1211,9 +1178,7 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi - - data2 - + data2 @@ -1222,9 +1187,7 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi - - data3 - + data3 @@ -1232,9 +1195,7 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi - - mirror - + mirror @@ -1242,9 +1203,7 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi - - query - + query @@ -1270,8 +1229,7 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi Adicionar uma Drop Zone: - - + Clique com o botão direito do mouse no painel Navigator, no lado esquerdo, e escolha New @@ -1282,8 +1240,7 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi Selecione Drop Zone - - + Atributos da Drop Zone @@ -1295,8 +1252,7 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi Para alterar os atributos da Drop Zone: - - + Na abaAttributes, selecione o atributo a ser modificado. @@ -1315,18 +1271,14 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi Clique no ícone de disco para salvar. - - + - - - + - - - + - - - + @@ -1455,1665 +1405,1755 @@ sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/envi Esta seção descreve a aba EclAgent Options. - - - + - - - - + + Programas PIPE permitidos + + Na versão 9.2.0 e superior, os comandos usados numa ação + PIPE são restritos por padrão. No entanto, por razões de legado, + o comportamento padrão de estoque é diferente em implantações + bare-metal (em ambiente físico) e containerizadas. Em ambos os + tipos de sistemas, se allowedPipePrograms não estiver definido, + então todos os programas, exceto os "built-in", são restritos (O + único programa incorporado atualmente é o 'roxiepipe'). + + Em bare-metal, o environment.xml padrão inclui um valor de + configuração de "*" para allowedPipePrograms. Significa, por + padrão, que qualquer programa PIPE pode ser utilizado. - - Notas sobre EclAgent Process + + Em um sistema seguro, isso deve ser + removido ou editado para evitar que programas arbitrários, + incluindo programas de sistema, de serem + executados. + - Esta aba permite que você adicione notas pertinentes à - configuração do componente. Isso pode ser útil para manter um - registro de alterações e para comunicar essas informações aos - parceiros. - - + + + Notas sobre EclAgent Process + + Esta aba permite que você adicione notas pertinentes à + configuração do componente. Isso pode ser útil para manter um + registro de alterações e para comunicar essas informações aos + parceiros. + + ECL CC Server Process + + + Instâncias do Ecl CC Server + + + + + Selecione Ecl CC Server - myeclccserver no painel + Navigator no lado esquerdo. + + + + Selecione a aba Instances. + + + + Na coluna do computador, escolha um nó da lista + suspensa, conforme mostrado abaixo: + + + + Clique no ícone do disco para salvar + + + + + + + a aba Atributos do Ecl CC Server + + Esta seção descreve a aba Ecl CC Server + Attributes. + + + + + + + + + + + + + + Opções do EclCC Server Process + + Para adicionar uma opção personalizada, clique com o + botão direito e selecione adicionar. Essas opções são passadas + para o compilador eclcc. + + Veja o capítulo Compilador ECL no manual de Ferramentas do Cliente para + detalhes. + + + + + + + + Notas sobre EclCC Server Process + + Esta aba permite que você adicione notas pertinentes à + configuração do componente. Isso pode ser útil para manter um + registro de alterações e para comunicar essas informações aos + parceiros. + + + ECL Scheduler + + + Instâncias + + + + Selecione ECL + Scheduler no painel Navigator ao lado + esquerdo. + - - ECL CC Server Process + + Selecione a aba Instances. + - - Instâncias do Ecl CC Server + + Na coluna do computador, escolha um nó da lista + suspensa, conforme mostrado abaixo: + - - - - Selecione Ecl CC Server - myeclccserver no painel - Navigator no lado esquerdo. - + + Clique no ícone do disco para salvar a + aba + + + - - Selecione a aba Instances. - + + EclScheduler Attributes. - - Na coluna do computador, escolha um nó da lista - suspensa, conforme mostrado abaixo: - + Esta seção descreve a aba EclScheduler + Attributes. - - Clique no ícone do disco para salvar - - - - + + + - - a aba Atributos do Ecl CC Server + - Esta seção descreve a aba Ecl CC Server Attributes. + + + + - - - + + Notas sobre EclScheduler - + Esta aba permite que você adicione notas pertinentes à + configuração do componente. Isso pode ser útil para manter um + registro de alterações e para comunicar essas informações aos + parceiros. + + + ESP Server - - - - + + Instâncias do Esp Process - - Opções do EclCC Server Process + + + Selecione ESP - + myespno painel Navigator do lado + esquerdo. + - Para adicionar uma opção personalizada, clique com o botão - direito e selecione adicionar. Essas opções são passadas para o - compilador eclcc. + + Selecione a aba Instances. + - Veja o capítulo Compilador ECL no manual de Ferramentas do Cliente para - detalhes. + + Na coluna do computador, escolha um nó da lista + suspensa, conforme mostrado abaixo: + - + + Clique no ícone do disco para + salvar + + + - - + - - Notas sobre EclCC Server Process + - Esta aba permite que você adicione notas pertinentes à - configuração do componente. Isso pode ser útil para manter um - registro de alterações e para comunicar essas informações aos - parceiros. - - + + Esp - myesp Attributes - - ECL Scheduler + Esta seção descreve a aba Esp - myesp Attributes. - - Instâncias + + + - - - Selecione ECL Scheduler - no painel Navigator ao lado esquerdo. - + - - Selecione a aba Instances. - + + + - - Na coluna do computador, escolha um nó da lista suspensa, - conforme mostrado abaixo: - + - - Clique no ícone do disco para salvar a aba - - - + As conexões HTTP persistentes podem causar problemas de + compatibilidade com versões anteriores com clientes HTTP não + padrão. Você pode desativar esse recurso definindo + maxPersistentRequests como 0. + - - EclScheduler Attributes. + + Esp - myesp Service Bindings - Esta seção descreve a aba EclScheduler Attributes. + Esta seção descreve a aba Esp - myesp Service Bindings. + É necessários etapas adicionais para configurar as conexões do + serviço. - - - + + + - + Você deve primeiro adicionar as ligações de serviço na + primeira tabela (botão direito do mouse, Add). Em seguida, + você configuraria os atributos nas outras tabelas nessa aba. A + tabela a seguir descreve a tabela URL + Authentication - - - - + - - Notas sobre EclScheduler + + + - Esta aba permite que você adicione notas pertinentes à - configuração do componente. Isso pode ser útil para manter um - registro de alterações e para comunicar essas informações aos - parceiros. - - + - - ESP Server + As tabelas a seguir descrevem as ESPProcess Service + Bindings e funcionalidades de + autenticação. - - Instâncias do Esp Process + - - - Selecione ESP - myespno - painel Navigator do lado esquerdo. - + + + - - Selecione a aba Instances. - + + - - Na coluna do computador, escolha um nó da lista suspensa, - conforme mostrado abaixo: - + + - - Clique no - ícone do disco para salvar - - - + + - + - + + Para adicionar flags de acesso a + recursos a uma configuração preexistente do ECL + Watch: + - - Esp - myesp Attributes + Se você atualizar a plataforma, mas estiver usando uma + configuração preexistente, poderá encontrar uma situação em que + as flags de acesso de nível de recurso não sejam criadas + automaticamente. Flags ausentes podem negar acesso a usuários + que tentam acessar recursos no sistema. - Esta seção descreve a aba Esp - myesp Attributes. + + + No Configuration Manager, abra sua cópia do arquivo + environment.xml e habilite Write + Access. + - - - + + À esquerda, selecione o ESP que tá hosteando o serviço + ECL Watch. + - + + À direita, selecione a aba ESP Service + Bindings. - - - + Manualmente adicione a flad de acesso ao novo serviço + na tabela Feature Authentication. + - + + Clique com botão direito no tabela Feature + Authentication e selecione Add - As conexões HTTP persistentes podem causar problemas de - compatibilidade com versões anteriores com clientes HTTP não padrão. - Você pode desativar esse recurso definindo - maxPersistentRequests como 0. - + + + + - - Esp - myesp Service Bindings + + Providencie os valores para path e resource + (normalmente o mesmo valor, por exemplo, + WsStoreAccess). + - Esta seção descreve a aba Esp - myesp Service Bindings. É - necessários etapas adicionais para configurar as conexões do - serviço. + + Clique no ícone para salvar + - - - + + Copie o arquivo para cada nó, em seguida reinice o + sistema. - Você deve primeiro adicionar as ligações de serviço na - primeira tabela (botão direito do mouse, Add). Em seguida, você - configuraria os atributos nas outras tabelas nessa aba. A tabela a - seguir descreve a tabela URL - Authentication + As OUs devem ser criadas automaticamente no LDAP após + o reinicio. + + - + + Esp - myesp Authentication - - - + Esta seção descreve a aba Esp - myesp Service + Authentication - + + + - As tabelas a seguir descrevem as ESPProcess Service Bindings e - funcionalidades de - autenticação. + - + + + - - - + - - + Informações adicionais sobre os métodos de autenticação + disponíveis: - - + + + + - - + - + + + none - - Para adicionar flags de acesso a recursos a - uma configuração preexistente do ECL Watch: - + não utiliza autenticação + - Se você atualizar a plataforma, mas estiver usando uma - configuração preexistente, poderá encontrar uma situação em que as - flags de acesso de nível de recurso não sejam criadas automaticamente. - Flags ausentes podem negar acesso a usuários que tentam acessar - recursos no sistema. + + ldap - - - No Configuration Manager, abra sua cópia do arquivo - environment.xml e habilite Write - Access. - + usa o protocolo Lightweight Directory Access + para autenticação + - - À esquerda, selecione o ESP que tá hosteando o serviço ECL - Watch. - + + ldaps - - À direita, selecione a aba ESP Service - Bindings. + semelhante ao LDAP, mas usa um protocolo mais + seguro (TLS) + - Manualmente adicione a flad de acesso ao novo serviço na - tabela Feature Authentication. - + + secmgrPlugin - - Clique com botão direito no tabela Feature Authentication e - selecione Add + utilizado para configurar o Security Manager + Plugin + + + + + + - - - - + + Esp - AuthDomain - - Providencie os valores para path e resource (normalmente o - mesmo valor, por exemplo, WsStoreAccess). - + - - Clique no ícone para salvar - + O atributo AuthDomain + permite definir as configurações usadas para o gerenciamento + de sessões. - - Copie o arquivo para cada nó, em seguida reinice o - sistema. + - As OUs devem ser criadas automaticamente no LDAP após o - reinicio. - - + + + + + Esp - myesp HTTPS + + Esta seção descreve os atributos do Aba Esp - myesp + HTTPS. + + + + + + O atributo cipherList + permite que você defina a lista ordenada de cifras disponíveis + para uso pelo openssl. Veja a documentação em openssl.org para + mais informações sobre cifras. + + + + + + + + + + Notas sobre EspProcess + + Esta aba permite que você adicione notas pertinentes à + configuração do componente. Isso pode ser útil para manter um + registro de alterações e para comunicar essas informações aos + parceiros. + + + ESP Services + + O ESP Services fornecem um meio para adicionar + funcionalidade a um ESP Server. + + + ECL Watch Service + + O Ecl Watch permite que você configure opções para o + utilitário ECL Watch. + + + + + + + Definições do atributo ECL + Watch. + + + + + + + - - Esp - myesp Authentication + + Atributos do ECL Watch + Monitoring + + + - Esta seção descreve a aba Esp - myesp Service - Authentication + + + + + + Configurando a integração do ELK Log + Visualization + - - - + O HPCC Systems fornece um mecanismo para integrar + visualizações baseadas em ELK (ElasticSearch, Logstash e + Kibana) no ECL Watch. Esse recurso pode ser configurado e + ativado pelo gerenciador do HPCC Configuration Manager + + Para configurar o componente ELK Log Visualization, + clique e expanda o link ESP + Service no lado esquerdo e selecione o + link EclWatch . Em seguida, + selecione a aba Elk Log + Visualization no lado direito. + + A aba ELK Log Visualization no ECL Watch: + + + + + + Para configurar a integração de visualização ELK, + forneça as seguintes informações: + + No campo kibanaAddress, + forneça o endereço IP do seu componente Kibana. Por + exemplo: http://123.123.123.123 + + + + No campo kibanaPort, forneça + o número da porta Kibana. Por exemplo: 5601 + + + + No campo kibanaEntryPointURI, + insira o URI do Kibana apontando para o painel do Kibana + compartilhado. + + Por exemplo: /app/kibana#/dashboard/etc. (obtido + na aba “share" em Kibana) + + + + + + + + WsECL Service + + O serviço WsECL permite configurar opções para o + utilitário WsECL. + + + + + + Os atributos de configuração do Ws ECL. + + + + + + + + + + Opções dos atributos Ws ECL VIPS. + + + + + + + + Tabela de Restrições do Ws ECL Target + + + + + + + + + + Ws_Store + + Uma instância do ws_store está incluída no ECL Watch, + mas você pode optar por adicionar outro serviço ESP ws_store à + sua plataforma HPCC Systems. + + Para adicionar o serviço Ws_Store. + + + + Clique com o botão direito do mouse no componente + Software no painel + Navegador (no lado + direito), escolha New ESP Services + e, em seguida, ws_store na lista + suspensa. + + + + Configure os atributos ws_store conforme + necessário. + + + + Clique no ícone de disco para + salvar. + + Os seguintes valores são os atributos + configuráveis para ws_store: + + + + + + + + + + Ws_SQL + + Você pode optar por adicionar o serviço ESP ws_sql à sua + plataforma HPCC Systems. + + Para adicionar o serviço ws_sql. + + + + + Clique com o botão direito do mouse no componente + Software no painel + Navigator (no lado + direito), escolha New ESP Services + e, em seguida, ws_sql na lista suspensa. + + + + Configure o ws_sql fornecendo o nome do + serviço. + + + + Clique no ícone do disco para + salvar o + + + + + + FTSlave Process. + + FTSlave é um processo auxiliar que todo nó precisa. Esta + seção descreve uma instalação do FTSlave. + + + Instâncias + + + + Selecione ESP - MyEsp no painel do navegador ao lado + esquerdo. + - + + Selecione a aba Instances. + - - - + + - + Clique com o botão direito em uma máquina na coluna + do computador e selecione Add Instance. - Informações adicionais sobre os métodos de autenticação - disponíveis: + + + + - - - - + + - + Selecione todos os computadores da lista, depois + pressione o botão OK + . - - - none + + + + - não utiliza autenticação - + + Clique no ícone do disco para + salvar o + + + + + + FTSlave Process. + + Esta seção descreve a aba de atributos + FTSlaveProcess. + + + + + + + + + + Notas sobre FtSlave Process + + Esta aba permite que você adicione notas pertinentes à + configuração do componente. Isso pode ser útil para manter um + registro de alterações e para comunicar essas informações aos + parceiros. + + + LDAP Server Process + + Esta seção descreve os atributos de configuração de uma + instalação do LDAPServer no ConfigManager. Para obter uma + descrição completa de como adicionar autenticação LDAP, consulte + a seção Usando autenticação LDAP no + documento Instalando e executando a + plataforma HPCC Systems. - - ldap + + + - usa o protocolo Lightweight Directory Access para - autenticação - + - - ldaps + - semelhante ao LDAP, mas usa um protocolo mais - seguro (TLS) - + + LDAP Server Process Instances - - secmgrPlugin + Essa aba permite adicionar instâncias à sua configuração + LDAP. Para adicionar instâncias, você teria adicionado + anteriormente os computadores LDAP na seção Hardware. Para + obter uma descrição completa de como adicionar autenticação + LDAP, consulte a seção Usando autenticação LDAP no + documento Instalando e + executando a plataforma HPCC Systems. - utilizado para configurar o Security Manager - Plugin - - - - - - + + + Na aba Instances, + clique com o botão direito na tabela à direita e selecione + Add Instances... + - - Esp - AuthDomain + + Selecione o computador a ser usado clicando na caixa + ao lado dele. - + Este é o computador que foi adicionado anteriormente + na área Hardware / + Add New Computers. + + + + + + A conta do administrador do HPCC Systems + + Você pode configurar uma conta de administrador do HPCC + Systems com direitos administrativos limitados. O + administrador do HPCC Systems não precisa ser uma conta de + administrador LDAP. Isso permite que o administrador do HPCC + System possa configurar usuários, grupos e definir permissões + no HPCC Systems sem ter direitos para executar outras funções + administrativas do LDAP. Para usar este recurso: + + Crie um grupo LDAP para conter todos os usuários + do administrador do HPCC. Por exemplo: + "HPCCAdminGroup" + + + + No gerenciador de configuração HPCC Systems, + navegue até esta página (LDAP Server Process) e insira o + nome do grupo Administrador HPCC Systems como o valor no + campo adminGroupName. + + + + Adicione usuários (Administrador do HPCC Systems) + a este novo grupo. + + + + Salve e implemente o novo arquivo de configuração + e reinicie o ESP para aplicar a nova + configuração. + + + + + + Notas sobre LDAP Server Process + + Esta aba permite que você adicione notas pertinentes à + configuração do componente. Isso pode ser útil para manter um + registro de alterações e para comunicar essas informações aos + parceiros. + + + Sasha Server + + + Instâncias + + + + Selecione Sasha Server no menu do lado + esquerdo. + - O atributo AuthDomain permite - definir as configurações usadas para o gerenciamento de - sessões. + + Selecione a aba Instances. + - + + Na coluna do computador, escolha um nó da lista + suspensa, conforme mostrado abaixo: + + - - + + - - Esp - myesp HTTPS + + Atributos Sasha Server - Esta seção descreve os atributos do Aba Esp - myesp - HTTPS. + - - - + Esta seção descreve os valores da aba + SashaServerProcessAttribute. - O atributo cipherList permite - que você defina a lista ordenada de cifras disponíveis para uso pelo - openssl. Veja a documentação em openssl.org para mais informações - sobre cifras. + - + - - - - + + + + - - Notas sobre EspProcess + - Esta aba permite que você adicione notas pertinentes à - configuração do componente. Isso pode ser útil para manter um - registro de alterações e para comunicar essas informações aos - parceiros. - - + + SashaServer Process Archiver - - ESP Services + Esta seção descreve a aba SashaServer Process + Archiver - O ESP Services fornecem um meio para adicionar funcionalidade a - um ESP Server. + + + - - ECL Watch Service + - O Ecl Watch permite que você configure opções para o - utilitário ECL Watch. + + + - - - + + - - Definições do atributo ECL Watch. - + + SashaServer Process Coalescer - + Esta seção descreve a aba SashaServer Process + Coalescer - - - + + + - - Atributos do ECL Watch Monitoring - + - + + + + - - - + - - Configurando a integração do ELK Log - Visualization - + + SashaServer Process DfuXRef - O HPCC Systems fornece um mecanismo para integrar - visualizações baseadas em ELK (ElasticSearch, Logstash e Kibana) no - ECL Watch. Esse recurso pode ser configurado e ativado pelo - gerenciador do HPCC Configuration Manager + Esta seção descreve a aba SashaServer Process + DfuXref - Para configurar o componente ELK Log Visualization, clique e - expanda o link ESP Service no lado - esquerdo e selecione o link - EclWatch . Em seguida, selecione a aba Elk Log Visualization no lado direito. + + + - A aba ELK Log Visualization no ECL Watch: + - - - + + + + - Para configurar a integração de visualização ELK, forneça as - seguintes informações: - - No campo kibanaAddress, forneça o - endereço IP do seu componente Kibana. Por exemplo: - http://123.123.123.123 - + - - No campo kibanaPort, forneça o - número da porta Kibana. Por exemplo: 5601 - + + SashaServer Process DfuExpiry - - No campo kibanaEntryPointURI, - insira o URI do Kibana apontando para o painel do Kibana - compartilhado. + Esta seção descreve a aba SashaServer Process + DfuExpiry - Por exemplo: /app/kibana#/dashboard/etc. (obtido na aba - “share" em Kibana) - - + + + - - + - - WsECL Service + - O serviço WsECL permite configurar opções para o utilitário - WsECL. + + + + - - - + - Os atributos de configuração do Ws ECL. + + SashaServer Process ThorQMon - + Esta seção descreve a aba SashaServer Process + ThorQMon - - - + + + - + - Opções dos atributos Ws ECL VIPS. + + + + - + - - - + + SashaServer Process DaFileSrvMonitor - Tabela de Restrições do Ws ECL Target + Esta seção descreve a aba SashaServer Process + DaFileSrvMonitor - + + + - - - - + - - Ws_Store + + + + - Uma instância do ws_store está incluída no ECL Watch, mas você - pode optar por adicionar outro serviço ESP ws_store à sua plataforma - HPCC Systems. + + Notas sobre SashaServer Process - Para adicionar o serviço Ws_Store. + Esta aba permite que você adicione notas pertinentes à + configuração do componente. Isso pode ser útil para manter um + registro de alterações e para comunicar essas informações aos + parceiros. + + + Thor - - - Clique com o botão direito do mouse no componente - Software no painel Navegador (no lado direito), escolha - New ESP Services e, em - seguida, ws_store na lista - suspensa. - + Esta seção detalha como definir um cluster de refinaria de + dados (Thor). Antes de começar, você deve decidir a largura do + cluster (ou seja, quantos nós filhos você terá). - - Configure os atributos ws_store conforme - necessário. - + + + Selecione Thor Cluster - + mythor no painel Navigator no lado + esquerdo. + - - Clique no ícone de disco para salvar. - - Os seguintes valores são os atributos configuráveis - para ws_store: - - - - - - - - - - Ws_SQL - - Você pode optar por adicionar o serviço ESP ws_sql à sua - plataforma HPCC Systems. - - Para adicionar o serviço ws_sql. - - - - - Clique com o botão direito do mouse no componente - Software no painel Navigator (no lado direito), escolha - New ESP Services e, em - seguida, ws_sql na lista - suspensa. - - - - Configure o ws_sql fornecendo o nome do serviço. - - - - Clique no ícone do disco para salvar - o - - - - - - - - FTSlave Process. - - FTSlave é um processo auxiliar que todo nó precisa. Esta seção - descreve uma instalação do FTSlave. - - - Instâncias - - - - Selecione ESP - MyEsp no painel do navegador ao lado - esquerdo. - - - - Selecione a aba Instances. - - - - - - Clique com o botão direito em uma máquina na coluna do - computador e selecione Add Instance. - - - - - - - - - - Selecione todos os computadores da lista, depois pressione - o botão OK . - - - - - - - - Clique no - ícone do disco para salvar o - - - - - - FTSlave Process. - - Esta seção descreve a aba de atributos FTSlaveProcess. - - - - - - - - - - Notas sobre FtSlave Process - - Esta aba permite que você adicione notas pertinentes à - configuração do componente. Isso pode ser útil para manter um - registro de alterações e para comunicar essas informações aos - parceiros. - - - - - LDAP Server Process - - Esta seção descreve os atributos de configuração de uma - instalação do LDAPServer no ConfigManager. Para obter uma descrição - completa de como adicionar autenticação LDAP, consulte a seção - Usando autenticação LDAP no documento Instalando e executando a - plataforma HPCC Systems. - - - - - - - - - - - LDAP Server Process Instances - - Essa aba permite adicionar instâncias à sua configuração LDAP. - Para adicionar instâncias, você teria adicionado anteriormente os - computadores LDAP na seção Hardware. Para obter uma descrição - completa de como adicionar autenticação LDAP, consulte a seção - Usando autenticação LDAP no documento Instalando e executando a plataforma HPCC - Systems. - - - - Na aba Instances, clique - com o botão direito na tabela à direita e selecione Add Instances... - - - - Selecione o computador a ser usado clicando na caixa ao - lado dele. - - Este é o computador que foi adicionado anteriormente na - área Hardware / Add New Computers. - - - - - - A conta do administrador do HPCC Systems - - Você pode configurar uma conta de administrador do HPCC - Systems com direitos administrativos limitados. O administrador do - HPCC Systems não precisa ser uma conta de administrador LDAP. Isso - permite que o administrador do HPCC System possa configurar - usuários, grupos e definir permissões no HPCC Systems sem ter - direitos para executar outras funções administrativas do LDAP. Para - usar este recurso: - - Crie um grupo LDAP para conter todos os usuários do - administrador do HPCC. Por exemplo: "HPCCAdminGroup" - - - - No gerenciador de configuração HPCC Systems, navegue até - esta página (LDAP Server Process) e insira o nome do grupo - Administrador HPCC Systems como o valor no campo adminGroupName. - - - - Adicione usuários (Administrador do HPCC Systems) a este - novo grupo. - - - - Salve e implemente o novo arquivo de configuração e - reinicie o ESP para aplicar a nova configuração. - - - - - - Notas sobre LDAP Server Process - - Esta aba permite que você adicione notas pertinentes à - configuração do componente. Isso pode ser útil para manter um - registro de alterações e para comunicar essas informações aos - parceiros. - - - - - Sasha Server - - - Instâncias - - - - Selecione Sasha Server no menu do lado esquerdo. - - - - Selecione a aba Instances. - - - - Na coluna do computador, escolha um nó da lista suspensa, - conforme mostrado abaixo: - - - - - - - - Atributos Sasha Server - - - - Esta seção descreve os valores da aba - SashaServerProcessAttribute. - - - - - - - - - - - - - - SashaServer Process Archiver - - Esta seção descreve a aba SashaServer Process Archiver - - - - + + Selecione a aba + Topology . + - + + Expanda a Topology, se necessário, clique com o botão + direito do mouse no Master e selecione Delete. + + - - - + Isso exclui o Thor de um nó de amostra. - - + Você irá substituir isso por um cluster de vários + nós. - - SashaServer Process Coalescer + + + - Esta seção descreve a aba SashaServer Process Coalescer + Clique com o botão direito do mouse na Topologia e + selecione Add Master. - - - + + + + - + + - - - - + Selecione um computador na lista e pressione o botão + OK. - + + + + - - SashaServer Process DfuXRef + + - Esta seção descreve a aba SashaServer Process DfuXref + Clique com o botão direito no mestre e selecione Add + Slaves. - - - + + + + - + + - - - - + Selecione os computadores a serem usados como filhos + na lista e pressione o botão OK. Use CTRL+CLICK para + multi-seleção ou SHIFT+CLICK para selecionar um + intervalo. - + Os nós agora são exibidos abaixo do nó + do Thor Master. - - SashaServer Process DfuExpiry + + + + - Esta seção descreve a aba SashaServer Process DfuExpiry + + Selecione Thor Cluster - mythor no painel Navigator no + lado esquerdo. + - - - + + - + Selecione a aba Attributes. - + + + + - - - - + + É possível alterar o valor localThor para false + - + + Clique no ícone do disco para + salvar + + - - SashaServer Process ThorQMon + - Esta seção descreve a aba SashaServer Process ThorQMon + + a alteração da topologia do Thor - - - + Se você deseja designar um nó diferente como o mestre + Thor ao configurar um sistema de vários nós, siga estas + etapas. - + + + Selecione Thor Cluster - + mythor no painel do Navigator ao lado + esquerdo. + - - - - + + Selecione a aba + Topology . + - + + Clique com o botão direito do mouse no nó + mestre + - - SashaServer Process DaFileSrvMonitor + + + + Selecione a opção Replace + Master + + + + + + + + + + + + + + + + + + + + + Você só deve usar esse recurso quando + configurar inicialmente seu sistema. Se houver dados + nos nós ao tentar trocar o mestre, você corre o + risco de perder ou corromper alguns dados. + + + + + + + + + + + + + Atributos ThorCluster + + Esta seção descreve a aba Thor Cluster + Attributes. + + + + + + + Configurações de Memória do Thor + + Quando o globalMemorySize é deixado + indefinido, Thor [master] detecta a memória física total e + aloca 75% dela. Se houver múltiplos escravos por nó + (slavesPerNode>1), ele divide o total entre os escravos. + Se globalMemorySize for definido, ele aloca a quantidade de + memória para cada slave. O atributo masterMemorySize aloca + memória para o mestre Thor. Se omitido, o Thor master usa + globalMemorySize ou o padrão 75% de memória. + + Em sistemas com muita memória, o padrão de 75% da + memória física é provavelmente muito conservador e reservar + o total físico menos 2GB (para o SO e outros processos) é + sensato. Você deve então dividir esse número pelo número de + slavesPerNode. + + Se houver vários Thors compartilhando os mesmos nós, o + globalMemorySize deverá ser configurado para levar isso em + conta. + + Por exemplo, se houver 2 Thors, cada um com 2 escravos + por caixa, isso significará que há 4 escravos por nó físico. + Portanto, você deve usar uma fórmula semelhante à seguinte + em seus cálculos ao configurar globalMemorySize: + + globalMemorySize = (total-physical-memory)-2GB / (2*2) + + Sem nenhuma configuração especificada, o Thor assume + que tem acesso exclusivo à memória e, portanto, usaria muito + (porque cada Thor não está ciente da configuração e uso de + memória do outro). + + Se localThor estiver + configurado como true e masterMemorySize e globalMemorySize não forem + especificados, os padrões serão 50% para globalMemorySize (dividido por + slavesPerNode) e 25% para + masterMemorySize. + + Embora uma configuração possa ser definida usando + limites de memória superiores que excedam a memória física + total, o Thor não reservará a memória com antecedência. Isso + somente ocorrerá em casos de problemas de memória quando e + se seus jobs usarem toda a memória. Portanto, por exemplo, + dois Thors configurados para usar toda a memória disponível + podem coexistir pacificamente até que uma consulta em cada + um esteja usando simultaneamente mais memória do que o nó + disponível. + + + + + + + + + + + Programas PIPE permitidos + + Na versão 9.2.0 e superior, os comandos usados numa ação + PIPE são restritos por padrão. No entanto, por razões de + legado, o comportamento padrão de estoque é diferente em + implantações bare-metal (em ambiente físico) e + containerizadas. Em ambos os tipos de sistemas, se + allowedPipePrograms não estiver definido, então todos os + programas, exceto os "built-in", são restritos (O único + programa incorporado atualmente é o 'roxiepipe'). + + Em bare-metal, o environment.xml padrão inclui um valor + de configuração de "*" para allowedPipePrograms. Significa, por + padrão, que qualquer programa PIPE pode ser utilizado. + + + Em um sistema seguro, isso deve ser + removido ou editado para evitar que programas arbitrários, + incluindo programas de sistema, de serem + executados. + + + + - Esta seção descreve a aba SashaServer Process - DaFileSrvMonitor + - - - + + Opções do SSH ThorCluster - + Esta seção descreve a aba ThorCluster SSH + Options. - - - - + + + - - Notas sobre SashaServer Process + - Esta aba permite que você adicione notas pertinentes à - configuração do componente. Isso pode ser útil para manter um - registro de alterações e para comunicar essas informações aos - parceiros. - - + + + + - - Thor + + Depuração do ThorCluster - Esta seção detalha como definir um cluster de refinaria de dados - (Thor). Antes de começar, você deve decidir a largura do cluster (ou - seja, quantos nós filhos você terá). + A aba de depuração é somente para uso interno. + - - - Selecione Thor Cluster - - mythor no painel Navigator no lado esquerdo. - + - - Selecione a aba Topology - . - + + Nó Swap ThorCluster - - Expanda a Topology, se necessário, clique com o botão - direito do mouse no Master e selecione Delete. - - + Esta seção descreve a aba ThorCluster Swap Node - Isso exclui o Thor de um nó de amostra. + + + - Você irá substituir isso por um cluster de vários nós. + - - - + + + + - Clique com o botão direito do mouse na Topologia e selecione - Add Master. + - - - - + + Notas sobre ThorCluster - - + Esta aba permite que você adicione notas pertinentes à + configuração do componente. Isso pode ser útil para manter um + registro de alterações e para comunicar essas informações aos + parceiros. + + + Roxie - Selecione um computador na lista e pressione o botão - OK. + Esta seção detalha como definir um cluster do Mecanismo de + Entrega Rápida de Dados (Rapid Data Delivery Engine - Roxie). + Antes de começar, você deve decidir a largura do cluster (ou + seja, quantos nós de agente você terá). - - - - + - - + + + Selecione Roxie + Cluster no painel do navegador ao lado + esquerdo. + + Observação: Se você + não especificou um valor no campo Number of nodes + for Roxie cluster (Número de nós para o cluster Roxie) + ao configurar seu ambiente pela primeira vez, + você não terá um Roxie Cluster. Para adicionar um componente + Roxie Cluster: Clique com o botão direito do mouse no + componente Software no + Painel Navigator, selecione New + Components e depois roxie nas listas suspensas. + - Clique com o botão direito no mestre e selecione Add - Slaves. + + Selecione a aba Servidores . + - - - - + + - - + Clique com o botão direito do mouse nos Servidores + Roxie e selecione Reconfigure + Servers. - Selecione os computadores a serem usados como filhos na - lista e pressione o botão OK. Use CTRL+CLICK para multi-seleção ou - SHIFT+CLICK para selecionar um intervalo. + + + + - Os nós agora são exibidos abaixo do nó do - Thor Master. + + - - - - + Selecione os computadores a serem usados como + servidores na lista e pressione o botão OK. - - Selecione Thor Cluster - mythor no painel Navigator no lado - esquerdo. - + + + + - - + + Selecione a aba + Redundancy . + - Selecione a aba Attributes. + + - - - - + Selecione o esquema de redundância a ser usado. + Normalmente, isso é redundância cíclica, conforme mostrado + abaixo. - - É possível alterar o valor localThor para false - + + + + - - Clique no - ícone do disco para salvar - - + + Clique no ícone do disco para + salvar + - + + Feche o Gerenciador de Configuração, pressionando + ctrl+C na janela de comando em que está sendo + executado. + + + + + Atributos de Configuração do Roxie + + O Roxie possui muitos atributos configuráveis que podem + ser usados para personalizar e ajustar suas necessidades + específicas. A seção a seguir se expande em cada uma das guias + Roxie e nos atributos disponíveis. Há informações adicionais + sobre a configuração do Roxie na seção imediatamente após + essas tabelas. + + + + + + + <sect3> + <title>Itens adicionais de Configuração Roxie + + + + + Conexões Persistentes para o + Roxie + + + As conexões persistentes podem causar problemas de + compatibilidade com versões anteriores com clientes HTTP não + padrão. Você pode desativar esse recurso definindo + maxHttpConnectionRequests como 0 ou + 1. + + Além disso, conexões persistentes podem afetar o + balanceamento de carga do Roxie. Se isso for uma preocupação, + você poderá ajustar os valores + maxHttpConnectionRequests e + maxHttpKeepAliveWait para otimizar por + quanto tempo todas as transações de uma conexão persistente + específica vão para um único nó, em vez de serem distribuídas + pelo cluster. + + + Adicionar servidores ao Roxie + Farm + + + Para adicionar servidores ao Roxie Farm + + + + Selecione o Roxie Cluster - + myroxie (padrão) na janela Navigator no lado + esquerdo. + + + + Selecione a aba Servidores . + + + + Clique com o botão direito do mouse em Roxie Servers. + + + + Selecione Reconfigure + Servers. + + + + Pressione o botão + Add Hardware. + + + + Digite os valores para os novo(s) servidore(s) na + caixa de diálogo e pressione OK. + + Todos os servidores configurados são usados + quando você cria uma porta para escutar. + + + + OBSERVAÇÃO + + + Se estiver trabalhando com um arquivo de ambiente + antigo, esse processo foi alterado. Você não precisa + mais especificar para um servidor usar uma porta + específica. + + + + + + + Redundância + + O Roxie pode ser configurado para utilizar alguns + modelos de redundância diferentes. + + Simple Redundancy - um canal por agente. Mais + comumente usado para um único nó Roxie. + + + + Full Redundancy - mais agente que o número de + canais. Vários agentes hospedam cada canal. + + + + Overloaded Redundancy - Existem vários canais por + agente. + + + + Cyclic Redundancy - Cada nó hospeda vários canais + em rotação. A configuração mais usada. + + + + + Topology + + Esta seção descreve a aba Topology. - - a alteração da topologia do Thor + + - Se você deseja designar um nó diferente como o mestre Thor ao - configurar um sistema de vários nós, siga estas etapas. + + + - - - Selecione Thor Cluster - - mythor no painel do Navigator ao lado - esquerdo. - + - - Selecione a aba Topology - . - + + + Nome do Atributo - - Clique com o botão direito do mouse no nó mestre - + Definição + - - + + + Topology + - Selecione a opção Replace - Master + descreve a topologia do sistema + - - - + + + Cluster - thor + - - - + descreve os clusters Thor + - - + + + Cluster - hthor + - + descreve os clusters de hThor + - - + Cluster - roxie - Você só deve usar esse recurso quando - configurar inicialmente seu sistema. Se houver dados - nos nós ao tentar trocar o mestre, você corre o risco - de perder ou corromper alguns dados. + descreve os clusters Roxie - - - - - - - - Atributos ThorCluster - - Esta seção descreve a aba Thor Cluster Attributes. - - - - - - - Configurações de Memória do Thor - - Quando o globalMemorySize é - deixado indefinido, Thor [master] detecta a memória física total e - aloca 75% dela. Se houver múltiplos escravos por nó - (slavesPerNode>1), ele divide o total entre os escravos. Se - globalMemorySize for definido, ele aloca a quantidade de memória - para cada slave. O atributo masterMemorySize aloca memória para o - mestre Thor. Se omitido, o Thor master usa globalMemorySize ou o - padrão 75% de memória. - - Em sistemas com muita memória, o padrão de 75% da memória - física é provavelmente muito conservador e reservar o total físico - menos 2GB (para o SO e outros processos) é sensato. Você deve - então dividir esse número pelo número de slavesPerNode. - - Se houver vários Thors compartilhando os mesmos nós, o - globalMemorySize deverá ser configurado para levar isso em - conta. - - Por exemplo, se houver 2 Thors, cada um com 2 escravos por - caixa, isso significará que há 4 escravos por nó físico. Portanto, - você deve usar uma fórmula semelhante à seguinte em seus cálculos - ao configurar globalMemorySize: - - globalMemorySize = (total-physical-memory)-2GB / (2*2) - - Sem nenhuma configuração especificada, o Thor assume que tem - acesso exclusivo à memória e, portanto, usaria muito (porque cada - Thor não está ciente da configuração e uso de memória do - outro). - - Se localThor estiver - configurado como true e masterMemorySize e globalMemorySize não forem especificados, - os padrões serão 50% para globalMemorySize (dividido por slavesPerNode) e 25% para masterMemorySize. - - Embora uma configuração possa ser definida usando limites de - memória superiores que excedam a memória física total, o Thor não - reservará a memória com antecedência. Isso somente ocorrerá em - casos de problemas de memória quando e se seus jobs usarem toda a - memória. Portanto, por exemplo, dois Thors configurados para usar - toda a memória disponível podem coexistir pacificamente até que - uma consulta em cada um esteja usando simultaneamente mais memória - do que o nó disponível. - - - - - - - - - - - - - - - Opções do SSH ThorCluster - - Esta seção descreve a aba ThorCluster SSH Options. - - - - - - - - - - - - - - Depuração do ThorCluster + + Topo Server - A aba de depuração é somente para uso interno. - - - - - - Nó Swap ThorCluster - - Esta seção descreve a aba ThorCluster Swap Node - - - - - - - - - - - - - - - - Notas sobre ThorCluster - - Esta aba permite que você adicione notas pertinentes à - configuração do componente. Isso pode ser útil para manter um - registro de alterações e para comunicar essas informações aos - parceiros. - - - - - Roxie - - Esta seção detalha como definir um cluster do Mecanismo de - Entrega Rápida de Dados (Rapid Data Delivery Engine - Roxie). Antes de - começar, você deve decidir a largura do cluster (ou seja, quantos nós - de agente você terá). - - - - - - Selecione Roxie Cluster no - painel do navegador ao lado esquerdo. - - Observação: Se você não - especificou um valor no campo Number of nodes for Roxie - cluster (Número de nós para o cluster Roxie) ao - configurar seu ambiente pela primeira vez, você não terá um Roxie - Cluster. Para adicionar um componente Roxie Cluster: Clique com o - botão direito do mouse no componente Software no Painel Navigator, selecione - New Components e depois roxie nas listas suspensas. - - - - Selecione a aba Servidores - . - + Esse processo TopoServer é configurado através do servidor + Topo Server - mytoposerver do Configuration + Manager. Você define as instâncias e, em seguida, define os + atributos de configuração. - - - - Clique com o botão direito do mouse nos Servidores Roxie e - selecione Reconfigure Servers. - - - - - - - - - - Selecione os computadores a serem usados como servidores na - lista e pressione o botão OK. - - - - - - - - Selecione a aba Redundancy - . - - - - - - Selecione o esquema de redundância a ser usado. Normalmente, - isso é redundância cíclica, conforme mostrado abaixo. - - - - - - - - Clique no - ícone do disco para salvar - - - - Feche o Gerenciador de Configuração, pressionando ctrl+C na - janela de comando em que está sendo executado. - - - - - Atributos de Configuração do Roxie - - O Roxie possui muitos atributos configuráveis que podem ser - usados para personalizar e ajustar suas necessidades específicas. A - seção a seguir se expande em cada uma das guias Roxie e nos - atributos disponíveis. Há informações adicionais sobre a - configuração do Roxie na seção imediatamente após essas - tabelas. - - - - - - - - - - - - - <sect3> - <title>Itens adicionais de Configuração Roxie - - - - - Conexões Persistentes para o - Roxie - - - As conexões persistentes podem causar problemas de - compatibilidade com versões anteriores com clientes HTTP não padrão. - Você pode desativar esse recurso definindo - maxHttpConnectionRequests como 0 ou 1. - - Além disso, conexões persistentes podem afetar o balanceamento - de carga do Roxie. Se isso for uma preocupação, você poderá ajustar - os valores maxHttpConnectionRequests e - maxHttpKeepAliveWait para otimizar por quanto - tempo todas as transações de uma conexão persistente específica vão - para um único nó, em vez de serem distribuídas pelo cluster. - - - Adicionar servidores ao Roxie - Farm - - - Para adicionar servidores ao Roxie Farm - - - - Selecione o Roxie Cluster - - myroxie (padrão) na janela Navigator no lado - esquerdo. - - - - Selecione a aba Servidores . - - - - Clique com o botão direito do mouse em Roxie Servers. - - - - Selecione Reconfigure - Servers. - - - - Pressione o botão Add - Hardware. - - - - Digite os valores para os novo(s) servidore(s) na caixa - de diálogo e pressione OK. - - Todos os servidores configurados são usados quando - você cria uma porta para escutar. - - - - OBSERVAÇÃO - - - Se estiver trabalhando com um arquivo de ambiente - antigo, esse processo foi alterado. Você não precisa mais - especificar para um servidor usar uma porta específica. - - - - - - - Redundância - - O Roxie pode ser configurado para utilizar alguns modelos de - redundância diferentes. - - Simple Redundancy - um canal por agente. Mais comumente - usado para um único nó Roxie. - - - - Full Redundancy - mais agente que o número de canais. - Vários agentes hospedam cada canal. - - - - Overloaded Redundancy - Existem vários canais por - agente. - - - - Cyclic Redundancy - Cada nó hospeda vários canais em - rotação. A configuração mais usada. - - - - - - - Topology - - Esta seção descreve a aba Topology. - - - - - - - - - - - - - Nome do Atributo - - Definição - - - - - Topology - - - descreve a topologia do sistema - - - - - Cluster - thor - - - descreve os clusters Thor - - - - - Cluster - hthor - - - descreve os clusters de hThor - - - - - Cluster - roxie - - - descreve os clusters Roxie - - - - - - - - - Topo Server - - Esse processo TopoServer é configurado através do servidor - Topo Server - mytoposerver do Configuration - Manager. Você define as instâncias e, em seguida, define os atributos - de configuração. - - - - - - - - - - - - Distribuir alterações na configuração para todos os nós + + + - Após ter configurado seu ambiente da forma desejada, é preciso - copiar o arquivo de configuração para os demais nós. + - + + + Distribuir alterações na configuração para todos os + nós - - - Se o sistema estiver em execução, pare o sistema. + Após ter configurado seu ambiente da forma desejada, é + preciso copiar o arquivo de configuração para os demais + nós. - - - + - - - - - - - - - - - - Certifique-se de que o HPCC System não esteja em - execução antes de tentar copiar o arquivo - Environment.xml. - - - - - - + + + Se o sistema estiver em execução, pare o + sistema. + + + + + + + + + + + + + + + + + Certifique-se de que o HPCC System não esteja + em execução antes de tentar copiar o arquivo + Environment.xml. + + + + + + - - Salve o arquivo environment.xml em um backup. + + Salve o arquivo environment.xml em um backup. - # por exemplo + # por exemplo sudo -u hpcc cp /etc/HPCCSystems/environment.xml /etc/HPCCSystems/environment.bak - Observação: o arquivo environment.xml do ambiente em - execução está localizado em seu diretório /etc/HPCCSystems/. O Gerenciador de - Configurações funciona em arquivos no diretório /etc/HPCCSystems/source. É necessário - copiar deste local para criar um arquivo environment.xml - ativo. - + Observação: o arquivo environment.xml do ambiente em + execução está localizado em seu diretório /etc/HPCCSystems/. O Gerenciador de + Configurações funciona em arquivos no diretório /etc/HPCCSystems/source. É necessário + copiar deste local para criar um arquivo environment.xml + ativo. + - - Copie o novo arquivo NewEnvironment.xml do diretório de - origem para /etc/HPCCSystems e renomeie o arquivo para - environment.xml + + Copie o novo arquivo NewEnvironment.xml do diretório + de origem para /etc/HPCCSystems e renomeie o arquivo para + environment.xml - # por exemplo + # por exemplo sudo -u hpcc cp /etc/HPCCSystems/source/NewEnvironment.xml /etc/HPCCSystems/environment.xml - - - - - Copie o /etc/HPCCSystems/environment.xml para o - /etc/HPCCSystems/ em cada nó. + + - - + + Copie o /etc/HPCCSystems/environment.xml para o + /etc/HPCCSystems/ em cada nó. + - - Inicie a plataforma do HPCC System - - Se preferir, use um script para automatizar essa etapa, - especialmente se você tiver muitos nós. Consulte a seção Scripts - de exemplo na seção Anexos do manual Como instalar e executar a - plataforma do HPCC System. É possível usar os scripts como um - modelo para criar seu próprio script e copiar o arquivo - environment.xml para todos os seus nós. - - + + Inicie a plataforma do HPCC System + + Se preferir, use um script para automatizar essa + etapa, especialmente se você tiver muitos nós. Consulte a + seção Scripts de exemplo na seção Anexos do manual Como + instalar e executar a plataforma do HPCC System. É possível + usar os scripts como um modelo para criar seu próprio script + e copiar o arquivo environment.xml para todos os seus + nós. + + + + diff --git a/docs/PT_BR/ContainerizedHPCC/ContainerizedHPCCSystemsPlatform.xml b/docs/PT_BR/ContainerizedHPCC/ContainerizedHPCCSystemsPlatform.xml index 546423e35f8..8f31dd9ff65 100644 --- a/docs/PT_BR/ContainerizedHPCC/ContainerizedHPCCSystemsPlatform.xml +++ b/docs/PT_BR/ContainerizedHPCC/ContainerizedHPCCSystemsPlatform.xml @@ -65,10 +65,11 @@ Visão geral do HPCC em contêineres - A partir da versão 8.0, a plataforma HPCC - Systems® focará em deploys em contêineres. Isso - é útil para implantações baseadas em nuvem (grandes ou pequenas) ou - implantações de teste/desenvolvimento locais. + Desde a versão 8.0, a Plataforma HPCC + Systems® começou a focar significativamente em + implantações containerizadas. Isso é útil para implantações baseadas em + nuvem (grandes ou pequenas) ou implantações de teste/desenvolvimento + local. Os contêineres do Docker gerenciados pelo Kubernetes (K8s) são um novo ambiente operacional de destino, juntamente com o suporte contínuo @@ -84,20 +85,19 @@ em como os componentes são configurados, como e quando eles iniciam e onde armazenam seus dados. - Este livro se concentra em implantações em contêineres. A primeira - seção é sobre o uso de contêineres Docker e gráficos Helm localmente. - Docker e Helm fazem muito do trabalho para você. A segunda parte usa as - mesmas técnicas na nuvem. + Este livro se concentra nessas implantações containerizadas. A + primeira seção é sobre o uso de contêineres Docker e gráficos Helm + localmente. Docker e Helm fazem muito do trabalho por você. A segunda + parte usa as mesmas técnicas na nuvem. Para pequenas implantações locais (para desenvolvimento e teste), sugerimos o uso de Docker Desktop e Helm. Isto é útil para aprendizagem, desenvolvimento e teste. - Para implantações em nuvem, você pode usar qualquer tipo de serviço - em nuvem, se for compatível com Docker, Kubernetes e Helm. Este livro, no - entanto, se concentrará no Microsoft Azure para serviços em nuvem. As - versões futuras podem incluir especificações para outros provedores de - nuvem. + Para implantações em nuvem, você pode utilizar qualquer tipo de + serviços de Cloud, desde que suporte Docker, Kubernetes e Helm. Este + livro, no entanto, vai focar nos Serviços de Nuvem da Microsoft + Azure. Se você deseja gerenciar manualmente sua implantação local ou na nuvem, ainda pode usar os instaladores tradicionais e o Configuration @@ -105,33 +105,17 @@ Helm fornecem, como instrumentação, monitoramento, escalonamento e custo ao controle. - Os sistemas HPCC seguem as convenções padrão sobre como as - implantações do Kubernetes são normalmente configuradas e gerenciadas, - portanto, deve ser fácil para alguém familiarizado com o Kubernetes e o - Helm instalar e gerenciar a plataforma HPCC Systems. - - - - Note: - - - A versão tradicional bare-metal da plataforma de sistemas HPCC - está madura e tem sido amplamente usada em aplicativos comerciais - por quase duas décadas e é totalmente destinada para uso em - produção. A versão em contêiner é nova e ainda não está 100% pronta - para produção. Além disso, alguns aspectos dessa versão podem ser - alterados sem aviso prévio. Nós encorajamos você a usá-lo e fornecer - feedback para que possamos tornar esta versão tão robusta quanto uma - instalação bare-metal. - - - + O HPCC Systems segue as convenções padrão sobre como as implantações + do Kubernetes são normalmente configuradas e gerenciadas, portanto, deve + ser fácil para alguém familiarizado com o Kubernetes e o Helm instalar e + gerenciar a plataforma HPCC Systems. Bare-metal vs Containers - Se você estiver familiarizado com a plataforma HPCC Systems, há - algumas mudanças fundamentais a serem observadas. + Se você está familiarizado com as implantações tradicionais da + plataforma HPCC Systems em bare-metal, há algumas mudanças fundamentais + a serem observadas. Processoss e pods, não máquinas diff --git a/docs/PT_BR/ContainerizedHPCC/ContainerizedMods/ConfigureValues.xml b/docs/PT_BR/ContainerizedHPCC/ContainerizedMods/ConfigureValues.xml index bd6474cd740..157e6ac5528 100644 --- a/docs/PT_BR/ContainerizedHPCC/ContainerizedMods/ConfigureValues.xml +++ b/docs/PT_BR/ContainerizedHPCC/ContainerizedMods/ConfigureValues.xml @@ -917,6 +917,42 @@ incluindo a categoria "ecl", são lidas internamente pelos componentes do sistema e não expostas diretamente ao código ECL. + + + Manipulação de Recursos de Origem Cruzada + + O compartilhamento de recursos de origem cruzada (CORS) é um + mecanismo para integrar aplicativos em diferentes domínios. CORS + define como as aplicações web do cliente em um domínio podem interagir + com recursos em outro domínio. Você pode configurar as configurações + de suporte ao CORS na seção ESP do arquivo values.yaml, conforme + ilustrado abaixo: + + esp: +- name: eclwatch + application: eclwatch + auth: ldap + replicas: 1 + # The following 'corsAllowed' section is used to configure CORS support + # origin - the origin to support CORS requests from + # headers - the headers to allow for the given origin via CORS + # methods - the HTTP methods to allow for the given origin via CORS + # + corsAllowed: + # origin starting with https will only allow https CORS + - origin: https://*.example2.com + headers: + - "X-Custom-Header" + methods: + - "GET" + # origin starting with http will allow http or https CORS + - origin: http://www.example.com + headers: + - "*" + methods: + - "GET" + - "POST" + @@ -943,7 +979,7 @@ - Resources + Recursos A maioria dos componentes tem uma seção de recursos que define quantos recursos são atribuídos a esse componente. Nos arquivos de @@ -969,17 +1005,17 @@ manager, worker e eclagent têm requisitos de recursos diferentes. + - - Taints, Tolerations e Placements + + Valores do Ambiente + + Você pode definir variáveis de ambiente em um arquivo YAML. Os + valores do ambiente são definidos na seção + global.env do arquivo values.yaml fornecido + peloHPCC Systems. Esses valores são especificados como uma lista de + pares de nome-valor, conforme ilustrado abaixo. - Esta é uma consideração importante para sistemas em contêineres. - Taints e Tolerations são tipos de restrições de nó do Kubernetes - também referidas por Node Affinity. A - afinidade do nó é uma maneira de restringir os pods aos nós. Apenas - uma "afinidade" pode ser aplicada a um pod. Se um pod corresponder a - várias listas de "pods" de canais, somente a última definição de - "afinidade" será aplicada. Os taints e as tolerations trabalham juntos para garantir que os pods não sejam agendados em nós inadequados. As tolerâncias são @@ -1060,7 +1096,7 @@ posicionamentos para garantir que os pods com requisitos específicos sejam colocados nos nós apropriados. - + Environment Values @@ -1072,19 +1108,628 @@ conforme ilustrado abaixo. global: + + global: +bbe9bd8001 (HPCC-32050 -HPCC Portuguese language Update 9.6) env: - name: SMTPserver value: mysmtpserver - A seção global.env do arquivo values.yaml fornecido adiciona - variáveis de ambiente padrão para todos os componentes. Você também - pode especificar variáveis de ambiente para os componentes - individuais. Consulte o schema para definir esse valor para - componentes individuais. + A seção global.env do arquivo values.yaml fornecido adiciona + variáveis de ambiente padrão para todos os componentes. Você também pode + especificar variáveis de ambiente para os componentes individuais. + Consulte o esquema para definir este valor para componentes + individuais. + + Para adicionar valores de ambiente, você pode inseri-los em seu + arquivo YAML de configurações personalizadas ao implantar o HPCC Systems + conteinerizados. Esta solicitação é baseada na conversa anterior. + + + Variáveis de Ambiente para Sistemas Containerizados + + Existem várias configurações em environment.conf para sistemas + bare-metal. Embora muitas configurações de environment.conf não sejam + válidas para contêineres, algumas podem ser úteis. Em uma implantação + em nuvem, essas configurações são herdadas de variáveis de ambiente. + Essas variáveis de ambiente são configuráveis usando o arquivo yaml + values, seja globalmente ou no nível do componente. + + Algumas dessas variáveis estão disponíveis para implementações + em contêiner e na nuvem e podem ser definidas usando o chart Helm. Os + seguintes valores de environment.conf para bare-metal têm esses + valores equivalentes que podem ser definidos para instâncias + conteinerizadas. Esta solicitação é baseada na conversa + anterior. + + + + + + Valor + Environment.conf + + Variavel Helm + Environment + + + + skipPythonCleanup + + SKIP_PYTHON_CLEANUP + + + + jvmlibpath + + JAVA_LIBRARY_PATH + + + + jvmoptions + + JVM_OPTIONS + + + + classpath + + CLASSPATH + + + + + + O seguinte exemplo configura uma variavel de ambiente para pular + a limpeza do Python no componente Thor: + + thor: + env: + - name: SKIP_PYTHON_CLEANUP + value: true + + + + + Plano de Construção de Index + + Defina o valor indexBuildPlane como uma opção + de chart helm para permitir que os arquivos de índice sejam escritos por + padrão em um plano de dados diferente. Ao contrário de arquivos planos, + arquivos de índices têm requisitos diferentes. Os arquivos de índice se + beneficiam de armazenamento de acesso aleatório rápido. Normalmente, + arquivos planos e arquivos de índice são resultantes para os planos de + dados padrão definidos. Usando esta opção, você pode definir que os + arquivos de índice são construídos em um plano de dados separado de + outros arquivos comuns. Este valor de chart pode ser fornecido em um + nível de componente ou global. - Para adicionar valores de ambiente, você pode inseri-los em seu - arquivo YAML de configuração de personalização ao implantar seu HPCC - Systems em contêineres. + Por exemplo, adicionando o valor a um nível global sob + global.storage: + + global: + storage: + indexBuildPlane: myindexplane + + Opcionalmente, você pode adicioná-lo ao nível do componente, da + seguinte forma: + + thor: +- name: thor + prefix: thor + numWorkers: 2 + maxJobs: 4 + maxGraphs: 2 + indexBuildPlane: myindexplane + + Quando este valor é definido no nível do componente, ele sobrepõe + o valor definido no nível global. + + + + + Pods e Nós + + Uma das principais características do Kubernetes é sua capacidade de + agendar pods nos nós do cluster. Um pod é a menor e mais simples unidade + no ambiente do Kubernetes que você pode criar ou implantar. Um nó é uma + máquina "trabalhadora" física ou virtual no Kubernetes. + + A tarefa de agendar pods para nós específicos do cluster é + gerenciada pelo kube-scheduler. O comportamento padrão desse componente é + filtrar os nós com base nas solicitações de recursos e limites de cada + contêiner no pod criado. Nós viáveis são então pontuados para encontrar o + melhor candidato para o posicionamento do pod. O agendador também leva em + conta outros fatores como afinidade e anti-afinidade de pods, taints e + tolerations, restrições de distribuição de topologia de pod e os rótulos + do seletor de nó. O agendador pode ser configurado para usar esses + algoritmos e políticas diferentes para otimizar o posicionamento do pod de + acordo com as necessidades do seu cluster. + + Você pode implantar esses valores usando o arquivo values.yaml ou + pode colocá-los em um arquivo e fazer com que o Kubernetes leia os valores + do arquivo fornecido. Consulte a seção acima Técnicas de + Personalização para obter mais informações sobre como + personalizar sua implantação. + + + Placements + + O termo "Placements" é usado pelo HPCC Systems, ao qual o + Kubernetes se refere como scheduler ou agendamento/distribuição. Para + evitar confusão com os termos específicos do scheduler da HPCC Systems e + ECL, referenciaremos o agendamento do Kubernetes como colocações. As + colocações são um valor na configuração do HPCC Systems que está em um + nível acima dos itens, como o nodeSelector, Toleration, Affinity e + Anti-Affinity e TopologySpreadConstraints. + + O placements é responsável por encontrar o melhor nó para um pod. + Na maioria das vezes, o agendamento é realizado automaticamente pelo + Kubernetes. Você pode restringir um Pod para que ele possa funcionar + apenas em um conjunto específico de Nós. + + Os placements, então, seriam usados para garantir que pods ou jobs + que desejam nós com características específicas sejam colocados nesses + nós. + + Por exemplo, um cluster Thor poderia ser direcionado para machine + learning usando nós com GPU. Outro job pode querer nós com boa + quantidade de memória ou outro para mais CPU. + + Usando placements, você pode configurar o agendador do Kubernetes + para usar uma lista de "pods" para aplicar as configurações aos + pods. + + Por exemplo: + + placements: + - pods: [list] + placement: + <supported configurations> + + + Escopo do Placement + + Use padrões de pods para aplicar o escopo para os + placements. + + Os pods: [list] podem conter o seguinte: + + + + + + + + + + Type: <component> + + Cobre todos os pods/trabalhos sob este tipo de + componente. Isso é comumente utilizado para os componentes do + HPCC Systems. Por exemplo, o type:thor + que se aplicará a qualquer componente do tipo Thor; + thoragent, thormanager, thoragent e thorworker, etc. + + + + Target: <name> + + O campo "name" de cada componente, uso típico para + componentes do HPCC Systems refere-se ao nome do cluster. Por + exemplo, Roxie: -name: roxie que será o + destinoalvo "Roxie" (cluster). Você também pode definir vários + alvos, cada um com um nome único, como "roxie", "roxie2", + "roxie-web", etc. + + + + Pod: <name> + + Este é o nome dos metadados de "Implantação" a partir + do nome do item de array de um tipo. Por exemplo, "eclwatch-", + "mydali-", "thor-thoragent", o uso de uma expressão regular é + preferido, pois o Kubernetes usará o nome dos metadados como + prefixo e gerará dinamicamente o nome do pod, como, + eclwatch-7f4dd4dd44cb-c0w3x. + + + + Job name: + + O nome do job é geralmente também uma expressão + regular, já que o nome do job é gerado dinamicamente. Por + exemplo, um job de compilação compile-54eB67e567e, pode usar + "compile-" ou "compile-.*" ou "^compile-.*$" + + + + All: + + Aplica para todos os componentes do HPCC Systems. O + padrão de implantação dos placements para pods é [all] + + + + + + Independentemente da ordem em que os placements aparecem na + configuração, eles serão processadas na seguinte ordem: "all", "type", + "target", e então "pod"/"job". + + + Combinações mistas + + NodeSelector, taints e tolerations, e outros valores pode ser + colocado nos mesmos pods: [list] ambos por zona e por nós no Azure + placements: +- pods: ["eclwatch","roxie-workunit","^compile-.*$","mydali"] + placement: + nodeSelector: + name: npone + + + + + + Node Selection + + In a Kubernetes container environment, there are several ways to + schedule your nodes. The recommended approaches all use label selectors + to facilitate the selection. Generally, you may not need to set such + constraints; as the scheduler usually does reasonably acceptable + placement automatically. However, with some deployments you may want + more control over specific pods. + + Kubernetes uses the following methods to choose where to schedule + pods: + + + + nodeSelector field matching against node labels + + + + Affinity and anti-affinity + + + + Taints and Tolerations + + + + nodeName field + + + + Pod topology spread constraints + + + + + Node Labels + + Kubernetes nodes have labels. Kubernetes has a standard set of + labels used for nodes in a cluster. You can also manually attach + labels which is recommended as the value of these labels is + cloud-provider specific and not guaranteed to be reliable. + + Adding labels to nodes allows you to schedule pods to nodes or + groups of nodes. You can then use this functionality to ensure that + specific pods only run on nodes with certain properties. + + + + The nodeSelector + + The nodeSelector is a field in the Pod specification that allows + you to specify a set of node labels that must be present on the target + node for the Pod to be scheduled there. It is the simplest form of + node selection constraint. It selects nodes based on the labels, but + it has some limitations. It only supports one label key and one label + value. If you wanted to match multiple labels or use more complex + expressions, you need to use node Affinity. + + Add the nodeSelector field to your pod specification and specify + the node labels you want the target node to have. You must have the + node labels defined in the job and pod. Then you need to specify each + node group the node label to use. Kubernetes only schedules the pod + onto nodes that have the labels you specify. + + The following example shows the nodeSelector placed in the pods + list. This example schedules "all" HPCC components to use the node + pool with the label group: "hpcc". + + placements: + - pods: ["all"] + placement: + nodeSelector: + group: "hpcc" + + Note: The label group:hpcc + matches the node pool label:hpcc. + + This next example shows how to configure a node pool to prevent + scheduling a Dali component onto this node pool labelled with the key + spot: via the value false. As this kind of node is not always + available and could get revoked therefore you would not want to use + the spot node pool for Dali components. This is an example for how to + configure a specific type (Dali) of HPCC Systems component not to use + a particular node pool. + + placements: + - pods: ["type:dali"] + placement: + nodeSelector: + spot: "false" + + Quando se usa nodeSelector, vários nodeSelectors podem ser + aplicados. Se chaves duplicadas forem definidas, apenas a última + prevalece. + + + + Taints e Tolerations + + Taints e Tolerations são tipos de restrições de nodes do + Kubernetes também mencionadas como afinidade de nós. Apenas uma + afinidade pode ser aplicada em um pod. Se um pod combinar com várias + listas de 'pods' de placements, então apenas a última definição de + afinidade será aplicada. + + Taints e tolerations trabalham juntos para garantir que os pods + não sejam agendados em nós inadequados. Tolerations são aplicadas aos + pods e permitem (mas não exigem) que os pods sejam agendados em nós + com taints correspondentes. Taints são o oposto - eles permitem que um + nó repila um conjunto de pods. Uma maneira de implantar usando taints, + é configurar para repelir todos, exceto um nó específico. Então, esse + pod pode ser agendado em outro nó que é tolerante. + + Por exemplo, os jobs Thor devem estar todos no tipo apropriado + da VM. Se um job grande Thor vier – então o nível de taints repele + todos os pods que tentam ser agendados em um nó que não atende aos + requisitos. + + Para mais informações e exemplos de nossos Taints, Tolerations e + Placements, por favor, consulte nossa documentação de + desenvolvedor: + + https://github.com/hpcc-systems/HPCC-Platform/blob/master/helm/hpcc/docs/placements.md + + + Exemplos de Taints e Tolerations + + Os exemplos a seguir ilustram como algumas taints e + tolerations podem ser aplicadas. + + O Kubernetes pode agendar um pod em qualquer pool de nós sem + uma taint. Nos exemplos a seguir, o Kubernetes só pode agendar os + dois componentes nas pools de nós com esses lables exatos, grupo e + gpu. + + placements: + - pods: ["all"] + tolerations: + key: "group" + operator: "Equal" + value: "hpcc" + effect: "NoSchedule" + + placements: + - pods: ["type:thor"] + tolerations: + key: "gpu" + operator: "Equal" + value: "true" + effect: "NoSchedule" + + Várias tolerações também podem ser usadas. O exemplo a seguir + possui dois tolerations, grupo e GPU. + + #The settings will be applied to all thor pods/jobs and myeclccserver pod and job +- pods: ["thorworker-", "thor-thoragent", "thormanager-","thor-eclagent","hthor-"] + placement: + nodeSelector: + app: tf-gpu + tolerations: + - key: "group" + operator: "Equal" + value: "hpcc" + effect: "NoSchedule" + - key: "gpu" + operator: "Equal" + value: "true" + effect: "NoSchedule" + + + Neste exemplo, o nodeSelector está impedindo o agendador do + Kubernetes de implementar qualquer/para todos nesta pool de nodes. + Sem taints, o agendador poderia implementar em qualquer pod na pool + de nodes. Utilizando o nodeSelector, a taint forçará o pod a ser + implementado apenas nos pods que correspondem a esse rótulo de node. + Existem duas restrições então, neste exemplo uma da pool de nós e a + outra do pod. + + + + + Restrições de Espalhamento de Topologia + + Você pode usar as restrições de distribuição de topologia para + controlar como os pods são distribuídos pelo seu cluster entre + domínios de falha, como regiões, zonas, nós e outros domínios de + topologia definidos pelo usuário. Isso pode ajudar a alcançar alta + disponibilidade, bem como a utilização eficiente dos recursos. Você + pode definir restrições ao nível do cluster como padrão, ou configurar + restrições de espalhamento de topologia para cargas de trabalho + individuais. As Restrições de Espalhamento de Topologia topologySpreadConstraints requer Kubernetes + v1.19+.ou maior. + + Para mais informações veja: + + https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ + and + + https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/ + + Usando o exemplo de "topologySpreadConstraints", existem dois + agrupamentos de nós que têm "hpcc=nodepool1" e "hpcc=nodepool2" + respectivamente. Os pods Roxie serão agendados uniformemente nos dois + agrupamentos de nós. + + Após a implementação, você pode verificar emitindo o seguinte + comando: + + kubectl get pod -o wide | grep roxie + + O código substituto: + + - pods: ["type:roxie"] + placement: + topologySpreadConstraints: + - maxSkew: 1 + topologyKey: hpcc + whenUnsatisfiable: ScheduleAnyway + labelSelector: + matchLabels: + roxie-cluster: "roxie" + + + + Afinidade (Affinity) e Anti-Afinidade (Anti-Affinity)` + + A afinidade e a anti-afinidade expandem os tipos de restrições + que você pode definir. As regras de afinidade e anti-afinidade ainda + são baseadas nas labels. Além das labels, eles fornecem regras que + orientam o agendador do Kubernetes aonde colocar os pods com base em + critérios específicos. A linguagem de afinidade/anti-afinidade é mais + expressiva do que labels simples e oferece mais controle sobre a + lógica de seleção. + + Há dois tipos principais de afinidade. Afinidade de Nó (Node + Affinity) e Afinidade de Pod (Pod Affinity). + + + Node Affinity + + A afinidade de nós é semelhante ao conceito de seletor de nós, + que permite limitar em quais nós o seu pod pode ser agendado, com + base nas labels desses nós. Estes são usados para limitar os nós que + podem receber um pod, correspondendo às labels desses nós. A + afinidade de nós e a anti-afinidade de nós só podem ser usadas para + estabelecer afinidades positivas que atraem os pods para o nó. Isto + é realizado ao limitar os nós que podem receber um pod, + correspondendo às labels desses nós. A afinidade de nós e a + anti-afinidade de nós só podem ser usadas para estabelecer + afinidades positivas que atraem os pods para o nó. + + Não existe uma verificação de esquema para o conteúdo da + afinidade. Apenas uma afinidade pode ser aplicada a um pod ou job. + Se um pod/job corresponder a várias listas de pods de posição, então + apenas a última definição de afinidade será aplicada. Esta + solicitação foi feita com base no histórico de conversas + anteriores. + + Para mais informações, veja https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/ + + Existe dois tipos de afinidades de nó: + + requiredDuringSchedulingIgnoredDuringExecution: + O scheduler não consegue marcar o pod a menos que esta regra seja + cumprida. Esta função é semelhante ao nodeSelector, mas com uma + sintaxe mais expressiva. + + preferredDuringSchedulingIgnoredDuringExecution: + O scheduler tenta encontrar um nó que cumpra a regra. Se um nó + correspondente não estiver disponível, o scheduler ainda agenda o + pod. + + Você pode especificar as afiidades do nós usando o campo + .spec.affinity.nodeAffinity na especificação no + seu pod. + + + + Pod Affinity + + O pod Affinity ou Inter-Pod Affinity é usada para limitar os + nós que podem receber um pod, de acordo com as labels dos pods já em + execução nesses nós. A afinidade de pod e a anti-afinidade de pod + podem ser tanto uma afinidade atraente quanto uma repulsa à + afinidade. + + A Inter-Pod Affinity funciona de maneira muito semelhante à + afinidade de nó, mas com algumas diferenças importantes. Os modos + "hard" e "soft" são indicados usando os mesmos campos + requiredDuringSchedulingIgnoredDuringExecution + e + preferredDuringSchedulingIgnoredDuringExecution. + No entanto, estes deveriam estar aninhados sob os campos + spec.affinity.podAffinity ou + spec.affinity.podAntiAffinity dependendo de se + você deseja aumentar ou diminuir a afinidade do Pod. + + + + Exemplo Affinity + + O código a seguir ilustra o exemplo de affinity: + + - pods: ["thorworker-.*"] + placement: + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: kubernetes.io/e2e-az-name + operator: In + values: + - e2e-az1 + - e2e-az2 + + Na seção 'schedulerName' a seguir, as configurações de + 'afinnity' também podem ser incluídas com este exemplo. + + Nota: O valor "affinity" no + campo "schedulerName" é suportado apenas nas versões beta do + Kubernetes 1.20.0 e posteriores. + + + + + schedulerName + + O campo schedulerName + especifica o nome do agendador responsável por agendar um pod ou uma + job. No Kubernetes, você pode configurar vários agendadores com + diferentes nomes e perfis para rodar simultaneamente no + cluster. + + Apenas um "schedulerName" pode ser aplicado a qualquer + pod/job. + + Um exemplo de schedulerName: + + - pods: ["target:roxie"] + placement: + schedulerName: "my-scheduler" +#The settings will be applied to all thor pods/jobs and myeclccserver pod and job +- pods: ["target:myeclccserver", "type:thor"] + placement: + nodeSelector: + app: "tf-gpu" + tolerations: + - key: "gpu" + operator: "Equal" + value: "true" + effect: "NoSchedule" + @@ -1358,4 +2003,4 @@ global: especificado. - + \ No newline at end of file diff --git a/docs/PT_BR/ContainerizedHPCC/ContainerizedMods/ContainerLogging.xml b/docs/PT_BR/ContainerizedHPCC/ContainerizedMods/ContainerLogging.xml index 1491815ceda..3fabee378c6 100644 --- a/docs/PT_BR/ContainerizedHPCC/ContainerizedMods/ContainerLogging.xml +++ b/docs/PT_BR/ContainerizedHPCC/ContainerizedMods/ContainerLogging.xml @@ -2,31 +2,31 @@ - Logging em contêiner + Registro em Contêiner - Histórico de Logging + Contexto de Registro - Os logs de componentes do Bare-metal HPCC Systems são gravados em + Os logs de componentes do HPCC Systems Bare-metal são escritos em arquivos persistentes no sistema de arquivos local. Em contraste, os logs - HPCC em contêiner são efêmeros e sua localização nem sempre é bem - definida. Os componentes do HPCC Systems fornecem logs informativos no - nível do aplicativo para fins de depuração de problemas, ações de - auditoria e monitoramento do progresso. - - Seguindo as metodologias em contêiner mais amplamente aceitas, as - informações de log de componentes do HPCC Systems são roteadas para os - fluxos de saída padrão em vez de arquivos locais. Em implantações em - contêiner, não há logs de componentes gravados em arquivos como nas - edições anteriores. - - Esses logs são gravados no fluxo de erro padrão (stderr). No nível - do nó, o conteúdo do erro padrão e dos fluxos de saída são redirecionados - para um local de destino por um mecanismo de contêiner. Em um ambiente - Kubernetes, o mecanismo de contêiner do Docker redireciona os fluxos para - um driver de log, que o Kubernetes configura para gravar em um arquivo no - formato JSON. Os logs são expostos pelo Kubernetes por meio do comando - "logs" apropriadamente chamado. + do HPCC containerizados são efêmeros, e sua localização nem sempre é bem + definida. Os componentes do HPCC Systems fornecem logs de aplicação + informativos para o propósito de depuração de problemas, auditoria de + ações e monitoramento de progresso. + + Seguindo as metodologias containerizadas mais amplamente aceitas, as + informações de log dos componentes do HPCC Systems são direcionadas para + os fluxos de saída padrão, em vez de arquivos locais. Em implantações + containerizadas, não existem logs de componentes escritos em arquivos como + nas edições anteriores. + + Esses registros são escritos no fluxo de erro padrão (stderr). No + nível do nó, os conteúdos dos fluxos de erro padrão e saída são + redirecionados para um local alvo por um mecanismo de contêiner. Em um + ambiente Kubernetes, o mecanismo de contêiner Docker redireciona os fluxos + para um driver de log, que o Kubernetes configura para escrever em um + arquivo no formato JSON. Os registros são expostos pelo Kubernetes por + meio do comando apropriadamente chamado "logs" Por exemplo: @@ -35,131 +35,153 @@ >0000CF10 PRG INF 2020-05-12 17:10:34.911 1 10690 "GET /, from 10.240.0.4" >0000CF11 PRG INF 2020-05-12 17:10:34.911 1 10690 “TxSummary[activeReqs=22; rcv=5ms;total=6ms;]" - É importante entender que esses logs são de natureza efêmera e podem - ser perdidos se o pod for despejado, o contêiner travar, o nó morrer etc. - Além disso, devido à natureza das soluções em contêiner, os logs - relacionados provavelmente se originam de vários locais e pode precisar - ser coletado e processado. É altamente recomendável desenvolver uma + É importante entender que esses registros são efêmeros por natureza, + e podem ser perdidos se o pod for despejado, o contêiner travar, o nó + morrer, etc. Devido à natureza dos sistemas containerizados, é provável + que os registros relacionados se originem de vários locais e precisem ser + coletados e processados. É altamente recomendável desenvolver uma estratégia de retenção e processamento com base em suas necessidades. Muitas ferramentas estão disponíveis para ajudar a criar uma solução - apropriada com base em uma abordagem do tipo "faça você mesmo" ou em - recursos gerenciados disponíveis em provedores de nuvem. + apropriada com base em uma abordagem "faça você mesmo", ou recursos + gerenciados disponíveis de provedores de nuvem. Para os ambientes mais simples, pode ser aceitável confiar no processo padrão do Kubernetes que encaminha todo o conteúdo de - stdout/stderr para o arquivo. No entanto, à medida que a complexidade do - cluster aumenta ou a importância de reter o conteúdo dos logs aumenta, uma - arquitetura de log em nível de cluster deve ser empregada. - - O registro em nível de cluster para o cluster do HPCC Systems em - contêiner pode ser realizado incluindo um agente de registro em cada nó. A - tarefa de cada agente é expor os logs ou enviá-los por push para um - back-end de processamento de log. Os agentes de registro geralmente não - são fornecidos prontos para uso, mas há vários disponíveis, como o - Elasticsearch e o Stackdriver Logging. Vários provedores de nuvem oferecem - soluções integradas que coletam automaticamente todos os fluxos stdout/err - e fornecem armazenamento dinâmico e ferramentas analíticas poderosas, além + stdout/stderr para o arquivo. No entanto, conforme a complexidade do + cluster cresce ou a importância de reter o conteúdo dos registros cresce, + uma arquitetura de log de nível de cluster deve ser empregada. + + O registro de nível de cluster para o cluster do HPCC Systems em + contêiner pode ser realizado incluindo um agente de log em cada nó. A + tarefa de cada agente é expor os registros ou empurrá-los para um back-end + de processamento de registro. Os agentes de registro geralmente não são + fornecidos prontos, mas há vários disponíveis, como Elasticsearch e + Stackdriver Logging. Vários provedores de nuvem oferecem soluções + integradas que colhem automaticamente todos os fluxos stdout/err e + fornecem armazenamento dinâmico e ferramentas analíticas poderosas, além da capacidade de criar alertas personalizados com base em dados de log. É sua responsabilidade determinar a solução apropriada para - processar os dados de log de streaming. - - - - Soluções de Processamento de Log - - Existem várias soluções de processamento de log disponíveis. Você - pode optar por integrar os dados de registro do HPCC Systems com qualquer - uma de suas soluções de registro existentes ou implementar outra - especificamente para os dados do HPCC Systems. A partir do HPCC Systems - versão 8.4, fornecemos uma solução de processamento de log leve e completa - para sua conveniência. Como afirmado existem várias soluções possíveis, - você deve escolher a opção que melhor atende às suas necessidades. As - seções a seguir examinarão duas soluções possíveis. - - - O chart Elastic4hpcclogs - - O HPCC Systems fornece um chart Helm gerenciado, - elastic4hpcclogs, que utiliza os charts Elastic - Stack Helm para Elastic Search, Filebeats e Kibana. Este gráfico - descreve uma instância local e mínima do Elastic Stack para - processamento de log de componentes do HPCC Systems. Depois de - implantados com êxito, os logs de componentes do HPCC produzidos no - mesmo namespace devem ser indexados automaticamente no ponto de - extremidade do Elastic Search. Os usuários podem consultar esses logs - emitindo consultas de API RESTful do Elastic Search ou por meio da - interface do usuário do Kibana (depois de criar um padrão de índice - simples). - - Pronto para uso, o Filebeat encaminha as entradas de log do - componente HPCC para um índice com nome genérico: 'hpcc-logs' - - <DATE_STAMP> e grava os dados de log em campos prefixados - 'hpcc.log.*'. Ele também agrega k8s, Docker e metadados do sistema para - ajudar o usuário a consultar as entradas de log de seu interesse. - - Um padrão de índice do Kibana é criado automaticamente com base no - layout de índice de batida de arquivo padrão. + processar os dados do log de streaming. + + + Soluções de Processamento de logs + + Existem várias soluções de processamento de logs disponíveis. Você + poderia optar por integrar os dados de log do HPCC Systems com quaisquer + soluções de log existentes, ou implementar outra especificamente para os + dados do HPCC Systems. A partir da versão 8.4 do HPCC Systems, + fornecemos uma solução de processamento de logs leve, mas completa, para + sua conveniência. As próximas seções irão analisar algumas das possíveis + soluções. - - Instalando o chart elastic4hpcclogs + + Solução Gerenciada Elastic Stack + + O HPCC Systems fornece um chart Helm gerenciado, + elastic4hpcclogs, que utiliza os chart Helm da + Elastic Stack para Elastic Search, Filebeats e Kibana. Este chart descreve + uma instância local mínima da Elastic Stack para processamento de log de + componentes do HPCC Systems. Uma vez implantado com sucesso, os logs de + componentes do HPCC produzidos no mesmo namespace devem ser + automaticamente indexados no ponto de extremidade do Elastic Search. Os + usuários podem consultar esses logs emitindo consultas da API RESTful do + Elastic Search, ou via interface de usuário do Kibana (após a criação de + um padrão de índice simples). + + Pronto para usar, o Filebeat encaminha as entradas de log do + componente HPCC para um índice de nome genérico: 'hpcc-logs'- + <DATE_STAMP> e escreve os dados do log em campos prefixados com + 'hpcc.log.*'. Ele também agrega metadados k8s, Docker e do sistema para + ajudar o usuário a consultar as entradas de log de seu interesse. + + Um padrão de índice Kibana é criado automaticamente com base no + layout de índice filebeat padrão. + + + Instalando o chart elastic4hpcclogs + + Instalar a solução simples fornecida é, como o nome indica, + simples e uma maneira conveniente de reunir e filtrar dados de log. Ela + é instalada através de nossos charts helm do repositório HPCC Systems. + No diretório HPCC-platform/helm, o gráfico + elastic4hpcclogs é entregue junto com os outros + componentes da plataforma HPCC Systems. As próximas seções mostrarão + como instalar e configurar a solução de log da Elastic Stack para o HPCC + Systems. + + + + + + + + + + + + - Instalar a solução simples fornecida é, como o nome indica, simples - e uma maneira conveniente de coletar e filtrar dados de log. Ele é - instalado por meio de nossos gráficos de leme do repositório HPCC Systems. - No diretório HPCC-platform/helm, o gráfico elastic4hpcclogs é fornecido - junto com os outros componentes da plataforma HPCC Systems. As próximas - seções mostrarão como instalar e configurar a solução Elastic stack - logging para HPCC Systems. + NOTA: O chart + elastic4hpcclogs não habilita nenhuma + segurança. A responsabilidade de determinar a necessidade de + segurança e habilitar a segurança em qualquer instância do + Elastic Stack implantada ou componentes é de sua + responsabilidade e de sua organização. + + + + - - Adicionar o Repositório HPCC Systems + + Adicionando o Repositório HPCC Systems - O chart Elastic for HPCC Systems entregue pode ser encontrado no - repositório HPCC Systems Helm. Para buscar e implantar os gráficos - gerenciados do HPCC Systems, adicione o repositório do HPCC Systems - Helm, caso ainda não tenha feito isso: + O chart Elastic para HPCC Systems fornecido pode ser encontrado + no repositório Helm do HPCC Systems. Para buscar e implantar os + gráficos gerenciados pelo HPCC Systems, adicione o repositório Helm do + HPCC Systems, se ainda não o fez: - helm repo add hpcc https://hpcc-systems.github.io/helm-chart/ + helm repo add hpcc https://hpcc-systems.github.io/helm-chart/ - Depois que esse comando for concluído com êxito, o chart - elastic4hpcclogs estará acessível. + Uma vez que este comando tenha sido concluído com sucesso, o + chart elastic4hpcclogs estará acessível. - Confirme se o chart apropriado foi puxado para baixo. + Confirme se o chart apropriado foi descarregado. - helm list + helm list - A emissão do comando helm list exibirá os gráficos e repositórios - do HPCC Systems disponíveis. O gráfico - elastic4hpcclogs está entre eles. + A emissão do comando helm list exibirá os charts e repositórios + do HPCC Systems disponíveis. O chart elastic4hpcclogs está entre + eles. - - + + - - Instalar o chart elastic4hpcc + + Instalando o chart elastic4hpcc - Instalar o chart elastic4hpcclogs utilizando - o seguinte comando: + Instale o chart elastic4hpcclogs utilizando + o seguinte comando: - helm install <Instance_Name> hpcc/elastic4hpcclogs + helm install <Instance_Name> hpcc/elastic4hpcclogs - Forneça o nome que você deseja chamar sua instância do Elastic - Search para o parâmetro <Instance_Name>. Por exemplo, você poderia - chamar sua instância de "myelk" e, nesse caso, emitiria o comando de - instalação da seguinte maneira: + Forneça o nome que você deseja chamar sua instância do Elastic + Search para o parâmetro <Instance_Name>. Por exemplo, você + poderia chamar sua instância de "myelk", caso em que você emitiria o + comando de instalação da seguinte forma: - helm install myelk hpcc/elastic4hpcclogs + helm install myelk hpcc/elastic4hpcclogs - Após a conclusão bem-sucedida, a seguinte mensagem é - exibida: + Após a execução com sucesso, a seguinte mensagem é + exibida: - Thank you for installing elastic4hpcclogs. + Thank you for installing elastic4hpcclogs. A lightweight Elastic Search instance for HPCC component log processing. This deployment varies slightly from defaults set by Elastic, please review the effective values. @@ -168,158 +190,281 @@ PLEASE NOTE: Elastic Search declares PVC(s) which might require explicit manual when no longer needed. - - - - - - - - - - - - - IMPORTANTE: O Elastic - Search declara PVC(s) que podem exigir remoção manual - explícita quando não forem mais necessários. Isso pode ser - particularmente importante para alguns provedores de nuvem que - podem acumular custos mesmo depois de não usar mais sua - instância. Você deve garantir que nenhum componente (como - PVCs) persista e continue acumulando custos. - - - - - - OBSERVAÇÃO: dependendo da versão do Kubernetes, os usuários podem - ser avisados sobre APIs obsoletas nos gráficos elásticos (ClusterRole e - ClusterRoleBinding estão obsoletos na v1.17+). As implantações baseadas - em Kubernetes < v1.22 não devem ser afetadas. - + + + + + + + + + + + + + IMPORTANTE: OBSERVE: + O Elastic Search declara PVC(s) que podem exigir remoção + manual explícita quando não forem mais necessários. Isso + pode ser particularmente importante para alguns provedores + de nuvem que podem continuar a acumular custos mesmo após + não usar mais a sua instância. Você deve garantir que nenhum + componente (como PVCs) persista e continue a acumular + custos. + + + + + + NOTA: Dependendo da versão do Kubernetes, os usuários podem ser + alertados sobre APIs obsoletas nos charts Elastic (ClusterRole e + ClusterRoleBinding estão obsoletos na v1.17+). Implementações baseadas + em Kubernetes < v1.22 não devem ser impactadas. + - - Confirmar se seus Pods estão Prontos + + Confirme se os Pods estão Prontos - Confirme se os pods estão prontos. Ás vezes, após instalação, os - pods podem levar alguns segundos para aparecerem. Confirme se os pods - estão prontos antes de proceder. Para fazer isso, use o seguinte - comando: + Confirme que os pods Elastic estão prontos. Às vezes, após a + instalação, os pods podem demorar alguns segundos para iniciar. + Confirmar que os pods estão em um estado de prontidão é uma boa ideia + antes de prosseguir. Para fazer isso, use o seguinte comando: - kubectl get pods + kubectl get pods - Este comando retorna a seguinte informação, exibindo o status dos - pods. + Este comando retorna as seguintes informações, exibindo os + status dos pods. - elasticsearch-master-0 1/1 Running 0 + elasticsearch-master-0 1/1 Running 0 myelk-filebeat-6wd2g 1/1 Running 0 myelk-kibana-68688b4d4d-d489b 1/1 Running 0 - + - Quando todos os pods estiverem indicando um estado 'ready' e - 'Running', incluindo os três componentes para filebeats, Elastic Search - e Kibana (destacado acima), você poderá prosseguir. - + Uma vez que todos os pods estejam indicando um estado 'ready' e + 'Running', incluindo os três componentes para filebeats, Elastic + Search e Kibana (destacados acima), você pode prosseguir. + - - Confirmar os Serviços Elastic + + Confirmando os serviços Elastic - Para garantir que os serviços Elastic estejam em execução, entre - com o seguinte comando: + Para confirmar se os serviços Elastic estão em execução, utilize + o seguinte comando: - $ kubectl get svc + $ kubectl get svc - Isso exibe as seguintes informações de confirmação: + Isto exibe a seguinte confirmação: - ... + ... elasticsearch-master ClusterIP 10.109.50.54 <none> 9200/TCP,9300/TCP 68m elasticsearch-master-headless ClusterIP None <none> 9200/TCP,9300/TCP 68m myelk-kibana LoadBalancer 10.110.129.199 localhost 5601:31465/TCP 68m ... - Nota: O serviço myelk-kibana é declarado como LoadBalancer por - conveniência. - + Nota: O serviço myelk-kibana é delcarado como LoadBalancer para + conveniência. + - - Configurando Componentes do Elastic Stack + + Configurando os componentes do Elastic Stack - Você pode precisar ou querer personalizar os componentes do - Elastic Stack. Os valores dos charts do componentes Elastic podem ser - substituídos como parte do comando de implantação do HPCC - Systems. + Você pode precisar ou querer personalizar os componentes da + Elastic Stack. Os valores dos charts dos componentes Elastic podem ser + substituídos como parte do comando de implantação do HPCC + Systems. - Por exemplo: + Por exemplo: - helm install myelk hpcc/elastic4hpcclogs --set elasticsearch.replicas=2 + helm install myelk hpcc/elastic4hpcclogs --set elasticsearch.replicas=2 - Consulte o repositório GitHub do Elastic Stack para obter a lista - completa de todas as opções do Filebeat, Elastic Search, LogStash e - Kibana com descrições. - + Por favor, consulte o repositório GitHub do Elastic Stack para a + lista completa de todas as opções do Filebeat, Elastic Search, + LogStash e Kibana com descrições. + + + + Utilizar os componentes de logs do HPCC Systems no + Kibana + + Uma vez habilitado e em execução, você pode explorar e consultar + os logs de componentes do HPCC Systems a partir da interface de + usuário do Kibana. Os padrões de índice do Kibana são necessários para + explorar dados do Elastic Search a partir da interface de usuário do + Kibana. Para mais informações sobre como usar a interface + Elastic-Kibana, por favor, consulte a documentação + correspondente: - - Use of HPCC Systems Component Logs in Kibana - - Uma vez ativado e em execução, você pode explorar e consultar os - logs de componentes do HPCC Systems na interface do usuário do Kibana. O - uso da interface do Kibana é bem suportado e documentado. Os padrões de - índice do Kibana são necessários para explorar os dados do Elastic - Search na interface do usuário do Kibana. A Elastic fornece explicações - detalhadas das informações necessárias para entender e utilizar - efetivamente a interface Elastic-Kibana. A documentação robusta do - Kibana deve ser consultada para obter mais informações sobre como usar a - interface do Kibana. Por favor, veja: https://www.elastic.co/ - e + https://www.elastic.co/ + + + e + https://www.elastic.co/elastic-stack/ - Incluídos na documentação completa também estão vídeos de início - rápido e outros recursos úteis. + https://www.elastic.co/elastic-stack/ + + + + + Configurando o logAccess para Elasticstack + + O recurso logAccess permite que o HPCC + Systems consulte e empacote logs relevantes para vários recursos, como + o relatório ZAP, logs de assistente de WorkUnit, visualizador de logs + ECLWatch, etc. + + Uma vez que os logs são migrados ou direcionados para a + instância de pilha elástica. A plataforma HPCC Systems precisa ser + capaz de acessar esses logs. A forma como você direciona o HPCC + Systems para fazer isso é fornecendo um arquivo de valores que inclui + os mapeamentos de logs. Fornecemos um arquivo de valores padrão e + fornecemos um exemplo de linha de comando que insere esse arquivo de + valores em seu deployment. Esse arquivo de valores de configuração + sugeridos para habilitar o acesso ao log pode ser encontrado no + repositório GitHub da plataforma HPCC Systems. + + https://github.com/hpcc-systems/HPCC-Platform + + Em seguida, navegue até o arquivo + helm/examples/azure/log-analytics/loganalytics-hpcc-logaccess.yaml. + + Você pode usar o gráfico Elastic4HPCCLogs fornecido ou pode + adicionar os valores lá ao seu arquivo yaml de valores de configuração + personalizada. + + Você pode então instalá-lo usando um comando, como o: + + helm install mycluster hpcc/hpcc -f elastic4hpcclogs-hpcc-logaccess.yaml + - - Azure AKS Insights + + Solução de Análise de Logs do Azure - O Azure AKS Insights é um recurso opcional projetado para ajudar a - monitorar o desempenho e a integridade de clusters baseados em Kubernetes. - Uma vez habilitado e associado um determinado AKS a um cluster do HPCC - Systems ativo, os logs do componente HPCC são capturados automaticamente - pelo Insights. Todos os dados STDERR/STDOUT são capturados e + Os Serviços Kubernetes do Azure (AKS) e a Análise de Logs do Azure + (ALA) são um recurso opcional projetado para ajudar a monitorar o + desempenho e a saúde dos clusters baseados em Kubernetes. Uma vez + habilitado e associado a um determinado AKS com um cluster do HPCC + Systems, os logs de componentes do HPCC são automaticamente capturados + pela Análise de Logs. Todos os dados STDERR/STDOUT são capturados e disponibilizados para fins de monitoramento e/ou consulta. Como geralmente - acontece com os recursos do provedor de nuvem, o custo é uma consideração - importante e deve ser bem entendido antes da implementação. O conteúdo do - log é gravado no armazenamento de logs associado ao seu espaço de trabalho - do Log Analytics. + ocorre com os recursos dos provedores de nuvem, o custo é uma consideração + significativa e deve ser bem compreendido antes da implementação. O + conteúdo do log é escrito na loja de logs associada à sua área de trabalho + de Análise de Logs. - Habilitar Azure Insights + Habilitando Azure Log Analytics + + Habilite o Azure Log Analytics (ALA) no cluster AKS alvo usando + uma das seguintes opções: Linha de comando direta, Linha de comando + scriptada, ou pelo portal Azure. - A habilitação do Azure's Insights no cluster AKS de destino pode - ser feita no portal do Azure ou via CLI. Para obter documentação - detalhada do Azure: Habilite insights de contêiner: Enabling Azure's - Insights on the target AKS cluster can be done from the Azure portal or - via CLI. For detailed Azure documentation: Enable Container - insights: + Para obter informações mais detalhadas, consulte a documentação do + Azure: https://docs.microsoft.com/en-us/azure/azure-monitor/containers/container-insights-onboard + + Linha de comando + + Para habilitar os insights do Azure Log Analytics a partir da + linha de comando: + + Você pode criar manualmente um workspace dedicado à análise de + logs, ou pode pular esta etapa e utilizar o workspace padrão. + + Para criar um workspace dedicado insira este comando: + + az monitor log-analytics workspace create -g myresourcegroup -n myworkspace --query-access Enabled + + Para habilitar o recurso de Análise de Logs em um cluster AKS de + destino, faça referência ao id do recurso do workspace criado na etapa + anterior: + + az aks enable-addons -g myresourcegroup -n myaks -a monitoring --workspace-resource-id \ + "/subscriptions/xyz/resourcegroups/myresourcegroup/providers/ \ + microsoft.operationalinsights/workspaces/myworkspace" + + + + Linha de Comando Scriptada + + Para conveniência, o HPCC Systems oferece um script para + habilitar o ALA (com um workspace dedicado à análise de logs) no + cluster AKS alvo. + + O script enable-loganalytics.sh está localizado em: + + https://github.com/hpcc-systems/HPCC-Platform/tree/master/helm/examples/azure/log-analytics + + O script requer o preenchimento dos seguintes valores no arquivo + de ambiente env-loganalytics. + + Fornecer esses valores na ordem do arquivo de ambiente + env-loganalytics para criar um novo workspace no + Azure Log Analytics, associá-lo a um cluster AKS de destino, e + habilitar o processamento de logs: + + + + LOGANALYTICS_WORKSPACE_NAME + O nome desejado para o workspace do Azure Log Analytics a ser + associada ao cluster AKS de destino. Um novo workspace é criado se + esse valor não existir. + + + + LOGANALYTICS_RESOURCE_GROUP + O grupo de recursos do Azure associado ao cluster AKS de + destino. + + + + AKS_CLUSTER_NAME O nome do + cluster AKS de destino para associar a análise de logs. + + + + TAGS As tags associadas com + o novo workspace. + + Por exemplo: "admin=MyName email=my.email@mycompany.com + environment=myenv justification=testing" + + + + AZURE_SUBSCRIPTION + [Opcional] Garante que esta assinatura esteja configurada antes de + criar o novo workspace + + + + Uma vez que esses valores estejam preenchidos, o script + enable-loganalyics.sh pode ser executado e ele irá criar o workspace + de análise de logs e associá-la ao cluster AKS de destino. + + Portal Azure - Para habilitar o insights do Azure no portal: + Para habilitar Azure Log Analytics no portal Azure: - Selecione cluster AKS de Destino + Select Target AKS cluster @@ -331,44 +476,124 @@ myelk-kibana LoadBalancer 10.110.129.199 localhost 5601:31465/TCP 68m - Habilite - escolha ao workspace padrão + Enable - escolha default workspace + - - Linha de Comando + + Configure o logAccess do HPCC para Azure - Para habilitar os Azure insights na linha de comando: + O recurso logAccess permite que o HPCC + Systems consulte e empacote logs relevantes para várias funcionalidades, + como o relatório ZAP, logs auxiliares da WorkUnit, visualizador de log + do ECLWatch, etc. - Opcionalmente, crie o espaço de trabalho de análise de log - [espaço de trabalho padrão, caso contrário] + + Obtenha o Service Principal - Entre: + Para conceder acesso à API Log Analytics, o Azure requer uma + aplicação registrada no Azure Active Directory (AAD). Obtenha uma + aplicação registrada no AAD. - az monitor log-analytics workspace create -g myresourcegroup -n myworkspace --query-access Enabled + Para mais informações sobre o registro de um Azure Active + Directory, veja a documentação oficial do Azure: - Habilitar no cluster AKS de destino (referência ao ID do recurso - do workspace da etapa anterior) + https://docs.microsoft.com/en-us/power-apps/developer/data-platform/walkthrough-register-app-azure-active-directory - az aks enable-addons -g myresourcegroup -n myaks -a monitoring --workspace-resource-id \ - "/subscriptions/xyz/resourcegroups/myresourcegroup/providers/ \ - microsoft.operationalinsights/workspaces/myworkspace" + Dependendo da estrutura de sua assinatura Azure, pode ser + necessário solicitar isso de um administrador de assinatura + + + + Forneça Informações da Aplicação Registrada no AAD + + O logAccess do HPCC Systems requer acesso ao inquilino AAD, + cliente, token e ID workspace alvo por meio de um objeto secreto + seguro. Espera-se que o segredo esteja na categoria 'esp', e nomeado + 'azure-logaccess. + + Os seguintes pares de chave-valor são suportados + + + + aad-tenant-id + + + + aad-client-id + + + + aad-client-secret + + + + ala-workspace-id + + - A interface do AKS Insights no Azure fornece visualizações de - métricas de integridade em nível de cluster/nó/contêiner centradas em - Kubernetes e links diretos para logs de contêiner por meio de - interfaces de "análise de log". Os logs podem ser consultados através - da linguagem de consulta “Kusto” (KQL). Consulte a documentação do - Azure para obter detalhes sobre como consultar os logs. + O script está disponível em + 'create-azure-logaccess-secret.sh': - Consulte a documentação do Azure para obter detalhes sobre como - consultar os logs. + https://github.com/hpcc-systems/HPCC-Platform/tree/master/helm/examples/azure/log-analytics - Exemplo de consulta KQL para buscar entradas de registro - "Transaction summary" de um contêiner ECLWatch: + O script pode ser usado para criar o segredo necessário. - let ContainerIdList = KubePodInventory + Exemplo de comando para criação manual de segredo (supondo que + ./secrets-templates contenha um arquivo nomeado exatamente como as + chaves acima): + + create-azure-logaccess-secret.sh .HPCC-Platform/helm/examples/azure/log-analytics/secrets-templates/ + + Caso contrário, crie o segredo manualmente. + + Exemplo de comando para criação manual de segredo (supondo que + ./secrets-templates contenha um arquivo nomeado exatamente como as + chaves acima): + + kubectl create secret generic azure-logaccess \ + --from-file=HPCC-Platform/helm/examples/azure/log-analytics/secrets-templates/ + + + + Configure o logAccess do HPCC + + A implantação do HPCC Systems alvo deve ser configurada para se + direcionar para a área de trabalho do Azure Log Analytics acima, + fornecendo os valores de logAccess apropriados (como + ./loganalytics-hpcc-logaccess.yaml). O secret azure-logaccess + previamente criado deve ser declarado e associado à categoria esp, + isso pode ser realizado através do valor yaml dos segredos (como + ./loganalytics-logaccess-secrets.yaml). + + Exemplo: + + helm install myhpcc hpcc/hpcc \ + -f HPCC-Platform/helm/examples/azure/log-analytics/loganalytics-hpcc-logaccess.yaml + + + + + + Acessando os Logs do HPCC Systems + + A interface AKS Log Analytics no Azure fornece visualizações de + métricas de saúde de cluster/nó/contêiner centradas em Kubernetes e + links diretos para logs de contêineres por meio de interfaces de + "análise de log". Os logs podem ser consultados via a linguagem de + consulta “Kusto” (KQL). + + Consulte a documentação do Azure para detalhes sobre como + consultar os logs. + + Exemplo de consulta KQL para buscar entradas de log de "Resumo de + transações" de um contêiner ECLWatch: + + let ContainerIdList = KubePodInventory | where ContainerName =~ 'xyz/myesp' | where ClusterId =~ '/subscriptions/xyz/resourceGroups/xyz/providers/Microsoft. ContainerService/managedClusters/aks-clusterxyz' @@ -380,111 +605,147 @@ ContainerLog | order by TimeGenerated desc | render table - Amostra de saída + Output de exemplo: - + - Consultas mais complexas podem ser formuladas para buscar - informações específicas fornecidas em qualquer uma das colunas de log, - incluindo dados não formatados na mensagem de log. A interface do - Insights facilita a criação de alertas com base nessas consultas, que - podem ser usadas para acionar e-mails, SMS, execução de Logic App e - muitas outras ações. - + Consultas mais complexas podem ser formuladas para buscar + informações específicas fornecidas em qualquer uma das colunas de log, + incluindo dados não formatados na mensagem do log. A interface de + Análise de Log facilita a criação de alertas baseados nessas consultas, + que podem ser usados para acionar e-mails, SMS, execução de Logic App, e + muitas outras ações. - Controlando a saída de registro do HPCC Systems + Controlling HPCC Systems Logging Output Os logs do HPCC Systems fornecem uma riqueza de informações que - podem ser usadas para benchmarking, auditoria, depuração, monitoramento, - etc. O tipo de informação fornecida nos logs e seu formato são controlados - trivialmente através da configuração padrão do Helm. Tenha em mente que no - modo de contêiner, cada linha de saída de log é passível de incorrer em um - custo dependendo do provedor e do plano que você possui e a verbosidade - deve ser cuidadosamente controlada usando as opções a seguir. Por padrão, - os logs de componentes não são filtrados e contêm as seguintes - colunas. - - Por padrão, os logs de componentes não são filtrados e contêm as + podem ser usadas para benchmarking, auditoria, debugging, monitoramento, + etc. O tipo de informação fornecida nos logs e seu formato é trivialmente + controlado via configuração padrão do Helm. Lembre-se que, no modo de + contêiner, cada linha de saída de log é passível de incorrer um custo, + dependendo do provedor e plano que você possui, e a verbosidade deve ser + cuidadosamente controlada usando as seguintes opções. + + Por padrão, os logs do componente não são filtrados, e contêm as seguintes colunas: MessageID TargetAudience LogEntryClass JobID DateStamp TimeStamp ProcessId ThreadID QuotedLogMessage - Os logs podem ser filtrados por TargetAudience, Category ou Detail - Level. Além disso, as colunas de saída podem ser configuradas. As - definições de configuração de registro podem ser aplicadas no nível global - ou de componente. + Os logs podem ser filtrados por Público-Alvo, Categoria ou Nível de + Detalhe. Além disso, as colunas de saída podem ser configuradas. As + configurações de logging podem ser aplicadas no nível global ou no nível + do componente. - Target Audience Filtering + Filtragem do Público-Alvo Os públicos-alvo disponíveis incluem operador (OPR), usuário - (USR), programador (PRO), auditoria (ADT) ou todos. O filtro é - controlado pelo valor <section>.logging.audiences. O valor da - string é composto por códigos de 3 letras delimitados pelo operador de - agregação (+) ou pelo operador de remoção (-). + (USR), programador (PRO), monitor (MON), auditoria (ADT), ou todos. O + filtro é controlado pelo valor <section>.logging.audiences. O + valor da string é composto por códigos de 3 letras delimitados pelo + operador de agregação (+) ou pelo operador de remoção (-). - Por exemplo, todas as saídas de log de componentes devem incluir - apenas mensagens do programador e do usuário: + Por exemplo, toda a saída do log do componente para incluir apenas + mensagens de Programador e Usuário: helm install myhpcc ./hpcc --set global.logging.audiences="PRO+USR" - Filtragem de Categoria de Destino + Filtragem da Categoria de Destino - As categorias de destino disponíveis incluem desastre (DIS), erro - (ERR), informações (INF), aviso (WRN), progresso (PRO), métricas (MET). - O filtro de categoria (ou classe) é controlado pelo valor + As categorias de destino disponíveis incluem disaster (DIS), error + (ERR), information (INF), warning (WRN), progress (PRO), event (EVT), + metrics (MET). O filtro de categoria (ou classe) é controlado pelo valor <section>.logging.classes, composto por códigos de 3 letras delimitados pelo operador de agregação (+) ou pelo operador de remoção (-). - Por exemplo, a saída do log da instância mydali para incluir todas - as classes, exceto o progresso: + Por exemplo, a saída de log da instância mydali deve incluir todas + as classes, exceto progress: helm install myhpcc ./hpcc --set dali[0].logging.classes="ALL-PRO" --set dali[0].name="mydali" - Log Detail Level Configuration + Configuração do Nível de Detalhe do Log + + A verbosidade da saída do log pode ser ajustada de "apenas + mensagens críticas" (1) até "relatar todas as mensagens" (100). O nível + de log padrão é bastante alto (80) e deve ser ajustado de acordo. + + Estes são os níveis de log disponíveis: + + + + CriticalMsgThreshold = 1; + + + + FatalMsgThreshold = 1; + + + + ErrMsgThreshold = 10; + - A verbosidade da saída do log pode ser ajustada de "critical - messages only" (1) até "report all messages" (100). O nível de log - padrão é bastante alto (80) e deve ser ajustado de acordo. + + WarnMsgThreshold = 20; + - Por exemplo, a verbosidade deve ser média para todos os - componentes: + + AudMsgThreshold = 30; + + + + ProgressMsgThreshold = 50; + + + + InfoMsgThreshold = 60; + + + + DebugMsgThreshold = 80; + + + + ExtraneousMsgThreshold = 90; + + + + Por exemplo, para exibir somente o progresso e o baixo nível (mais + critico) helm install myhpcc ./hpcc --set global.logging.detail="50" - Configuração da Coluna de Dados de Registro - - As colunas de dados de log disponíveis incluem messageid(MID), - público(AUD), class(CLS), date(DAT), time(TIM), node(NOD), - militime(MLT), microtime(MCT), nanotime(NNT) , processid(PID), - threadid(TID), job(JOB), use(USE), session(SES), code(COD), - component(COM), quotemessage(QUO), prefix(PFX), all(ALL) e padrão (STD). - A configuração das colunas (ou campos) de dados de log é controlada pelo - valor <section>.logging.fields, composto por códigos de 3 letras - delimitados pelo operador de agregação (+) ou pelo operador de remoção - (-). Por exemplo, todas as saídas de log de componentes devem incluir as - colunas padrão, exceto a coluna de ID do job: + Configuração da Coluna de Dados de Log + + As colunas de dados de log disponíveis incluem messageid (MID), + audience (AUD), class (CLS), date(DAT), time (TIM), node (NOD), + millitime (MLT), microtime (MCT), nanotime (NNT), processid (PID), + threadid (TID), job (JOB), use(USE), session(SES), code(COD), + component(COM), quotedmessage(QUO), prefix (PFX), all (ALL), e + standard(STD). A configuração das colunas (ou campos) de dados de log é + controlada pelo valor <section>.logging.fields, composto por + códigos de 3 letras delimitados pelo operador de agregação (+) ou pelo + operador de remoção (-). - Por exemplo, todas as saídas de log de componentes devem incluir - as colunas padrão, exceto a coluna de ID do job: + Por exemplo, toda a saída de log do componente deve incluir as + colunas padrão, exceto a coluna do ID do job: helm install myhpcc ./hpcc --set global.logging.fields="STD-JOB" - O ajuste de valores de registro por componente pode exigir a - afirmação de vários valores específicos de componentes, o que pode ser - inconveniente de fazer por meio do parâmetro de linha de comando --set. - Nesses casos, um arquivo de valores personalizados pode ser usado para - definir todos os campos obrigatórios. + O ajuste dos valores de log por componente pode exigir a afirmação + de vários valores específicos do componente, o que pode ser + inconveniente de fazer via o parâmetro da linha de comando --set. Nestes + casos, um arquivo de valores personalizados poderia ser usado para + definir todos os campos requeridos. Por exemplo, a instância do componente ESP 'eclwatch' deve gerar um log mínimo: @@ -493,39 +754,32 @@ ContainerLog - Asychronous logging configuration + Configuração de Logging Assíncrono Por padrão, as entradas de log serão criadas e registradas de forma assíncrona, para não bloquear o cliente que está registrando. As - entradas de log serão mantidas em uma fila e geradas em uma thread em - segundo plano. Esta fila tem um limite, uma vez atingido, o cliente - bloqueará aguardando capacidade. Como alternativa, o comportamento pode - ser configurado de forma que, quando esse limite for atingido, as - entradas de log sejam descartadas e perdidas para evitar qualquer - possível bloqueio. - - By default log entries will be created and logged asynchronously, - so as not to block the client that is logging. Log entries will be held - in a queue and output on a background thread. This queue has a maximum - depth, once hit, the client will block waiting for capacity. - Alternatively, the behaviour can be be configured such that when this - limit is hit, logging entries are dropped and lost to avoid any - potential blocking. - - NB: normalmente, espera-se que a pilha de registro continue e o - limite de fila padrão seja suficiente para evitar qualquer + entradas de log serão mantidas em uma fila e dispensadas em uma thread + em segundo plano. Essa fila tem um limite, quando atingido, o cliente + ficará bloqueado aguardando disponibilidade. Alternativamente, o + comportamento pode ser configurado para que, quando esse limite for + atingido, as entradas de log sejam descartadas e perdidas para evitar + qualquer bloqueio potencial. + + NB: normalmente, espera-se que a pilha de registro acompanhe e que + o limite de fila padrão seja suficiente para evitar qualquer bloqueio. - Os padrões podem ser configurados definindo o + Os padrões podem ser configurados definindo a <section>.logging.queueLen e/ou <section>.logging.queueDrop. - Ajustar <section>.logging.queueLen para 0 desabilitará o log - assíncrono, ou seja, cada log será bloqueado até ser concluído. + Definir <section>.logging.queueLen como 0, desativará o + registro assíncrono, ou seja, cada registro bloqueará até ser + concluído. - Ajustar <section>.logging.queueDrop para um valor não-zero - (N) fará com que N entradas de log da fila sejam descartadas se o - queueLen for atingido. + Definir <section>.logging.queueDrop para um valor diferente + de zero (N) fará com que N entradas de registro da fila sejam + descartadas se a queueLen for atingida. diff --git a/docs/PT_BR/ContainerizedHPCC/ContainerizedMods/CustomConfig.xml b/docs/PT_BR/ContainerizedHPCC/ContainerizedMods/CustomConfig.xml index e2cab9b320d..9a72a0a39e1 100644 --- a/docs/PT_BR/ContainerizedHPCC/ContainerizedMods/CustomConfig.xml +++ b/docs/PT_BR/ContainerizedHPCC/ContainerizedMods/CustomConfig.xml @@ -2,17 +2,17 @@ - Configurações Customizadas + Configurações Personalizadas Técnicas de Customização - Nesta seção, nós vamos abordar a criação de uma configuração - customizada do arquivo YAML e do lançamento de uma plataforma HPCC - Systems® utilizando os configurações padrão mas - as customizações. Depois de entender os conceitos de deste capítulo, você - pode consultar o próximo para uma referência a todos as configurações de - valores de configuração. + Esta seção percorre a criação de um arquivo de configuração YAML + personalizado e a implantação de uma plataforma HPCC Systems + ® usando a configuração padrão mais as + personalizações. Uma vez que você entenda os conceitos neste capítulo, + você pode se referir ao próximo capítulo para uma referência a todos os + ajustes de valor de configuração. Há várias maneiras de personalizar uma implantação da plataforma. Nós recomendamos o uso de métodos que permitem que você aproveite melhor o @@ -220,8 +220,8 @@ Crie um novo arquivo de texto e nomeie-o twothors.yaml, em seguida abra em um editor - de texto. + role="bold">twothors.yaml e abra-o em um editor de + texto. Você pode usar qualquer editor de texto. @@ -315,6 +315,600 @@ helm upgrade mycluster hpcc/hpcc -f tworoxies.yaml -f twothors.yaml + + + Crie um Chart de Configuração Personalizado para + AllowPipePrograms + + Você pode especificar mais de uma configuração personalizada + repetindo o parâmetro -f. + + Por exemplo: + + helm install mycluster hpcc/hpcc -f tworoxies.yaml -f thorWithPipe.yaml + + Nesta seção, modificaremos o Thor para permitir alguns Programas + PIPE. Na versão 9.2.0 e superior, os comandos usados ​​no PIPE são + restritos por padrão em implantações containerizadas a menos que sejam + explicitamente permitidos no Helm chart. + + + + Se você ainda não adicionou o repositório HPCC Systems a lista + de repositórios Helm, faça agora. + + helm repo add hpcc https://hpcc-systems.github.io/helm-chart/ + + Se você ja adicionou, atualiza os últimos: + + helm repo update + + + + Crie um novo arquivo de texto e o nomeie de thorWithPipe.yaml e abra-o em um editor de + texto. + + Você pode usar qualque editor de texto. + + + + Abra o arquivo padrão de valores que você salvou previamente + (myvalues.yaml) em um editor de texto. + + + + Copie a seção thor: toda e + cole no novo arquivo thorWithPipe.yaml. + + + + Adicione um bloco no fim: + + allowedPipePrograms: + - sort + - grep + - echoEste exemplo habilita três programas. Você pode um + deles. + + + + Salve o arquivo e feche o editor de texto. + + O resultado deve do arquivo thorWithPipe.yaml deve ficar + assim + + Nota: Os comentários foram + removidos para simplificar o exemplo: + + thor: +- name: thor + prefix: thor + numWorkers: 2 + maxJobs: 4 + maxGraphs: 2 + allowedPipePrograms: + - sort + - grep + - echo + + + + Faça o deploy utilizando o novo chart de + configuração customizado. + + + + Abra uma janela de terminal e navegue até o diretório onde o + arquivo thorWithPipe.yaml foi salvo. + + + + Faça o deploy da sua plataforma HPCC Systems, adicionando o + novo arquivo de configuração por meio do comando: + + # If you have previously stopped your cluster + +helm install mycluster hpcc/hpcc -f thorWithPipe.yaml + +# To upgrade without stopping + +helm upgrade mycluster hpcc/hpcc -f thorWithPipe.yaml + + + + + Após confirmar o deploy em execução, execute um job que use + uma ação PIPE e especifica um dos programas especificado. + + Nota: Se o job for muito + simples, será executado no hThor ao inves do Thor e este exemplo não + habilita programas PIPE no hThor. + + Você pode criar um novo arquivo yaml para permitir Programas + PIPE no ECL Agent ou pode utilizar: + + #OPTION('pickBestEngine',FALSE); + + para forçar o job ser executado no Thor. + + + + + + + + Criar uma Configuração Personalizada do Chart para o Thor + + Nesta seção, criaremos um arquivo YAML para especificar uma + implementação de plataforma sem Thor. + + + + Se você ainda não adicionou o repositório HPCC Systems + repository to a lista de repositórios do helm, faça agora. + + + helm repo add hpcc https://hpcc-systems.github.io/helm-chart/ + + + Caso já tenha feito, atualize os últimos charts: + + + helm repo update + + + + + Crie um novo arquivo de texto e o nomeie para nothor.yaml e abra-o em um editor de + texto. + + Você pode usar qualquer editor. + + + + Edite, conforme o exemplo a seguir, o arquivo para desabilitar + o Thor: + + + thor: [] + + + + + Salve o arquivo e feche o editor de texto. + + + + + Deploy utilizando um novo chart de configuração + customizado. + + + + + Abra o terminal e navegue até o diretório onde está salvo o + arquivo nothor.yaml. + + + + Faça o deploy do HPCC Systems, incluindo no seu comando a nova + configuração: + + + # If you have previously stopped your cluster + +helm install mycluster hpcc/hpcc -f nothor.yaml + +# To upgrade without stopping + +helm upgrade mycluster hpcc/hpcc -f nothor.yaml + + + + + Após confirmar que seu deploy está em execução, abra o ECL + Watch. + + Você não irá ver nenhum cluster Thor como destino. + + + + + + Crie um Chart de Configuração Personalizada para o Roxie + + Nesta seção, criaremos um arquivo YAML para especificar uma + implementação de plataforma sem Roxie. Embora o resultado seja + semelhante ao que fizemos na seção anterior para sem Thor, a técnica é + diferente. + + + + Se você ainda não adicionou o respositório do HPCC Systems a + lista de respositórios helm, faça agora. + + + helm repo add hpcc https://hpcc-systems.github.io/helm-chart/ + + + Caso já tenha feito, atualize os últimos charts: + + + helm repo update + + + + + Crie um novo arquivo de texto e o nomeie para noroxie.yaml e abra-o em um editor de + texto. + + Você pode usar qualquer editor de texto. + + + + Salve os valores padrão em um arquivo de texto: + + + helm show values hpcc/hpcc > myvalues.yaml + + + + + Abra o arquivo salvo (myvalues.yaml) em um editor de + texto. + + + + Copie a seção roxie: e cole + no novo arquivo noroxie.yaml. + + + + Copie a seção eclagent: e + cole no novo arquivo noroxie.yaml. + + + + No bloco roxie, edite o valor + para disabled: e mude para + true. + + Você pode remover todo o resto do bloco roxie: exceto o + nome. + + + + No bloco eclagent, delete + todo o bloco name: + roxie-workunit. + + Isso remove a instância de um Roxie atuando como um Agente + ECL. + + + + Salve e feche o editor de texto. + + O arquivo noroxie.yaml deverá parecer como este: + + Nota: Os comentários foram + removidos para simplificar o exemplo: + + + roxie: +- name: roxie + disabled: true + +eclagent: +- name: hthor + replicas: 1 + maxActive: 4 + prefix: hthor + useChildProcesses: false + type: hthor + + + + + + Faça o deploy usando o novo chart de + configuração personalizada. + + + + + Abra uma janela de terminal e navegue até o diretório onde + está salvo o arquivo noroxie.yaml. + + + + Faça o deploy do HPCC Systems, incluindo no seu comando a nova + configuração: + + + helm install mycluster hpcc/hpcc -f noroxie.yaml + + + + + Após confirmar que seu deploy está em execução, abra o ECL + Watch. + + Você não irá mais ver nenhum cluster Roxie disponível como + destino. + + + + + + Crie um Chart de Configuração Personalizado para Múltiplos Thors + Ouvindo uma Fila Comum. + + Nesta seção, criaremos três Thors que escutam uma fila comum (além + de sua própria fila). Isso fornece a capacidade de definir configurações + distintas de cluster Thor, mas permite que eles formem um único alvo + atrás de uma única fila. Esses clusters podem ser vinculados a + determinados conjuntos de nós em diferentes zonas de disponibilidade, se + desejado. Você pode usar este exemplo como um ponto de partida e ajustar + o número de clusters Thor que deseja. + + Isso é alcançado definindo filas de destino auxiliares adicionais + para cada definição de Thor e usando um nome comum como uma fila + auxiliar. + + + + Se você ainda não adicionou o respositório do HPCC Systems a + lista de respositórios helm, faça agora. + + + helm repo add hpcc https://hpcc-systems.github.io/helm-chart/ + + + Se já fez isso, atualize os últimos charts: + + + helm repo update + + + + + Crie um novo arquivo de texto e o nomeie para threethorsonequeue.yaml e abra-o em um editor + de texto. + + Você pode usar qualquer editor de texto. + + + + Abra o arquivo padrão de valores que você salvou previamente + (myvalues.yaml) em um editor de texto. + + + + Copie thor: e cole no novo + arquivo threethorsonequeue.yaml file. + + + + Copie todo o conteúdo do novo arquivo yaml file, exceto a + primeira linha (thor:), e cole no final do arquivo twice. + + Isso cria três seções - name:. + + + + Edite o arquivo da seguinte maneira: + + + + + De um único valor de name para cada Thor:. + + Neste exemplo, utilizaremos thor1, + thor2, e thor3. + + + + Adicione a entrada auxQueues: para cada block Thor block + utilizando um nome comum + + Neste exemplo estamos utilizando: + + + auxQueues: [ thorQ ] + + + + + Certifique-se que o prefix: é o mesmo que cada bloco do + Thor. + + + + + + + Salve e feche o editor de texto. + + O arquivo threethorsonequeue.yaml deverá ficar assim: + + Note: Os comentários foram + removidos para simplificar o exemplo: + + + thor: +- name: thor1 + auxQueues: [ thorQ ] + maxGraphs: 2 + maxJobs: 2 + numWorkers: 4 + numWorkersPerPod: 2 + prefix: thor +- name: thor2 + maxGraphs: 2 + maxJobs: 2 + numWorkers: 4 + numWorkersPerPod: 2 + prefix: thor + auxQueues: [ thorQ ] +- name: thor3 + maxGraphs: 2 + maxJobs: 2 + numWorkers: 4 + numWorkersPerPod: 2 + prefix: thor + auxQueues: [ thorQ ] + + + + + + Faça o deploy usando o novo chart de + configuração personalizada. + + + + + Abra uma janela de terminal e navegue até o diretório onde + está salvo o arquivo threethorsonequeue.yaml. + + + + Faça o deploy do HPCC Systems, incluindo no seu comando a nova + configuração: + + + # If you have previously stopped your cluster + +helm install mycluster hpcc/hpcc -f threethorsonequeue.yaml + +# To upgrade without stopping + +helm upgrade mycluster hpcc/hpcc -f threethorsonequeue.yaml + + + + + + Após confirmar que seu deploy está em execução, abra o ECL + Watch. + + Você deve ver quatro clusters Thor disponíveis como Alvos - + thor1, thor2, thor3 e uma quarta fila que todos os três Thors ouvem + - thorQ. + + + + + + Crie um Chart de Configuração Personalizado somente para Landing + Zone + + Nessa seção, nós iremos criar uma configuração personalizada que + implementa uma "plataforma" contendo apenas uma Landing Zone. Isso pode + ser útil se tudo o que você precisa é um servidor de landing zone com o + dafilesrv rodando. + + Nota: Isso só pode ser + implementado em um namespace diferente de qualquer outra instância de + plataforma. + + + + Se você ainda não adicionou o respositório do HPCC Systems a + lista de respositórios helm, faça agora. + + + helm repo add hpcc https://hpcc-systems.github.io/helm-chart/ + + + Se já fez isso, atualize os últimos charts: + + + helm repo update + + + + + Criar um novo arquivo de texto e o nomeie para lz.yaml e abra-o em um editor de + texto. + + Você pode usar qualquer editor de texto. + + + + Copie e cole este código no arquivo: + + + dafilesrv: +- name: direct-access + application: directio + service: + servicePort: 7100 + visibility: local + tls: false + resources: + cpu: "2" + memory: "8G" +dali: [] +dfuserver: [] +eclagent: [] +eclccserver: [] +eclscheduler: [] +esp: [] +roxie: [] +sasha: null +thor: [] + + + + + + Salve e feche o editor de texto. + + + + + Faça o deploy usando o novo chart de + configuração personalizada. + + + + + Abra uma janela de terminal e navegue até o diretório onde + está salvo o arquivo lz.yaml file. + + + + Implante esta "plataforma" LZ somente com a nova configuração + adicionada ao seu comando. + + + helm install mylz hpcc/hpcc -f lz.yaml + + + + + + Confirme que está instalado usando este comando: + + + helm list + + + + @@ -448,7 +1042,7 @@ helm upgrade mycluster hpcc/hpcc -f tworoxies.yaml -f twothors.yaml Os custos de armazenamento não podem ser vistos como um valor separado no ECL Watch. Eles só podem ser visualizados como parte de um - campo de custo na página de resumo de um arquivo lógico. + campo de custo na página de resumo de um arquivo lógico. @@ -697,4 +1291,183 @@ helm upgrade mycluster hpcc/hpcc -f tworoxies.yaml -f twothors.yaml + + + Protegendo Credenciais + + Utilizar o HPCC Systems em um ambiente containerizado tem algumas + preocupações de segurança únicas, ao externalizar componentes normalmente + internalizados, como as credenciais dos administradores LDAP. + + A proteção das credenciais dos administradores LDAP é realizada + usando os segredos do Kubernetes ou do Hashicorp Vault. Como + pré-requisito, você deve estar familiarizado com a configuração de + segredos do Kubernetes e/ou do Hashicorp Vault. + + A conta dos administradores LDAP deve ter direitos de administrador + para todos os Base DNs usados pela plataforma HPCC Systems. Em uma + implantação na nuvem, essas credenciais podem ser expostas. Portanto, uma + boa prática para essas credenciais de administrador é serem protegidas + usando segredos do Kubernetes ou o HashiCorp Vault. + + + Protegedo as credenciais no Kubernetes + + Para criar um secret no Kubernetes para armazenar as credenciais + da conta do usuário do administrador do LDAP, use uma interface de linha + de comando para o Kubernetes e execute um comando semelhante ao seguinte + exemplo: + + kubectl create secret generic admincredssecretname --from-literal=username=hpcc_admin \ + --from-literal=password=t0pS3cr3tP@ssw0rd + + + No exemplo acima, o nome do secret do Kubernetes é + "admincredssecretname", e ele contém as chaves/valores "username" e + "password" da conta do administrador do LDAP. Isso armazena o nome de + usuário e a senha do administrador do LDAP como um segredo do + Kubernetes. Quaisquer propriedades adicionais são ignoradas. + + Você pode verificar o secret que acabou de criar executando o + seguinte comando no Kubernetes. + + kubectl get secret admincredssecretname + + Para obter mais informações sobre o Kubernetes, consulte a + documentação específica para a sua implementação.. + + + Utilizando secrets do Kubernetes + + Para implementar os secrets do Kubernetes, substitua a seção + "secrets:" em HPCC-Platform/helm/hpcc/values.yaml, ou implemente com o + seu próprio gráfico personalizado. Para mais informações sobre como + personalizar sua implementação contêinerizada de Sistemas HPCC, veja + as seções acima sobre técnicas de personalização. + + No seu chat, crie um nome de chave único usado para referenciar + o segredo, e defina-o como o nome do secret que você criou na etapa + anterior. No exemplo acima, era "admincredssecretname". + + Você pode, opcionalmente, definir segredos adicionais conforme + necessário pela configuração de segurança da sua plataforma. Cada um + desses segredos seria criado conforme descrito acima e receberia nomes + únicos. O exemplo abaixo indica como você pode adicionar quaisquer + credenciais ou secrets adicionais aos seus chart Helm, se + necessário. + + A chave/valor "admincredsmountname" já existe por padrão no + arquivo values.yaml fornecido pelo HPCC Systems. A chave é + referenciada no arquivo ldap.yaml do componente. Você pode substituir + estes e adicionar chaves/valores adicionais conforme necessário. O + seguinte exemplo ilustra a adição de "additionalsecretname" e esse + nome deve corresponder ao nome do segredo adicional criado usando as + etapas acima. + + secrets: + authn: + admincredsmountname: "admincredssecretname" #exernalize HPCC Admin creds + additionalmountname: "additionalsecretname" #alternate HPCC Admin creds + + + + + Habilitar autenticação LDAP + + No arquivo ldap.yaml fornecido em + HPCC-Platform/esp/applications/common/ldap/, a "ldapAdminSecretKey" já + está configurada para o nome da chave de montagem ilustrado no exemplo + acima. Para habilitar a autenticação LDAP e modificar este valor, você + ou seu administrador de sistemas podem substituir o componente Helm + ESP/ECLWatch localizado no chart values.yaml, conforme ilustrado no + exemplo seguinte: + + esp: +- name: eclwatch + application: eclwatch + auth: ldap + ldap: + ldapAddress: "myldapserver" + ldapAdminSecretKey: "additionaltmountname" # use alternate secrets creds + + + + + + + + Protegendo crendeciais no HashiCorp Vault + + Para criar e armazenar secrets no HashiCorp Vault, a partir da + linha de comando, execute os seguintes comandos Vault. O nome secreto + usado no exemplo abaixo é "myvaultadmincreds" e deve ser prefixado com + "secret/authn/" conforme ilustrado. As chaves/valores "username" e + "password" do administrador LDAP são necessários. Propriedades + adicionais são ignoradas. + + vault kv put secret/authn/myvaultadmincreds username=hpcc_admin password=t0pS3cr3tP@ssw0rd + + Onde "secret/authn/myvaultadmincreds" é o nome do secret que + contém o nome de usuário e a senha do administrador LDAP. + + Para verificar e confirmar o valores do secret, execute o seguinte + comando: + + vault kv get secret/authn/myvaultadmincreds + + Para obter mais informações sobre como criar segredos para o + HashiCorp Vault, consulte a documentação apropriada da HashiCorp para + sua implementação. + + + Deploy do HashiCorp + Vault + + Deploy dos secrets do HashiCorp Vault quando você sobrescrever a + seção "secrets:" em HPCC-Platform/helm/hpcc/values.yaml, ou em seu + chart de configuração personalizado. Para mais informações sobre como + personalizar sua implantação containerizada do HPCC Systems, veja as + seções acima sobre técnicas de personalização. + + O valor do nome do Vault é definido para este exemplo no chart + gráfico de configuração values-secrets.yaml. Você pode encontrar um + exemplo deste gráfico no repositório HPCC-Platform em + /helm/examples/secrets/values-secrets.yaml. + + vaults: + authn: + - name: my-authn-vault + #The data node in the URL is there for use by the REST API + #The path inside the vault starts after /data + url: http://${env.VAULT_SERVICE_HOST}:${env.VAULT_SERVICE_PORT}/v1/secret/data/authn/${secret} + kind: kv-v2 + + + Você pode inserir isso em seu próprio gráfico de personalização + onde você fornece à sua implantação o nome do cofre que contém as + credenciais. + + + + Referenciando Vault Stored Authentication + + Os nomes de chave "ldapAdminSecretKey" e "ldapAdminVaultId" são + usados pelo gerente de segurança do HPCC Systems para resolver os + segredos, e devem corresponder exatamente quando se utiliza o nome do + Vault configurado nas etapas anteriores. + + esp: +- name: eclwatch + application: eclwatch + auth: ldap + ldap: + ldapAddress: "myldapserver" + ldapAdminSecretKey: "myvaultadmincreds" + ldapAdminVaultId: "my-authn-vault" + + + + + + diff --git a/docs/PT_BR/ContainerizedHPCC/ContainerizedMods/LocalDeployment.xml b/docs/PT_BR/ContainerizedHPCC/ContainerizedMods/LocalDeployment.xml index f6766ee81e2..ccad69b4f94 100644 --- a/docs/PT_BR/ContainerizedHPCC/ContainerizedMods/LocalDeployment.xml +++ b/docs/PT_BR/ContainerizedHPCC/ContainerizedMods/LocalDeployment.xml @@ -11,7 +11,7 @@ Pré-requisitos - + Todas ferramentas de terceiros devem ser 64-bits. @@ -371,9 +371,9 @@ sasha: Isto não é necessário em ambientes MacOS ou WSL 2. - + - + @@ -426,7 +426,7 @@ OUTPUT(allPeople,,'MyData::allPeople',THOR,OVERWRITE); - + @@ -459,7 +459,7 @@ OUTPUT(allPeople,,'MyData::allPeople',THOR,OVERWRITE); A nova sintaxe é: - ~plane::<storage-plane-name>::<path>::<filename> + '~plane::hpcc-data::tutorial::originalperson' Onde a sintaxe do caminho e do nome do arquivo são as mesmas usadas com a sintaxe file:: . Isso inclui exigir @@ -473,7 +473,8 @@ OUTPUT(allPeople,,'MyData::allPeople',THOR,OVERWRITE); role="bold">C:\hpccdata\hpcc-data\tutorial, poderá fazer referência ao arquivo usando esta sintaxe: - '~plane::data::tutorial::originalperson' + '~plane::data::tutorial::originalperson' + Nota: @@ -485,10 +486,10 @@ OUTPUT(allPeople,,'MyData::allPeople',THOR,OVERWRITE); - + - + - + diff --git a/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/Contains.xml b/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/Contains.xml index 5960734f750..af00a78b6d0 100644 --- a/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/Contains.xml +++ b/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/Contains.xml @@ -71,5 +71,5 @@ B:= STD.Str.Contains( 'abcdefghijklmnopqrstuvwxyz', false); //returns FALSE -- 'z' is missing - + Veja também: Find diff --git a/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/Copy.xml b/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/Copy.xml index 592a674633c..a292ca555f5 100644 --- a/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/Copy.xml +++ b/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/Copy.xml @@ -28,6 +28,7 @@ [ ,preserveCompression ] [ ,noSplit ] [ ,expireDays ] [ ,ensure ]); dfuwuid := @@ -55,7 +56,8 @@ [ ,preserveCompression ] [ ,noSplit ] [ ,expireDays ]); + role="bold">] [ ,ensure]); @@ -193,9 +195,16 @@ expireDays - Opcional. Um valor inteiro indicando o número de dias -           antes de remover automaticamente o arquivo. Se omitido, o - padrão é           -1 (nunca expira). + Opcional. Um valor inteiro indicando o número de dias antes + de remover automaticamente o arquivo. Se omitido, o padrão é -1 + (nunca expira). + + + + ensure + + Opcional. Copia o arquivo lógico, mas não copia partes do + arquivo se elas já existirem. O padrão é FALSO. diff --git a/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/CreateExternalDirectory.xml b/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/CreateExternalDirectory.xml index ce3e3da457e..cd85870b6e7 100644 --- a/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/CreateExternalDirectory.xml +++ b/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/CreateExternalDirectory.xml @@ -10,7 +10,9 @@ File.CreateExternalDirectory CreateExternalDirectory - ( location, path ( location, path [ , planename ] ) @@ -23,8 +25,8 @@ location - Uma string terminada por nulo que contém o endereço IP da - máquina remota. + Uma string terminada em nulo contendo o endereço IP da + máquina remota. Opcional se planename for fornecido. @@ -33,6 +35,15 @@ Uma string terminada por nulo que contém o caminho do diretório a ser criado. + + + planename + + Uma string terminada em nulo contendo o nome do plano de + dados que contém o arquivo. Opcional se + localização for fornecida, mas + planename é preferível. + @@ -44,8 +55,10 @@ Exemplo: - IP := '10.150.254.6'; -path := '/c$/training/import/NewDir'; -STD.File.CreateExternalDirectory(IP,path); + IMPORT STD; +IP := ''; +path := '/var/lib/HPCCSystems/dropzone/advancedtraining/'; +planename := 'mydropzone'; +STD.File.CreateExternalDirectory(IP,path,planename); diff --git a/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/DeleteExternalFile.xml b/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/DeleteExternalFile.xml index 7e8f29f4458..eaa2ce6d77d 100644 --- a/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/DeleteExternalFile.xml +++ b/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/DeleteExternalFile.xml @@ -10,7 +10,9 @@ File.DeleteExternalFile DeleteExternalFile - ( location, path ( location, path [ , planename ] ) @@ -23,8 +25,8 @@ location - Uma string terminada por nulo que contém o endereço IP da - máquina remota. + Uma string terminada em nulo contendo o endereço IP da + máquina remota. Opcional se planename for fornecido. @@ -33,6 +35,15 @@ Uma string terminada por nulo que contém o caminho/nome do arquivo a ser removido. + + + planename + + Uma string terminada em nulo contendo o nome do plano de + dados que contém o arquivo. Opcional se + localização for fornecida, mas + planename é preferível. + diff --git a/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/Find.xml b/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/Find.xml index d0aaca5be4f..93efec74ab1 100644 --- a/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/Find.xml +++ b/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/Find.xml @@ -99,4 +99,6 @@ D := IF(STD.Str.Find('', 'BD', 1) = 0, 'Success', 'Failure - 4'); //success + + Veja também: Contains diff --git a/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/MoveExternalFile.xml b/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/MoveExternalFile.xml index 0b84281c8ff..a0151682c30 100644 --- a/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/MoveExternalFile.xml +++ b/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/MoveExternalFile.xml @@ -10,8 +10,10 @@ File.MoveExternalFile MoveExternalFile - ( location, frompath, topath - ) + ( location, frompath, topath [ , planename ] ) @@ -23,7 +25,9 @@ location - Uma string terminada por nulo que contém o endereço IP da + Uma string terminada em nulo contendo o endereço IP da + máquina remota. Opcional se planename for + fornecido.Uma string terminada por nulo que contém o endereço IP da máquina remota. @@ -40,6 +44,15 @@ Uma string terminada por nulo que contém o caminho/nome do arquivo de destino. + + + planeName + + Uma string terminada em nulo contendo o nome do plano de + dados que contém o arquivo. Opcional se + machineIP for fornecido, mas + planeName é preferível. + @@ -53,8 +66,10 @@ Exemplo: - IP := '10.150.254.6'; -infile := '/c$/training/import/AdvancedECL/people'; -outfile := '/c$/training/import/DFUtest/people'; -STD.File.MoveExternalFile(IP,infile,outfile); + IMPORT STD; +IP := ''; +infile := '/var/lib/HPCCSystems/dropzone/originalperson'; +outfile := '/var/lib/HPCCSystems/dropzone/originalperson_bak'; +planename := 'mydropzone'; +STD.File.MoveExternalFile(IP,infile,outfile,planename); diff --git a/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/RemoteDirectory.xml b/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/RemoteDirectory.xml index 27e4495ccbb..a1e9d865eba 100644 --- a/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/RemoteDirectory.xml +++ b/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/RemoteDirectory.xml @@ -4,17 +4,19 @@ RemoteDirectory - STD.File.RemoteDirectory + STD.File.RemoteDirectory( + machineIP, dir [ , + mask ][ , recurse + ][ , planeName ] ) + STD.File.RemoteDirectory File.RemoteDirectory RemoteDirectory - ( machineIP, dir [ , mask ][ , recurse ] ) + @@ -26,7 +28,9 @@ machineIP - Uma string terminada por nulo que contém o endereço IP da + Uma string terminada em nulo contendo o endereço IP da + máquina remota. Opcional se planeName for + fornecido.Uma string terminada por nulo que contém o endereço IP da máquina remota. @@ -55,6 +59,15 @@ FALSE. + + planeName + + Uma string terminada em nulo contendo o nome do plano de + dados que contém o arquivo. Opcional se + machineIP for fornecido, mas + planeName é preferível. + + Return: @@ -78,7 +91,10 @@ END; Exemplo: - OUTPUT(STD.File.RemoteDirectory('edata12','\in','*.d00')); -OUTPUT(STD.File.RemoteDirectory('10.150.254.6', - '/var/lib/HPCCSystems/hpcc-data/thor/','acc*',TRUE)); + IMPORT STD; +machineIP := ''; +dir := '/var/lib/HPCCSystems/dropzone/training'; +recurse:= FALSE; +planeName := 'mydropzone'; +OUTPUT(STD.File.RemoteDirectory(machineIP,dir,'*.csv',recurse,planeName)); diff --git a/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/TimestampToString.xml b/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/TimestampToString.xml new file mode 100644 index 00000000000..69d560cb3e5 --- /dev/null +++ b/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/TimestampToString.xml @@ -0,0 +1,88 @@ + + + + TimestampToString + + STD.Date.TimestampToString + (timestamp, format) + + + + + + + + + + timestamp + + Um INTEGER8 contendo o número de microssegundos desde a época + (1 de janeiro de 1970 UTC) + + + + format + + OPCIONAL. O formato da string a ser retornada. Veja a + documentação strftime para detalhes (http://strftime.org/). Se + omitido, o padrão é '%Y-%m-%dT%H:%M:%S.%@' que é no formato + YYYY-MM-DDTHH:MM:SS.ssssss. + + + + Return: + + O timestamp convertido como uma string + no formato especificado. + + + + + + A função TimestampToString + TimestampToString + converte um valor Timestamp_t contendo o número de + microssegundos desde a época (1 de janeiro de 1970 UTC) em uma string + legível por humanos usando um modelo de formato dos padrões strftime. Dois + especificadores de formato adicionais estão disponíveis para exibir segundos + fracionados: + + + + + + + + + + %@ + + Fração de segundos em microssegundos (6 dígitos) + + + + %# + + Fração de segundos em microssegundos (3 dígitos) + + + + + + As frações de milissegundo são truncadas de microssegundos quando + necessário. + + O comprimento máximo da string resultante é de 255 caracteres. + + Exemplo: + + IMPORT STD; +STD.Date.TimestampToString(1048998120000000, '%A %B %d, %Y T%H:%M:%S.%#'); + // returns Sunday March 30, 2003 T04:22:00.000 + + + + diff --git a/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/getElapsedMs.xml b/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/getElapsedMs.xml new file mode 100644 index 00000000000..44296549cf6 --- /dev/null +++ b/docs/PT_BR/ECLStandardLibraryReference/SLR-Mods/getElapsedMs.xml @@ -0,0 +1,55 @@ + + + + getElapsedMs + + result := + STD.System.Log.getElapsedMs + STD.System.Log.getElapsedMs + + System.Log.getElapsedMs + + Log.getElapsedMs + + getElapsedMs + + (); + + + + + + + + + + Return: + + getElapsedMs retorna o tempo decorrido em + milissegundos.. + + + + + + A função getElapsedMs retorna o tempo + decorrido atual da consulta (em ms) no Roxie. + + Este é o tempo decorrido quando STD.System.Log.getElapsedMs() é + chamado. Como ECL é uma linguagem declarativa, o código não é + necessariamente executado em sequência. Você tem que ter cuidado ao tentar + obter o tempo decorrido para um ponto específico no seu código. Você pode + olhar os gráficos do Workunit para ver o ponto exato em que a atividade é + executada. > + + Para uso apenas no Roxie. Um erro é + retornado se você tentar executar no Thor ou hThor. + + Exemplo: + + IMPORT STD; +STD.System.Debug.Sleep (1054); // pause processing for 1054 milliseconds. +OUTPUT(STD.System.Log.getElapsedMs(), NAMED('Elapsed')); //returns total time elapsed + + diff --git a/docs/PT_BR/ECLStandardLibraryReference/SLR-includer.xml b/docs/PT_BR/ECLStandardLibraryReference/SLR-includer.xml index 631f541f9be..dfe37d4b67b 100644 --- a/docs/PT_BR/ECLStandardLibraryReference/SLR-includer.xml +++ b/docs/PT_BR/ECLStandardLibraryReference/SLR-includer.xml @@ -63,9 +63,7 @@ - - <emphasis>Arquivos lógicos</emphasis> - + <emphasis>Arquivos lógicos</emphasis> @@ -401,7 +399,9 @@ xmlns:xi="http://www.w3.org/2001/XInclude"/> - <emphasis>Manipulação de Data e Hora</emphasis> + + <emphasis>Manipulação de Data e Hora</emphasis> + @@ -490,6 +490,9 @@ + + - <emphasis>Logging</emphasis> + + <emphasis>Logging</emphasis> + @@ -603,6 +608,9 @@ + + diff --git a/docs/PT_BR/HPCCClientTools/CT_Mods/CT_Comm_Line_DFU.xml b/docs/PT_BR/HPCCClientTools/CT_Mods/CT_Comm_Line_DFU.xml index e886ed47f0d..363b13d6246 100644 --- a/docs/PT_BR/HPCCClientTools/CT_Mods/CT_Comm_Line_DFU.xml +++ b/docs/PT_BR/HPCCClientTools/CT_Mods/CT_Comm_Line_DFU.xml @@ -868,6 +868,14 @@ dfuplus action=despray srcname=mytest::test:spraytest se a compactação do arquivo de origem deve ser preservada. Se omitido, o padrão é 1. + + + ensure + + Opcional. Copia o arquivo lógico, mas não copia + partes do arquivo se eles já existirem. O padrão é + FALSE. + diff --git a/docs/PT_BR/HPCCClientTools/CT_Mods/CT_ECL_CLI.xml b/docs/PT_BR/HPCCClientTools/CT_Mods/CT_ECL_CLI.xml index 2feab2c86f5..6120dc370c2 100644 --- a/docs/PT_BR/HPCCClientTools/CT_Mods/CT_ECL_CLI.xml +++ b/docs/PT_BR/HPCCClientTools/CT_Mods/CT_ECL_CLI.xml @@ -165,6 +165,13 @@ retorna uma lista de todos os IDs de usuário-chave que podem ser usados pelo comando sign. + + + url-secret-name + + gerar um nome secreto a partir de uma URL para + mapeamento automático de URL + @@ -8561,6 +8568,65 @@ ecl getname -wu W201407* + + ecl url-secret-name + + ecl url-secret-name url + [--username=<username>] + + + + + + + + + + ecl url-secret-name + + Gera um nome secreto a partir de uma URL para + mapeamento automático de URL + + + + url + + URL para convert em um nome secreto. + + + + --username + + Opcional. O username associado a URL. Isto sobrepõe + qualquer username inserida na URL. + + + + O comando ecl url-secret-name + gera um nome secreto a partir de uma URL que pode ser usado para + suportar o mapeamento automático da URL para segredo no ECL + SOAPCALL/HTTPCALL. + + Um nome de usuário pode ser inserido na URL, como + https://username@example.com, ou passado como um parâmetro usando a + opção --username=username. Se um nome de usuário for passado como + parâmetro, ele substitui um nome de usuário na URL. + + As senhas inseridas na URL não são necessárias e serão + ignoradas. + + Quando o mapeamento secreto de URL do ECL SOAPCALL está ativado, + SOAPCALL converterá a URL fornecida em um nome deste formato. ECL, + então, tentará localizar o segredo e, se encontrado, usará o conteúdo + do segredo, ao invés da URL original. + + Exemplos: + + ecl url-secret-name https://example.com --username jimi +ecl url-secret-name http://example.com --username jimi + + + ecl roxie memlock diff --git a/docs/PT_BR/HPCCClientTools/CT_Mods/CT_Overview.xml b/docs/PT_BR/HPCCClientTools/CT_Mods/CT_Overview.xml index d1fcf97ed58..ec4954ab02c 100644 --- a/docs/PT_BR/HPCCClientTools/CT_Mods/CT_Overview.xml +++ b/docs/PT_BR/HPCCClientTools/CT_Mods/CT_Overview.xml @@ -135,55 +135,40 @@ Instale o software de ferramentas do cliente em sua máquina. + + - - - Nota: - - - Para grandes workunits ECL, o compilador de 32 bits - (eclcc) pode ficar sem memória mais rapidamente do que a - versão de 64 bits. Portanto, na maioria dos casos, você deve - instalar a versão de 64 bits. No entanto, para máquinas com - memória de 4 GB ou menos, você deve usar as ferramentas de - cliente de 32 bits. - - - - - Windows: + Windows: - Execute o arquivo executável, p.ex.: - hpccsystems-clienttools_community-7.X.X-XWindows-i386.exe em sua - máquina. Siga os comandos para concluir a instalação. + Execute o arquivo executável, p.ex.: + hpccsystems-clienttools_community-7.X.X-XWindows-i386.exe em sua + máquina. Siga os comandos para concluir a instalação. - Sistemas baseados em RPM - (CentOS/RedHat): + Sistemas baseados em RPM (CentOS/RedHat): + - Será fornecido um pacote de instalação do RPM. Instale o RPM - com o comutador -Uvh, o “U” ou “atualização” fará uma atualização se - uma versão prévia já tiver sido instalada. sudo rpm -Uvh <rpm file name> + Será fornecido um pacote de instalação do RPM. Instale o RPM com o + comutador -Uvh, o “U” ou “atualização” fará uma atualização se uma + versão prévia já tiver sido instalada. sudo rpm -Uvh <rpm file name> - Sistemas baseados em Debian - (Ubuntu): + Sistemas baseados em Debian + (Ubuntu): - Um pacote Debian é disponibilizado para instalações Ubuntu. - Para instalar o pacote, use: + Um pacote Debian é disponibilizado para instalações Ubuntu. Para + instalar o pacote, use: - sudo dpkg -i <deb filename> + sudo dpkg -i <deb filename> - Após instalar o pacote, execute o comando a seguir para - "arrumar" as dependências: + Após instalar o pacote, execute o comando a seguir para "arrumar" + as dependências: - sudo apt-get install -f + sudo apt-get install -f - Mac OSX: + Mac OSX: - Execute o arquivo de instalação, p.ex.: - hpccsystems-clienttools_community-7.X.X-XDarwin-x86_64.dmg. Siga os - comandos para concluir a instalação. - - + Execute o arquivo de instalação, p.ex.: + hpccsystems-clienttools_community-7.X.X-XDarwin-x86_64.dmg. Siga os + comandos para concluir a instalação. diff --git a/docs/PT_BR/HPCCClientTools/CT_Mods/CT_Overview_withoutIDE.xml b/docs/PT_BR/HPCCClientTools/CT_Mods/CT_Overview_withoutIDE.xml index dc76b2f9915..0e8c4e2300e 100644 --- a/docs/PT_BR/HPCCClientTools/CT_Mods/CT_Overview_withoutIDE.xml +++ b/docs/PT_BR/HPCCClientTools/CT_Mods/CT_Overview_withoutIDE.xml @@ -126,55 +126,40 @@ Instale o software de ferramentas do cliente em sua máquina. + + - - - Nota: - - - Para grandes workunits ECL, o compilador de 32 bits - (eclcc) pode ficar sem memória mais rapidamente do que a - versão de 64 bits. Portanto, na maioria dos casos, você deve - instalar a versão de 64 bits. No entanto, para máquinas com - memória de 4 GB ou menos, você deve usar as ferramentas de - cliente de 32 bits. - - - - - Windows: + Windows: - Execute o arquivo executável, p.ex.: - hpccsystems-clienttools_community-7.X.X-XWindows-i386.exe em sua - máquina. Siga os comandos para concluir a instalação. + Execute o arquivo executável, p.ex.: + hpccsystems-clienttools_community-7.X.X-XWindows-i386.exe em sua + máquina. Siga os comandos para concluir a instalação. - Sistemas baseados em RPM - (CentOS/RedHat): + Sistemas baseados em RPM (CentOS/RedHat): + - Será fornecido um pacote de instalação do RPM. Instale o RPM - com o comutador -Uvh, o “U” ou “atualização” fará uma atualização se - uma versão prévia já tiver sido instalada. sudo rpm -Uvh <rpm file name> + Será fornecido um pacote de instalação do RPM. Instale o RPM com o + comutador -Uvh, o “U” ou “atualização” fará uma atualização se uma + versão prévia já tiver sido instalada. sudo rpm -Uvh <rpm file name> - Sistemas baseados em Debian - (Ubuntu): + Sistemas baseados em Debian + (Ubuntu): - Um pacote Debian é disponibilizado para instalações Ubuntu. - Para instalar o pacote, use: + Um pacote Debian é disponibilizado para instalações Ubuntu. Para + instalar o pacote, use: - sudo dpkg -i <deb filename> + sudo dpkg -i <deb filename> - Após instalar o pacote, execute o comando a seguir para - "arrumar" as dependências: + Após instalar o pacote, execute o comando a seguir para "arrumar" + as dependências: - sudo apt-get install -f + sudo apt-get install -f - Mac OSX: + Mac OSX: - Abra o arquivo de imagem de disco da Apple (.dmg) e execute o - pacote de instalação (.pkg). Siga os comandos para concluir a - instalação. - - + Abra o arquivo de imagem de disco da Apple (.dmg) e execute o + pacote de instalação (.pkg). Siga os comandos para concluir a + instalação. diff --git a/docs/PT_BR/HPCCClientTools/CT_Mods/ECLCC.xml b/docs/PT_BR/HPCCClientTools/CT_Mods/ECLCC.xml index bbfcd6021b5..de59480df0c 100644 --- a/docs/PT_BR/HPCCClientTools/CT_Mods/ECLCC.xml +++ b/docs/PT_BR/HPCCClientTools/CT_Mods/ECLCC.xml @@ -180,15 +180,6 @@ listagem do arquivo a serem adicionados - - -checkDirty - - Faz com que o eclcc gere um aviso para qualquer - atributo que tenha sido modificado (conforme o resultado do - status git) O uso dessa função exige que o git esteja - instalado e disponível no caminho. - - -foption[=value] @@ -346,13 +337,6 @@ Passa a opção xx para o compilador c++ - - -Dname=value - - Substitui a definição do “nome” global do - atributo - - -Wl,xx @@ -378,6 +362,12 @@ -g) + + -save-temps + + Não exclui arquivos intermediários + + -shared @@ -390,6 +380,50 @@ + Opções de resolução de arquivos: + + + + + + + + + + + + -dfs=ip + + Use IP especificado para a resolução do nome do arquivo + DFS + + + + -scope=prefix + + Use o prefixo de escopo especificado na resolução do + nome do arquivo DFS + + + + -user=id + + Use o nome de usuário especificado na resolução do nome + do arquivo + + + + -password=xxx + + Use a senha especificada na resolução do nome do + arquivo DFS (em branco para solicitar) + + + + + + + Outras Opções: @@ -401,6 +435,12 @@ + + -aoption[=value] + + Configura opções da aplicação + + --allow=str @@ -414,6 +454,20 @@ recursos + + -allowsigned + + Permite somente acesso a funcionalidade com código + assinado + + + + -fisComplexCompile + + Impede tentativas de compilação como um processo filho + quando uma consulta é complexa + + -b @@ -429,6 +483,28 @@ arquivos + + -checkDirty + + Faz com que o eclcc gere um aviso para qualquer + atributo que tenha sido modificado (conforme o resultado do + status git) O uso dessa função exige que o git esteja + instalado e disponível no caminho. + + + + --component + + Defina o nome do componente em nome do qual isso está + sendo executado + + + + -Dname=value + + Sobrepõem a definição global do atributo 'name' + + --deny=all @@ -464,12 +540,28 @@ Executa testes internos + + + + + + + Other options (continued): + + + + + + + + + - --legacy + --leakcheck - Usa semântica de importação antiga - (descontinuada) + Limpe a memória, pois está verificando se há vazamentos + de memória @@ -479,6 +571,20 @@ stdout (formato XML) + + -legacyimport + + Utiliza semântica legado de importação + (descontinuado) + + + + -legacywhen + + Use semântica de legado quando/há efeitos colaterais + (descontinuado) + + --logfile <file> @@ -491,6 +597,67 @@ Define o nível de detalhe no arquivo de log + + --maxErrors=<n> + + Número limite de erros, abortando no nth (padrão = + 5) + + + + --metacache=x + + Especifique o diretório para armazenar as informações + meta distribuídas do indexador eclcc. Para desabilitar o + indexador, defina um valor vazio usando '--metacache='. Se + omitido, o local padrão é .eclcc/metacache. + + + + --nologfile + + Não registra nenhum log + + + + --nogpg + + Não execute o gpg para verificar assinaturas em códigos + assinados + + + + --nosourcepath + + Compila como se a fonte fosse de stdin + + + + --nostdinc + + Não inclui o diretório atual em -I + + + + -pch + + Generate precompiled header for eclinclude4.hpp + + + + -P <path> + + Especifica o caminho para os arquivos de saída (somente + com a opção -b) + + + + -showpaths + + Exibe informações sobre os caminhos de busca eclcc + utilizando + + -specs <file> @@ -512,6 +679,16 @@ da compilação + + -wxxxx=level + + Configura a severidade para um warning code em + particular ou categoria. Todas as opções para os níveis + são: all | ignore | log | warning | error | fail + -wall aplica a severidade + padrão para todos os alertas + + --version diff --git a/docs/PT_BR/HPCCSystemAdmin/SA-Mods/SecMgrMod.xml b/docs/PT_BR/HPCCSystemAdmin/SA-Mods/SecMgrMod.xml index 3f9a709baf6..30e0e42555e 100644 --- a/docs/PT_BR/HPCCSystemAdmin/SA-Mods/SecMgrMod.xml +++ b/docs/PT_BR/HPCCSystemAdmin/SA-Mods/SecMgrMod.xml @@ -9,7 +9,7 @@ Plugin) oferece um mecanismo de criação e implementação de Security Manager Plugins customizados. - + Desenvolvimento do Plugin Um Security Manager Plugin customizado consiste de um arquivo de @@ -47,9 +47,9 @@ Definição de Buildset O plugin - declara a si mesmo como um componente do Security Manager Plugin do HPCC , - assim como declara a localização dos arquivos do plugin e o esquema de - definição de configuração. + declara a si mesmo como um componente do Security Manager Plugin do HPCC + Systems, assim como declara a localização dos arquivos do plugin e o + esquema de definição de configuração. EXEMPLO: @@ -160,8 +160,6 @@ </xs:element> </xs:schema> - - genenvrules.conf – (opcional) Este arquivo permite que o plugin adicione a si mesmo na lista "do_not(automatically)_generate". Embora seja um arquivo opcional, ele é diff --git a/docs/PT_BR/HPCCSystemAdmin/SA-Mods/SecMgrModConfDeploy.xml b/docs/PT_BR/HPCCSystemAdmin/SA-Mods/SecMgrModConfDeploy.xml index 9f65d004678..f8a5d09de83 100644 --- a/docs/PT_BR/HPCCSystemAdmin/SA-Mods/SecMgrModConfDeploy.xml +++ b/docs/PT_BR/HPCCSystemAdmin/SA-Mods/SecMgrModConfDeploy.xml @@ -8,7 +8,8 @@ As seções a seguir detalham o processo de configuração de seu HPCC Systems para usar o Plugin do Gerenciador de Segurança. - + Como Configurar um Plugin do Gerenciador de Segurança Após ter sido instalado, o plugin pode ser configurado na plataforma diff --git a/docs/PT_BR/HPCCSystemAdmin/SA-Mods/WUTool.xml b/docs/PT_BR/HPCCSystemAdmin/SA-Mods/WUTool.xml index 0ffc40b1f86..95d78fcdf5d 100644 --- a/docs/PT_BR/HPCCSystemAdmin/SA-Mods/WUTool.xml +++ b/docs/PT_BR/HPCCSystemAdmin/SA-Mods/WUTool.xml @@ -17,13 +17,13 @@ - + - Actions + Actions @@ -53,6 +53,21 @@ Dump de resultados de uma workunit específica. + + info <workunits> <filter> + + Este comando fornece acesso filtrado a estatísticas e outras + informações de uma workunit.Consulte a tabela seguinte para + obter informações adicionais sobre o parâmetro info. + + + + analisa a <workunit> + + Analisa a workunit para destacar possíveis economias de + custos. + + archive <workunits> @@ -84,7 +99,7 @@ validate Verifique o conteúdo do repositório da workunit quanto a - erros. [FIX=1] will try to repair any issues found. + erros. [FIX=1] irá reparar qualquer ocorrência encontrada. @@ -99,6 +114,221 @@ Inicializa o respositório de uma nova workunit + + + graph <wu> + + Gera uma representação alternativa do graph com detalhes da + execução + + + + activity <wu> + + Quais atividades estão em execução em um determinado + intervalo de tempo (em ordem cronológica)<wu> + [">scope|mintime"] ["<scope|maxtime"] + [threshold=n%] + + + + hotspot <wu> [<activity>] + + Localiza hotspots para workunit (ou uma atividade em + particular) + + + + critical <wu> <activity> + + Quais atividades estão em execução em ordem de + execução + + + + depend <wu> <activity> +<activity> + + Localiza padrões entre duas atividades + + + + depend <wu> ?<activity>:startTime + + Quais depedências consomem um grande % no início da + atividade + + + + help <command> + + Mais ajuda por meio de comando + + + + + + A tabela a seguir fornece mais informações para a utilidade wutool + emitida com o parâmetro action=info: + + + + + + + + + + info + parâmetros + + + + + + info <workunits> <filter> + + Este comando fornece acesso filtrado às estatísticas e outras + informações de uma workunit.O filtro pode incluir os seguintes + elementos (aqueles indicados por * podem ser repetidos): + + + + + + + Quais escopos + correspondem: + + + + + scope[<scope-id>]* + + escope para correspodência + + + + + stype[<scope-type>]* + + escope do tipo de correspondência + + + + id[<id>]* + + o id do escopo para correspondência + + + + + + NOTA: escopo, stype e id não + podem ser especificados no mesmo filtro + + + + depth[n | + low..high] + + intervalo de profundidades para buscar uma + correspondência. + + + + source[global|stats|graph|all]* + + quais fontes dentro da workunit a pesquisar. O padrão são as + melhores fontes para o resto do filtro. + + + + where[<statistickind> | <statistickind> +(=|<|<=|>|>=) value | +<statistickind>=low..high] + + filtrar pela existência de estatística ou intervalo de + valores. + + + + + + Quais escopos estão inclusos nos + resultados: + + + + matched[true|false] + + os escopos correspondentes são retornados? + + + + nested[<depth>|all] + + qual aninhamento de escopos dentro de um escopo + correspondente estão nos resultados (padrão para '0' se + correspondente[true] e 'todos' se correspondente[false]). + + + + includetype[<scope-type>]* + + quais tipos de escopo devem ser incluídos? + + + + + + Qual informação sobre o escopo é + reportado: + + + + properties[statistics|hints| +attributes|scope|all]* + + + + + + statistic[<statistic-kind>|none|all]* + + + + + + attribute[<attribute-name>|none|all]* + + + + + + hint[<hint-name>]* + + + + + + property[<statistic-kind>| +<attribute-name>|<hint-name>]* + + incluir propriedade (categoria é deduzida) + + + + measure[<measure>] + + todas as estatísticas com medidas específicas. + + + + version[<version>] + + versão mínima para retornar + diff --git a/docs/PT_BR/Installing_and_RunningTheHPCCPlatform/Inst-Mods/UserSecurityMaint.xml b/docs/PT_BR/Installing_and_RunningTheHPCCPlatform/Inst-Mods/UserSecurityMaint.xml index 87b13636cd0..90defe664ac 100644 --- a/docs/PT_BR/Installing_and_RunningTheHPCCPlatform/Inst-Mods/UserSecurityMaint.xml +++ b/docs/PT_BR/Installing_and_RunningTheHPCCPlatform/Inst-Mods/UserSecurityMaint.xml @@ -1622,6 +1622,31 @@ Leitura + + + SashaAccess + + Acesso para o serviço WsSasha + + Access + + + + + + Listar Workunits + + Read + + + + + + Archivar Workunits, restaurar Workunits + arquivadas + + Full + diff --git a/docs/PT_BR/Installing_and_RunningTheHPCCPlatform/Inst-Mods/hpcc_ldap.xml b/docs/PT_BR/Installing_and_RunningTheHPCCPlatform/Inst-Mods/hpcc_ldap.xml index d4cb1a63b8b..f4724a7e8fe 100644 --- a/docs/PT_BR/Installing_and_RunningTheHPCCPlatform/Inst-Mods/hpcc_ldap.xml +++ b/docs/PT_BR/Installing_and_RunningTheHPCCPlatform/Inst-Mods/hpcc_ldap.xml @@ -293,6 +293,27 @@ + + Gerente de Segurança de Usuário Único + + O gerenciador de segurança de usuário único é um gerenciador de + segurança especializado que permite que uma combinação de nome de + usuário/senha seja especificada na linha de comando de inicialização do + ESP. Em tempo de execução, quando você tenta acessar qualquer recurso do + ESP que exija autenticação, como o ECL Watch, deve especificar uma + combinação de nome de usuário/senha. + + Um gerenciador de segurança de usuário único pode ser útil para uma + implantação personalizada onde você não deseja configurar um servidor LDAP + inteiro ou criar um arquivo HTPASSWD do Linux, como um ambiente de sala de + aula ou uma Máquina Virtual personalizada do HPCC Systems. + + Veja o documento Security + Manager Plugin Framework para maiores informações sobre + configurações e implantar os plugins Security Manager. + + Utilizando Autenticação LDAP From a1d1e7577645c94ea9d4e63bc9e616fe5ea98633 Mon Sep 17 00:00:00 2001 From: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:57:42 -0400 Subject: [PATCH 08/11] HPCC-31896 ECL Watch v9 fix Log viewer filter by audience pulls in a change from the @hpcc-js/comms library which fixes an issue with the k8s Logs list, where attempting to filter by "Audience" would not set the request parameters correctly. Signed-off-by: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> --- esp/src/package-lock.json | 8 ++++---- esp/src/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/esp/src/package-lock.json b/esp/src/package-lock.json index bc4b85a6248..1a1d9ac0fbf 100644 --- a/esp/src/package-lock.json +++ b/esp/src/package-lock.json @@ -18,7 +18,7 @@ "@hpcc-js/chart": "2.83.3", "@hpcc-js/codemirror": "2.61.4", "@hpcc-js/common": "2.71.17", - "@hpcc-js/comms": "2.92.1", + "@hpcc-js/comms": "2.92.2", "@hpcc-js/dataflow": "8.1.6", "@hpcc-js/eclwatch": "2.74.3", "@hpcc-js/graph": "2.85.15", @@ -1855,9 +1855,9 @@ } }, "node_modules/@hpcc-js/comms": { - "version": "2.92.1", - "resolved": "https://registry.npmjs.org/@hpcc-js/comms/-/comms-2.92.1.tgz", - "integrity": "sha512-nx4JJUSpU1m/Yd53PsbEL26DQFx+3UF0Pelk5O0BY2eFGpPVaQ9jHeWvuMJCHHpHcbxUtWN5nlwZlZgE9CFptA==", + "version": "2.92.2", + "resolved": "https://registry.npmjs.org/@hpcc-js/comms/-/comms-2.92.2.tgz", + "integrity": "sha512-9AbPnCYuTF6OhbSiG5QMDA2vuF457YL88h2ltuxPOjsOxp9Dp5VFlTkh88vW1W3Yph/+faGhiqUSvLMgFIwXEA==", "dependencies": { "@hpcc-js/ddl-shim": "^2.20.6", "@hpcc-js/util": "^2.51.0", diff --git a/esp/src/package.json b/esp/src/package.json index f823572534d..b104c55aed4 100644 --- a/esp/src/package.json +++ b/esp/src/package.json @@ -44,7 +44,7 @@ "@hpcc-js/chart": "2.83.3", "@hpcc-js/codemirror": "2.61.4", "@hpcc-js/common": "2.71.17", - "@hpcc-js/comms": "2.92.1", + "@hpcc-js/comms": "2.92.2", "@hpcc-js/dataflow": "8.1.6", "@hpcc-js/eclwatch": "2.74.3", "@hpcc-js/graph": "2.85.15", From 3091b3d698eac14e09ae255747dad4827ad2124d Mon Sep 17 00:00:00 2001 From: Jake Smith Date: Tue, 18 Jun 2024 18:37:55 +0100 Subject: [PATCH 09/11] HPCC-31807 Remove stale job queue client entries Signed-off-by: Jake Smith --- common/workunit/wujobq.cpp | 14 +++++++++++--- dali/base/dasds.cpp | 13 +++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/common/workunit/wujobq.cpp b/common/workunit/wujobq.cpp index 0a5bd0576a1..99c02da2fe7 100644 --- a/common/workunit/wujobq.cpp +++ b/common/workunit/wujobq.cpp @@ -1122,11 +1122,19 @@ class CJobQueue: public CJobQueueBase, implements IJobQueue void disconnect() // signal no longer wil be dequeing (optional - done automatically on release) { Cconnlockblock block(this,true); - if (connected) { + if (connected) + { dounsubscribe(); - ForEachQueue(qd) { + ForEachQueue(qd) + { IPropertyTree *croot = queryClientRootSession(*qd); - croot->setPropInt64("@connected",croot->getPropInt64("@connected",0)-1); + unsigned connectedCount = croot->getPropInt64("@connected"); + if (connectedCount) // should never be 0, but guard JIC + connectedCount--; + if (connectedCount) + croot->setPropInt64("@connected", connectedCount); + else + qd->root->removeTree(croot); } connected = false; } diff --git a/dali/base/dasds.cpp b/dali/base/dasds.cpp index 9478cbe2665..7257522fc03 100644 --- a/dali/base/dasds.cpp +++ b/dali/base/dasds.cpp @@ -4938,6 +4938,18 @@ void initializeInternals(IPropertyTree *root) root->addPropTree("Status/Servers",createPTree()); } +void clearStaleMeteData(IPropertyTree *root) +{ + // JobQueues + // Remove all Client entries from all queues. By definition they are stale (they should normally be removed when the client disconnects) + Owned jobQueues = root->getElements("JobQueues/Queue"); + ForEach(*jobQueues) + { + IPropertyTree &queue = jobQueues->query(); + while (queue.removeProp("Client")); + } +} + IPropertyTree *loadStore(const char *storeFilename, unsigned edition, IPTreeMaker *iMaker, unsigned crcValidation, bool logErrorsOnly=false, const bool *abort=NULL) { CHECKEDCRITICALBLOCK(loadStoreCrit, fakeCritTimeout); @@ -6543,6 +6555,7 @@ void CCovenSDSManager::loadStore(const char *storeName, const bool *abort) } Owned conn = connect("/", 0, RTM_INTERNAL, INFINITE); initializeInternals(conn->queryRoot()); + clearStaleMeteData(conn->queryRoot()); conn.clear(); initializeStorageGroups(oldEnvironment); } From 0a8c4d1e556dc6ce4b0bc9537aecd1176ba9b8c3 Mon Sep 17 00:00:00 2001 From: M Kelly Date: Wed, 19 Jun 2024 09:33:47 -0400 Subject: [PATCH 10/11] HPCC-32096 Expose MP listen queue somaxconn for containerized envs Signed-off-by: M Kelly --- system/mp/mpcomm.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/system/mp/mpcomm.cpp b/system/mp/mpcomm.cpp index 5b37a15e2a2..7154b61e6e1 100644 --- a/system/mp/mpcomm.cpp +++ b/system/mp/mpcomm.cpp @@ -2165,6 +2165,11 @@ CMPConnectThread::CMPConnectThread(CMPServer *_parent, unsigned port, bool _list parent->mpTraceLevel = getComponentConfigSP()->getPropInt("logging/@detail", InfoMsgThreshold); if (listen) { + if (getComponentConfigSP()->hasProp("expert/@mpSoMaxConn")) + mpSoMaxConn = getComponentConfigSP()->getPropInt("expert/@mpSoMaxConn"); + else + mpSoMaxConn = getGlobalConfigSP()->getPropInt("expert/@mpSoMaxConn", 0); + if (getComponentConfigSP()->hasProp("expert/@acceptThreadPoolSize")) acceptThreadPoolSize = getComponentConfigSP()->getPropInt("expert/@acceptThreadPoolSize"); else From 5a9d68992bdcb592cc72bd299f4a31cfc0e7930f Mon Sep 17 00:00:00 2001 From: Jake Smith Date: Mon, 17 Jun 2024 12:15:03 +0100 Subject: [PATCH 11/11] HPCC-31116 Fix 1 min delay introduced waiting for some CQ's The changes introduced by HPCC-30288 also caused Thor to stall for 1 minute per CQ that had not been started. Signed-off-by: Jake Smith --- thorlcr/graph/thgraphslave.cpp | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/thorlcr/graph/thgraphslave.cpp b/thorlcr/graph/thgraphslave.cpp index fbb68e4f947..2ffb55e596d 100644 --- a/thorlcr/graph/thgraphslave.cpp +++ b/thorlcr/graph/thgraphslave.cpp @@ -1222,6 +1222,8 @@ void CSlaveGraph::executeSubGraph(size32_t parentExtractSz, const byte *parentEx void CSlaveGraph::abort(IException *e) { + if (aborted) + return; if (!graphDone) // set pre done(), no need to abort if got that far. CGraphBase::abort(e); getDoneSem.signal(); @@ -1229,23 +1231,27 @@ void CSlaveGraph::abort(IException *e) void CSlaveGraph::done() { - GraphPrintLog("End of sub-graph"); - progressActive.store(false); - setProgressUpdated(); // NB: ensure collected after end of graph - if (!queryOwner() || isGlobal()) + if (started) { - if (aborted || !graphDone) + GraphPrintLog("End of sub-graph"); + progressActive.store(false); + setProgressUpdated(); // NB: ensure collected after end of graph + + if (initialized && (!queryOwner() || isGlobal())) { - if (!getDoneSem.wait(SHORTTIMEOUT)) // wait on master to clear up, gather info from slaves - WARNLOG("CSlaveGraph::done - timedout waiting for master to signal done()"); + if (aborted || !graphDone) + { + if (!getDoneSem.wait(SHORTTIMEOUT)) // wait on master to clear up, gather info from slaves + WARNLOG("CSlaveGraph::done - timedout waiting for master to signal done()"); + } + else + getDoneSem.wait(); + } + if (!queryOwner()) + { + if (globals->getPropBool("@watchdogProgressEnabled")) + jobS->queryProgressHandler()->stopGraph(*this, NULL); } - else - getDoneSem.wait(); - } - if (!queryOwner()) - { - if (globals->getPropBool("@watchdogProgressEnabled")) - jobS->queryProgressHandler()->stopGraph(*this, NULL); } Owned exception;