<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">JCC</journal-id><journal-title-group><journal-title>Journal of Computer and Communications</journal-title></journal-title-group><issn pub-type="epub">2327-5219</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/jcc.2017.58001</article-id><article-id pub-id-type="publisher-id">JCC-76823</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Computer Science&amp;Communications</subject></subj-group></article-categories><title-group><article-title>
 
 
  Unified Platform for AI and Big Data Analytics
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Sik</surname><given-names>Kim</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Yongjin</surname><given-names>Kwon</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib></contrib-group><aff id="aff1"><addr-line>Department of Industrial Engineering, College of Engineering, Ajou University, Suwon, South Korea</addr-line></aff><author-notes><corresp id="cor1">* E-mail:<email>sik1093@ajou.ac.kr(YK)</email>;</corresp></author-notes><pub-date pub-type="epub"><day>12</day><month>06</month><year>2017</year></pub-date><volume>05</volume><issue>08</issue><fpage>1</fpage><lpage>8</lpage><history><date date-type="received"><day>April</day>	<month>12,</month>	<year>2017</year></date><date date-type="rev-recd"><day>Accepted:</day>	<month>June</month>	<year>9,</year>	</date><date date-type="accepted"><day>June</day>	<month>12,</month>	<year>2017</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  This paper describes an integrated platform for machine learning and big data analysis. The integrated platform is configured in a way that builds a large distributed data processing environment in the computing environment that makes up the NVIDIA AI platform. In addition, this paper describes the background of this idea selection and the use of the software to build the unified platform. The technical details are shown in terms of how to create the proposed platform. In the anlaysis section, the methodology is provided and also the steps are explained as to how to use this integration platform. Finally, the expected effects are elaborated in the conclusion section.
 
