[ 
https://issues.apache.org/jira/browse/HDFS-12005?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16455192#comment-16455192
 ] 

Hudson commented on HDFS-12005:
-------------------------------

SUCCESS: Integrated in Jenkins build Hadoop-trunk-Commit #14070 (See 
[https://builds.apache.org/job/Hadoop-trunk-Commit/14070/])
HDFS-12005. Ozone: Web interface for SCM. Contributed by Elek, Marton. 
(omalley: rev dcc21a4f939be587ea2642e44e51ccf53534f2e8)
* (edit) hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/ksm/ksm-metrics.html
* (add) hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/scm/scm-overview.html
* (edit) 
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/OzoneHttpServer.java
* (edit) hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/ksm/ksm.js
* (edit) 
hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestSCMMXBean.java
* (add) 
hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/static/templates/overview.html
* (add) 
hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/static/templates/rpc-metrics.html
* (edit) 
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KeySpaceManager.java
* (edit) hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/ksm/index.html
* (edit) 
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KSMMXBean.java
* (edit) 
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/block/BlockManagerImpl.java
* (add) hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/scm/scm.js
* (edit) hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/scm/index.html
* (edit) 
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/jmx/ServiceRuntimeInfo.java
* (delete) hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/ksm/rpc-metrics.html
* (add) 
hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/static/templates/jvm.html
* (delete) 
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/jmx/ServiceRuntimeInfoMBean.java
* (delete) hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/ksm/jvm.html
* (add) 
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/jmx/ServiceRuntimeInfoImpl.java
* (edit) 
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/SCMMXBean.java
* (add) 
hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/static/templates/tools.html
* (add) 
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/block/BlockmanagerMXBean.java
* (add) hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/static/ozone.js
* (edit) 
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/StorageContainerManager.java
* (delete) hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/ksm/overview.html


> 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
>            Priority: Major
>         Attachments: HDFS-12005-HDFS-7240.001.patch, 
> HDFS-12005-HDFS-7240.002.patch
>
>
> 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
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to