[
https://issues.apache.org/jira/browse/HDFS-12005?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16116767#comment-16116767
]
Elek, Marton commented on HDFS-12005:
-------------------------------------
The current plan is to share the common part of the KSM web interface with the
SCM (jvm args, uptime, RPC latency).
As a first step I would add the following SCM specific stats:
* Size openContainers from the BlockManager
* Table of the Nodes of the NodesManager
* Aggregated NodeStats from NodeManager
> Ozone: Web interface for SCM
> ----------------------------
>
> Key: HDFS-12005
> URL: https://issues.apache.org/jira/browse/HDFS-12005
> Project: Hadoop HDFS
> Issue Type: Sub-task
> Components: ozone
> Affects Versions: HDFS-7240
> Reporter: Elek, Marton
> Assignee: Elek, Marton
>
> This is a propsal about how a web interface could be implemented for SCM (and
> later for KSM) similar to the namenode ui.
> 1. JS framework
> There are three big option here.
> A.) One is to use a full featured web framework with all the webpack/npm
> minify/uglify magic. Build time the webpack/npm scripts should be run and the
> result will be added to the jar file.
> B.) It could be simplified if the generated minified/uglified js files are
> added to the project on commit time. It requires an additional step for every
> new patch (to generate the new minified javascripts) but doesn't require
> additional JS build tools during the build.
> C.) The third option is to make it as simple as possible similar to the
> current namenode ui which uses javascript but every dependency is commited
> (without JS minify/uglify and other preprocessing).
> I prefer to the third one as:
> * I have seen a lot of problems during frequent builds od older tez-ui
> versions (bower version mismatch, npm version mismatch, npm transitive
> dependency problems, proxy problem with older versions). All they could be
> fixed but requires additional JS/NPM magic/knowledge. Without additional npm
> build step the hdfs projects build could be kept more simple.
> * The complexity of the planned SCM/KSM ui (hopefully it will remain simple)
> doesn't require more sophisticated model. (Eg. we don't need JS require as we
> need only a few controllers)
> * HDFS developers mostly backend developers and not JS developers
> 2. Frameworks
> The big advantages of a more modern JS framework is the simplified
> programming model (for example with two way databinding) I suggest to use a
> more modern framework (not just jquery) which supports plain js (not just
> ECMA2015/2016/typescript) and just include the required js files in the
> projects (similar to the included bootstrap or as the existing namenode ui
> works).
>
> * React could be a good candidate but it requires more library as it's just
> a ui framework, even the REST calls need separated library. It could be used
> with plain javascript instead of JSX and classes but not straightforward, and
> it's more verbose.
>
> * Ember is used in yarnui2 but the main strength of the ember is the CLI
> which couldn't be used for the simplified approach easily. I think ember is
> best with the A.) option
> * Angular 1 is a good candidate (but not so fancy). In case of angular 1
> the component based approach should be used (in that case later it could be
> easier to migrate to angular 2 or react)
> * The mainstream side of Angular 2 uses typescript, it could work with
> plain JS but it could require additional knowledge, most of the tutorials and
> documentation shows the typescript approach.
> I suggest to use angular 1 or react. Maybe angular is easier to use as don't
> need to emulate JSX with function calls, simple HTML templates could be used.
> 3. Backend
> I would prefer the approach of the existing namenode ui where the backend is
> just the jmx endpoint. To keep it as simple as possible I suggest to try to
> avoid dedicated REST backend if possible. Later we can use REST api of
> SCM/KSM if they will be implemented.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]