</p></abstract><kwd-group><kwd>Integrated Platform</kwd><kwd> Hadoop Eco System</kwd><kwd> Ambari</kwd><kwd> Virtual OS</kwd><kwd> Jetson TX-1</kwd><kwd> Dev Box</kwd><kwd> SSH</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>In general, artificial intelligence modeling requires a high-end computing environment. In particular, the modeling of AI, this is based on graphic processing capabilities such as NVIDIA, and requires the combination of high-end GPUs as well as CPUs [<xref ref-type="bibr" rid="scirp.76823-ref1">1</xref>] [<xref ref-type="bibr" rid="scirp.76823-ref2">2</xref>] . The inefficiency exists, however, in this high-end computing environment, if the computing power is only used for machine learning purposes. The valuable computing power can be better utilized, if a virtual server is made within the computer and used for the analysis of big data. In recent years, we have witnessed the massive increase of data streams generated by the unmanned systems, such as drones and autonomous vehicles. Those systems are increasingly integrated with machine learning algorithms, while generating and transmitting a large amount of data (i.e. image data, system parameter data, text data, and so on) in real-time. The onboard computers are conducting the processing for machine learning algorithms. However, the big data streams generated by the system itself also needs to be processed and analyzed simultaneously. In this regards, an integrated platform is proposed in this study that can efficiently and simultaneously perform the big data analysis as well as the machine learning processing (this function is our research purpose). This is achieved by creating distributed computing environment with the use of Hadoop EcoSystem [<xref ref-type="bibr" rid="scirp.76823-ref3">3</xref>] [<xref ref-type="bibr" rid="scirp.76823-ref4">4</xref>] . The details are explained in the following sections.</p></sec><sec id="s2"><title>2. Idea Extraction Process</title><sec id="s2_1"><title>2.1. Idea Generation</title><p>When data storing of information gathered from drones or autonomous driving cars is made, the artificial intelligence modeling (that is, machine learning algorithms) and the big data processing have been performed on different platforms. This concept is illustrated in <xref ref-type="fig" rid="fig1">Figure 1</xref>.</p><p>This process depicts the inefficiency because the processing of big data is performed on a different computing platform. On the other hand, <xref ref-type="fig" rid="fig2">Figure 2</xref> is depicting the unified platform that runs both machine learning algorithms and big data processing within a single PC.</p></sec><sec id="s2_2"><title>2.2. Why Should Build a Distributed Computing Environment?</title><p><xref ref-type="fig" rid="fig3">Figure 3</xref> illustrates the performance between RDBMS and Distributed Computing Environment (Node 3 - Node 5). As one can see, the distributed computing environment is faster than RDBMS. Also, if there are more nodes, the data processing time becomes shorter.</p><p><xref ref-type="fig" rid="fig4">Figure 4</xref> illustrates the comparison of performance when using the Hadoop (distributed computing environment) and the SPARK, a more advanced technology that is called “in-memory” system.</p><p>As one can see from the figure, the Hadoop’s Map Reduce performs better</p><fig id="fig1"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref></label><caption><title> Previous AI modeling and big data processing</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730609x2.png"/></fig><fig id="fig2"  position="float"><label><xref ref-type="fig" rid="fig2">Figure 2</xref></label><caption><title> Unified platform model</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730609x3.png"/></fig><fig id="fig3"  position="float"><label><xref ref-type="fig" rid="fig3">Figure 3</xref></label><caption><title> Comparison between distributed computing environment and existing RDBMS</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730609x4.png"/></fig><fig id="fig4"  position="float"><label><xref ref-type="fig" rid="fig4">Figure 4</xref></label><caption><title> Comparison between SPARK and Hadoop (Map Reduce)</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730609x5.png"/></fig><p>than RDBMS. The SPARK also performs better than the Hadoop’s Map Reduce. This comparison shows the importance of using a distributed computing environment to handle big data.</p></sec></sec><sec id="s3"><title>3. NVIDIA Artificial Intelligence (AI) Platform</title><sec id="s3_1"><title>3.1. NVIDIA AI Platform―Host Server (Physical HW)</title><p>The host server is made up of HW equipment for AI machine learning such as NVIDIA’s DevBox or Jetson TX1. These devices use the Linux Ubuntu 14.04 as the OS. The virtual server for the distributed environment also uses the same OS to enhance the compatibility. Overall, the distributed environment is made by using the host server and virtual server (built by using Oracle VirtualBox) [<xref ref-type="bibr" rid="scirp.76823-ref5">5</xref>] [<xref ref-type="bibr" rid="scirp.76823-ref6">6</xref>] .</p></sec><sec id="s3_2"><title>3.2. NVIDIA Digits (Image Training SW)</title><p>NVIDIA’s representative image training software, Digits, is the SW that can be integrated with the autonomous vehicles and drones. It is basically SW that supports CUDA development environment developed by NVIDIA and is optimized for image training. The details are shown in Figures 5-7 [<xref ref-type="bibr" rid="scirp.76823-ref7">7</xref>] [<xref ref-type="bibr" rid="scirp.76823-ref8">8</xref>] [<xref ref-type="bibr" rid="scirp.76823-ref9">9</xref>] .</p></sec></sec><sec id="s4"><title>4. Configuration of Network between Host and Slave Servers</title><p>After building the slave servers, we used the SSH network configuration to make it possible to access the slave server from the host server without sharing the information through the network configuration between the servers.</p><fig id="fig5"  position="float"><label><xref ref-type="fig" rid="fig5">Figure 5</xref></label><caption><title> NVIDIAI AI modeling “DevBox” (HW)</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730609x6.png"/></fig><fig id="fig6"  position="float"><label><xref ref-type="fig" rid="fig6">Figure 6</xref></label><caption><title> NVIDIAI AI modeling machine “Jetson TX-1” (HW)</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730609x7.png"/></fig><fig id="fig7"  position="float"><label><xref ref-type="fig" rid="fig7">Figure 7</xref></label><caption><title> NVIDIAI AI modeling SW “Digits”</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730609x8.png"/></fig><sec id="s4_1"><title>4.1. SSH Key Generation and Share</title><p>SSH network configuration allows access from a host server to a virtual server (slave). However, a password is required to access another server in its current state. Therefore, it is necessary to create an SSH shared key and share it between the servers so that communication can be smoothly performed without a password. In other words, setting up SSH network allows the autonomous communication between the servers without a password. The Linux command code is given in <xref ref-type="table" rid="table1">Table 1</xref> and <xref ref-type="table" rid="table2">Table 2</xref>.</p></sec><sec id="s4_2"><title>4.2. After Network Configuration between Host and Slave</title><p><xref ref-type="fig" rid="fig8">Figure 8</xref> shows that the SSH key is generated. The SSH key acts as the connection identity of the platform that needs to be connected. For example, one system is given a specific key structure and this key is only unique to this system. By examining the SSH key, one can identify the each individual system. Once the key is created and given to each system (i.e., server) and the connection is established, the host server and the slave server can freely access each other’s resources. Then, the computing of bid data can be performed on each other’s platform. <xref ref-type="fig" rid="fig9">Figure 9</xref> shows the remote connection between the host server and the</p><table-wrap id="table1" ><label><xref ref-type="table" rid="table1">Table 1</xref></label><caption><title> Linux command code for SSH network configuration in host server</title></caption><table><tbody><thead><tr><th align="center" valign="middle"  colspan="2"  >In Host Server</th></tr></thead><tr><td align="center" valign="middle" >generation of ssh key</td><td align="center" valign="middle" >root@client:~# ssh-keygen</td></tr><tr><td align="center" valign="middle" >confirmation of ssh key</td><td align="center" valign="middle" >root@client:~# ls ?al ~/.ssh</td></tr><tr><td align="center" valign="middle" >firewall set-up</td><td align="center" valign="middle" >root@client:~# chmod 700 ~/.ssh root@client:~# chmod 600 ~/.ssh/id_rsa root@client:~# chmod 644 ~/.ssh/id_rsa.pub root@client:~# chmod 644 ~/.ssh/authorized_keys root@client:~# chmod 644 ~/.sshknown_hosts</td></tr><tr><td align="center" valign="middle" >copy ssh public key to Slave Server</td><td align="center" valign="middle" >root@client:~# scp~/.ssh/id_rsa.pub root@slave:id_rsa.pub</td></tr></tbody></table></table-wrap><table-wrap id="table2" ><label><xref ref-type="table" rid="table2">Table 2</xref></label><caption><title> Linux command code for SSH network configuration in slave server</title></caption><table><tbody><thead><tr><th align="center" valign="middle"  colspan="2"  >In Slave Server</th></tr></thead><tr><td align="center" valign="middle" >move ssh public key to “.ssh” dirictory</td><td align="center" valign="middle" >root@slave:~# cat id_rsa.pub &gt;&gt; ~/.ssh/authorized_keys</td></tr><tr><td align="center" valign="middle" >firewall set-up</td><td align="center" valign="middle" >root@slave:~# chmod 700 ~/.ssh root@slave:~# chmod 644 ~/.ssh/authorized_keys</td></tr></tbody></table></table-wrap><fig id="fig8"  position="float"><label><xref ref-type="fig" rid="fig8">Figure 8</xref></label><caption><title> Generations of SSH key</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730609x14.png"/></fig><fig id="fig9"  position="float"><label><xref ref-type="fig" rid="fig9">Figure 9</xref></label><caption><title> Remote access to virtual server</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730609x9.png"/></fig><p>slave server. It is shown that the IP address is different.</p></sec></sec><sec id="s5"><title>5. Creation of Hadoop Cluster on NVIDIA AI Platform</title><p>This section explains the building of a Hadoop cluster (distributed environment) on the AI platform. The framework called “Apache Ambari” has been used to build a Hadoop cluster.</p><sec id="s5_1"><title>5.1. Creation of Hadoop Cluster</title><p>Asone can see in <xref ref-type="fig" rid="fig1">Figure 1</xref>0, Apache Ambari UI can be easily installed in Linux environment. After that, the NVIDIAAI platform (Client.com) is connected and the slave server (Slave.com) to the Hadoop cluster using the Ambari framework is constructed. In this way, we have created an environment for analyzing not only machine learning algorithms but also big data on the same platform. The Ambari allows you to install SPARK-like SWs in Hadoop clusters. You can also install and uninstall the SW after the Hadoop cluster is completed.</p><p><xref ref-type="fig" rid="fig1">Figure 1</xref>1 shows the completion of Hadoop Cluster and the completed inte-</p><fig id="fig10"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>0</label><caption><title> Apache Ambari installation guide</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730609x10.png"/></fig><fig id="fig11"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>1</label><caption><title> Completion of making Hadoop cluster</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730609x11.png"/></fig><fig id="fig12"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>2</label><caption><title> Unified platform for AI and big-data processing</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730609x12.png"/></fig><p>grated platform. The figure describes the completion of distributed computing environment by using Ambari UI. If one wants to use another SW (i.e., SPARK and PIG) to process big data, one can also download them after the Hadoop Cluster is made.</p></sec></sec><sec id="s6"><title>6. Conclusions</title><p>In <xref ref-type="fig" rid="fig1">Figure 1</xref>2, one can see the finished unified platform for AI and big data analytics. The UI represents the Digits SW accessed from the slave server (NVIDIA AI platform). The Digits SW is mainly for image training and machine learning purposes. The UI also represents the R-studio connected to the host server. The R-studio mainly processes the statistical analysis of big data. By creating this platform, the performance of the computing speed and the processing time can be significantly improved, as opposed to the conventional system that has been explained in <xref ref-type="fig" rid="fig1">Figure 1</xref>.</p><p>Therefore, in this integrated platform, it is possible to process the big data as well as the artificial intelligence algorithms using the same GPU accelerator. The development of this platform maximizes the utilization of the AI platform. Then a high-performance computing environment will improve efficiency. Therefore, it is not necessary to add additional computers for the big data analysis for the information gathering devices, such as drones and autonomous vehicles. This kind of technology will be very useful in the near future, where we expect the introduction of huge amount of autonomous devices.</p></sec><sec id="s7"><title>Acknowledgements</title><p>This work was supported by the Ajou University research fund.</p></sec><sec id="s8"><title>Cite this paper</title><p>Kim, S. and Kwon, Y.J. (2017) Unified Platform for AI and Big Data Analytics. Journal of Computer and Communications, 5, 1-8. https://doi.org/10.4236/jcc.2017.58001</p></sec></body><back><ref-list><title>References</title><ref id="scirp.76823-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Kim, J.W., Kim, J.H. and Kim, I. (2015) SPQUSAR: A Large-Scale Qualitative Spatial Reasoner Using Apache Spark. KIISE Transactions on Computing Practices, 21, 774-779. https://doi.org/10.5626/KTCP.2015.21.12.774</mixed-citation></ref><ref id="scirp.76823-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Chen, L., Ko, J.H. and Yeo, J.M. (2014) Performance Comparison of DW System Tajo Based on Hadoop and Relational DBMS. KIPS Tr. Software and Data Eng, 3, 349-354 https://doi.org/10.3745/KTSDE.2014.3.9.349</mixed-citation></ref><ref id="scirp.76823-ref3"><label>3</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Lim</surname><given-names> Y.-H. </given-names></name>,<etal>et al</etal>. (<year>1995</year>)<article-title>ComBiStation: A Computer Platform for a Distributed Multimedia Computing Environment</article-title><source> Journal of KIISE</source><volume> 2</volume>,<fpage> 160</fpage>-<lpage>181</lpage>.<pub-id pub-id-type="doi"></pub-id></mixed-citation></ref><ref id="scirp.76823-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Lee, W.-H. and Lee, B.-H. (2012) Service Delivery Time Improvement Using HDFS in Desktop Virtualization. Journal of KIICE, 16, 913-921. 
https://doi.org/10.6109/jkiice.2012.16.5.913</mixed-citation></ref><ref id="scirp.76823-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">NVIDIA (2017) Jetson.  
http://www.nvidia.com/object/embedded-systems-dev-kits-modules.html</mixed-citation></ref><ref id="scirp.76823-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">NVIDIA (2017) DevBox. 
 https://developer.nvidia.com/devbox</mixed-citation></ref><ref id="scirp.76823-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">NVIDIA (2017) Digits. 
 https://developer.nvidia.com/digits</mixed-citation></ref><ref id="scirp.76823-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">ORACLE (2016) Virtual Box.  
https://www.oracle.com/virtualization/virtualbox/index.html</mixed-citation></ref><ref id="scirp.76823-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Apache Ambari (2016).  
https://ambari.apache.org/</mixed-citation></ref></ref-list></back></article>