[劉勇 陸小慧]
Hadoop 是一個(gè)由Apache 基金會(huì)所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。用戶可以在不了解分布式底層細(xì)節(jié)的情況下,開發(fā)分布式程序,充分利用集群的威力進(jìn)行高速運(yùn)算和存儲(chǔ)。
Hadoop 實(shí)現(xiàn)了一個(gè)分布式文件系統(tǒng)HDFS(Hadoop Distributed File System),HDFS 有高容錯(cuò)性的特點(diǎn),并設(shè)計(jì)用來部署在相比小型機(jī)更為廉價(jià)的(Low-cost)PC服務(wù)器上;而且它提供高吞吐量(High throughput)來訪問應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集(Large data set)的應(yīng)用程序。HDFS 放寬了POSIX 的要求,可以以流的形式訪問(Streaming access)文件系統(tǒng)中的數(shù)據(jù)。
Hadoop 框架最核心的設(shè)計(jì)是HDFS 和MapReduce:HDFS 為海量的數(shù)據(jù)提供了存儲(chǔ)方式,MapReduce 為海量的數(shù)據(jù)提供了計(jì)算方式。
目前Hadoop 在大數(shù)據(jù)的通行市場上占據(jù)主導(dǎo)地位。基于開源免費(fèi)、硬件廉價(jià)、開發(fā)便利這3 個(gè)原因使得Hadoop 市場份額逐年高速遞增。事實(shí)上在軟件的成本之外,硬件產(chǎn)生的經(jīng)濟(jì)成本更為可觀,如何降低硬件成本是每一個(gè)應(yīng)用運(yùn)營商都在考慮并尋求解決方案的課題。
目前Intel 公司的CPU 占據(jù)著市場的主導(dǎo)地位,導(dǎo)致PC 服務(wù)器的CPU 價(jià)格居高不下,一顆服務(wù)器至強(qiáng)E3 型號(hào)的4 核CPU 處理器價(jià)格在1 500 元左右。而智能終端所用的CPU 處理器,如聯(lián)發(fā)科MT6582 處理器只有42 元。這兩者價(jià)格相差30 倍左右,功耗相差1 000 倍左右。而兩者之間的性能差距,平均到單核上,至強(qiáng)處理器只有智能終端處理器的5 倍左右。
一臺(tái)100 個(gè)智能終端組成的集群(如手機(jī)集群),成本可以控制在1 到2 萬元,物理體積和一臺(tái)普通PC 服務(wù)器相當(dāng),計(jì)算性能是一臺(tái)PC 服務(wù)器的5~10 倍,功耗可以控制在PC 服務(wù)器的1/10 到1/20。
在現(xiàn)有技術(shù)上,基于智能終端的Android 系統(tǒng)不能支持Hadoop 的運(yùn)行,本方案是建立一個(gè)中間層保障Hadoop和Android 之間的適配以及運(yùn)行。
本文所述智能終端以手機(jī)終端進(jìn)行舉例,不限制于運(yùn)行Android 系統(tǒng)的手機(jī)終端、PAD、機(jī)頂盒,以及運(yùn)行Android 系統(tǒng)的各類手持設(shè)備。
一個(gè)大數(shù)據(jù)計(jì)算集群是由分布式軟件和硬件集群一起組成的,本文研究并提供一個(gè)優(yōu)秀的廉價(jià)、易用、便攜的大數(shù)據(jù)計(jì)算和存儲(chǔ)平臺(tái)。使用本平臺(tái)后,能快速、方便且更為廉價(jià)地為企業(yè)提供分布式計(jì)算、云計(jì)算服務(wù)。
2.1.1 Hadoop on Android
基于Android 系統(tǒng)的Hadoop 分布式計(jì)算平臺(tái),使得Hadoop 可以在 Android 系統(tǒng)上正常運(yùn)行;并且提供Hadoop 運(yùn)行時(shí)軟件和硬件的健康監(jiān)控,損壞時(shí)觸發(fā)對(duì)軟件的修復(fù)或?qū)τ布奶鎿Q。
2.1.2 軟件架構(gòu)
圖1 為移動(dòng)云計(jì)算中間平臺(tái)在軟件系統(tǒng)的位置,該平臺(tái)位于Android 系統(tǒng)和Hadoop 之間。
圖1 軟件架構(gòu)
圖2 移動(dòng)云計(jì)算中間平臺(tái)內(nèi)功能模塊
模塊一:硬件驅(qū)動(dòng)
移動(dòng)云計(jì)算中間平臺(tái)為操作系統(tǒng)加載硬件驅(qū)動(dòng),該驅(qū)動(dòng)主要為網(wǎng)絡(luò)控制器服務(wù)。
模塊二:Hadoop 支撐Java 庫
移動(dòng)云計(jì)算中間平臺(tái)為Hadoop 提供Android 系統(tǒng)缺少的Java 庫。Android 系統(tǒng)支持一部分Java 功能,該平臺(tái)可補(bǔ)足Android 系統(tǒng)中缺少的Java 庫。
模塊三:硬件健康監(jiān)控
移動(dòng)云計(jì)算中間平臺(tái)為智能終端提供硬件健康監(jiān)控,監(jiān)控并提供修復(fù)操作。當(dāng)硬件出現(xiàn)問題后會(huì)進(jìn)行重連/重啟操作,多次重連/重啟失敗后,提示替換該硬件。監(jiān)控功能使用心跳檢測機(jī)制以及溫度檢測來監(jiān)控硬件。
模塊四:配置自動(dòng)獲取
網(wǎng)絡(luò)配置自動(dòng)化:移動(dòng)云計(jì)算中間平臺(tái)能夠在第一次啟動(dòng)時(shí),為智能終端分發(fā)一個(gè)固定地址,當(dāng)在無線連接下,IP 地址由無線DHCP 自動(dòng)分配,讀取分配的IP 地址寫入Hadoop 配置文件中。
同時(shí),根據(jù)加入集群的智能終端的計(jì)算能力、存儲(chǔ)大小來自動(dòng)設(shè)置Hadoop 的運(yùn)行配置。
模塊五:計(jì)算存儲(chǔ)資源管理
在當(dāng)前Hadoop 計(jì)算和存儲(chǔ)控制的基礎(chǔ)上整合到平臺(tái)中,對(duì)計(jì)算和存儲(chǔ)的資源進(jìn)行軟件管理,基于計(jì)算存儲(chǔ)資源的飽和度來進(jìn)行資源平衡處理。
當(dāng)集群接收外來寫入和計(jì)算任務(wù)時(shí),先確認(rèn)當(dāng)前集群中機(jī)器的資源使用狀況,然后調(diào)取Hadoop 的任務(wù)分配方法:存儲(chǔ)已經(jīng)超出設(shè)定限額上限的將不接受寫入操作,計(jì)算超出設(shè)定限額上限的將不接受計(jì)算任務(wù);當(dāng)存儲(chǔ)低于設(shè)定限額下限時(shí)將優(yōu)先寫入,直到到達(dá)設(shè)定限額的上限;當(dāng)計(jì)算低于設(shè)定限額下限時(shí)將優(yōu)先接受計(jì)算任務(wù);直到到達(dá)設(shè)定限額的上限;其他處于上限和下限之間的機(jī)器獲取任務(wù)時(shí)進(jìn)行隨機(jī)分配。
模塊六:系統(tǒng)日志處理
當(dāng)系統(tǒng)日志大于設(shè)定的范圍值時(shí),日志的存儲(chǔ)進(jìn)行FIFO(First in first out) 存儲(chǔ)。也就是先刪除遠(yuǎn)期日志,然后存儲(chǔ)最新的日志。
模塊七:云計(jì)算任務(wù)調(diào)度
提供給外部接口進(jìn)行云計(jì)算管理,該管理包括啟動(dòng)、停止、暫停、定時(shí)等功能。
圖3 為移動(dòng)云計(jì)算中間平臺(tái)功能流程圖,詳細(xì)描述了一臺(tái)智能終端在安裝移動(dòng)云計(jì)算中間平臺(tái)后各模塊的工作流程情況。
圖3 移動(dòng)云計(jì)算中間平臺(tái)功能流程圖
2.2.1 Android API 接口的封裝
Hadoop 通過移動(dòng)云計(jì)算中間平臺(tái)對(duì)底層Android 系統(tǒng)調(diào)用各API 功能接口進(jìn)行數(shù)據(jù)讀寫、計(jì)算等任務(wù)。
(1)手機(jī)內(nèi)存數(shù)據(jù)讀寫
getFileDir():得到Hadoop 在手機(jī)內(nèi)存存儲(chǔ)數(shù)據(jù)的位置/data/data/Hadoop/files
getCacheDir():得到Hadoop 在手機(jī)內(nèi)存緩存數(shù)據(jù)的位置/data/data/Hadoop/cache
openFileInput(String name):直接得到/data/data/Hadoop/files/name 文件的輸入流
openFileOutput(String name,int mode):直接得到/data/data/Hadoop/files/name 文件的輸出流,mode 為寫入文件時(shí)的權(quán)限
Context.MODE_PRIVATE:私有模式(默認(rèn)模式),只能被應(yīng)用本身和同一群組的人訪問;寫入的內(nèi)容覆蓋原文件內(nèi)容
Context.MODE_APPEND:追加模式也是私有模式,只能被應(yīng)用本身和同一群組的人訪問;如果文件存在就追加內(nèi)容,如果文件不存在就新建文件并寫入內(nèi)容
Context.MODE_WORLD_READABLE:所有人可讀權(quán)限
Context.MODE_WORLD_WRITEABLE:所有人可寫權(quán)限
(2)SDcard 數(shù)據(jù)讀寫
getExternalStorageDirectory():得到Hadoop 所在智能終端的SDcard 位置/storage/sdcard
getExternalStorageState():得到Hadoop 所在智能終端的SDcard 的當(dāng)前狀態(tài),比較常用的是MEDIA_MOUNTED
使用FileInputStream 讀取文件
使用BufferReader 讀取文件
httpConnection 讀取流保存成String 數(shù)據(jù)
使用FileOutputStream 寫入文件
使用BufferedWriter 寫入文件
(3)Hadoop 計(jì)算使用Java 的加(+)減(-)乘(*)除(/)四則運(yùn)算
2.2.2 Hadoop on Android 存儲(chǔ)和計(jì)算過程
Hadoop HDFS 集群有兩類節(jié)點(diǎn),并以“管理者—工作者”模式運(yùn)行,即一個(gè)NameNode(管理者,Master)和多個(gè)DataNode(工作者)。每一個(gè)NameNode 和DataNode 都各對(duì)應(yīng)一臺(tái)智能終端。
NameNode 是管理者(Master),主要負(fù)責(zé)管理HDFS文件系統(tǒng),具體包括namespace 管理、block 管理;DataNode 主要是用來存儲(chǔ)數(shù)據(jù)文件。HDFS 將一個(gè)文件分割成一個(gè)個(gè)的block,這些block 可能存儲(chǔ)在一個(gè)DataNode 上或者是多個(gè)DataNode 上。DataNode 負(fù)責(zé)實(shí)際的底層文件的讀寫,如果客戶端client 程序發(fā)起了讀HDFS 上的文件的命令,那么首先將這些文件分成block,然后NameNode 將告知client 這些block 數(shù)據(jù)是存儲(chǔ)在哪些DataNode 上的,之后,client 將直接和DataNode 交互。
(1)Hadoop on Android 存儲(chǔ)數(shù)據(jù)過程
我們以文件上傳到分布式集群進(jìn)行Hadoop on Android 存儲(chǔ)數(shù)據(jù)的過程進(jìn)行舉例。
NameNode 負(fù)責(zé)管理存儲(chǔ)在Hadoop HDFS 上所有文件的元數(shù)據(jù),它會(huì)確認(rèn)客戶端的請(qǐng)求,并記錄下文件的名字和存儲(chǔ)這個(gè)文件的數(shù)據(jù)節(jié)點(diǎn)(DataNode)集合。它把該信息存儲(chǔ)在內(nèi)存中的文件分配表里。
例如,客戶端發(fā)送一個(gè)請(qǐng)求給NameNode,說它要將“swimmer.txt”文件寫入到HDFS。那么,其執(zhí)行流程如圖4 所示。具體為:
圖4 文件上傳到Hadoop on Android 分布式集群流程圖
步驟1,客戶端發(fā)消息給NameNode,說要將“swimmer.txt”文件寫入。
步驟2,NameNode 發(fā)消息給客戶端,叫客戶端寫到DataNode A、B 和D,并直接聯(lián)系DataNode B。
步驟3,客戶端發(fā)消息給DataNode B,叫它保存一份“swimmer.txt”文件,并且發(fā)送一份副本給DataNode A和DataNode D。
步驟4,DataNode B 發(fā)消息給DataNode A,叫它保存一份“swimmer.txt”文件,并且發(fā)送一份副本給DataNode D。
步驟5,DataNode A 發(fā)消息給DataNode D,叫它保存一份“swimmer.txt”文件。
步驟6,DataNode D 發(fā)確認(rèn)消息給DataNode A。
步驟7,DataNode A 發(fā)確認(rèn)消息給DataNode B。
步驟8,DataNode B 發(fā)確認(rèn)消息給客戶端,表示寫入完成。
這樣,一份“swimmer.txt”文件就保存在了分布式集群A、B、D 三個(gè)數(shù)據(jù)節(jié)點(diǎn)(智能終端)上。
(2)Hadoop on Android 計(jì)算過程
在Hadoop on Android 中,每個(gè)MapReduce 任務(wù)都被初始化為一個(gè)Job,每個(gè)Job 又可以分為兩種階段:map階段和reduce 階段。這兩個(gè)階段分別用兩個(gè)函數(shù)表示,即map 函數(shù)和reduce 函數(shù)。map 函數(shù)接收一個(gè)
2.2.3 無線連接
一般常見的智能終端,在安裝移動(dòng)云計(jì)算中間平臺(tái)和Hadoop 之后,使用穩(wěn)定的無線連接,經(jīng)過本平臺(tái)對(duì)Hadoop 進(jìn)行配置后,即可進(jìn)行Hadoop 之上的各組件的使用。
圖5 Hadoop on Android 處理大數(shù)據(jù)集的過程
比如你所在的辦公室,可以把大家的智能終端集中到一個(gè)集群內(nèi),實(shí)現(xiàn)計(jì)算資源和存儲(chǔ)資源共享。一個(gè)人的手機(jī)無法做到的較大計(jì)算量,通過十幾個(gè)人的手機(jī)就可以組建起集群,然后完成本來不能完成的計(jì)算量。
無線連接又分為WIFI 網(wǎng)絡(luò)與移動(dòng)網(wǎng)絡(luò)(4G/5G/……)兩種集群組建方式;具體實(shí)現(xiàn)過程,在實(shí)施例里詳細(xì)描述。
無線網(wǎng)絡(luò)(含WIFI,4G、5G、……)的組網(wǎng)圖如圖6 所示,連接流程以如下步驟(見圖7 所示)進(jìn)行:
圖6 無線網(wǎng)絡(luò)連接組網(wǎng)圖
圖7 無線網(wǎng)絡(luò)連接流程圖
步驟1,將智能終端移入現(xiàn)有集群無線網(wǎng)絡(luò)。
步驟2,獲取并安裝好移動(dòng)云計(jì)算中間平臺(tái)及Hadoop 平臺(tái)。
步驟3,使用移動(dòng)云計(jì)算中間平臺(tái)配置Hadoop 系統(tǒng)網(wǎng)絡(luò)(具體過程可見圖3)。
在這里,我們?cè)O(shè)置連接方式Connection 參數(shù) 1:WIFI,2:移動(dòng)網(wǎng)絡(luò)。
在本實(shí)施例,Connection 傳入?yún)?shù)2,則移動(dòng)云計(jì)算中間平臺(tái)根據(jù)該移動(dòng)網(wǎng)絡(luò)里面的DHCP 機(jī)制給新加入節(jié)點(diǎn)(智能終端)分配IP 地址;并寫入集群配置文件中去。
步驟4,啟動(dòng)Hadoop 集群組件。
步驟5,進(jìn)行集群內(nèi)數(shù)據(jù)資源遷移以及計(jì)算資源整合(balance)。
在這里,移動(dòng)云計(jì)算中間平臺(tái)會(huì)根據(jù)新節(jié)點(diǎn)(智能終端)的存儲(chǔ)和計(jì)算資源情況,自行進(jìn)行數(shù)據(jù)資源遷移以及計(jì)算資源整合。我們?cè)O(shè)置每個(gè)節(jié)點(diǎn)的存儲(chǔ)資源上限為總存儲(chǔ)資源的80%以及下限為總存儲(chǔ)資源的5%;設(shè)置每個(gè)節(jié)點(diǎn)的CPU 計(jì)算資源上限為CPU 利用率達(dá)到80%以及下限為CPU 利用率達(dá)到5%;其中上限、下限的設(shè)置閾值可以按需調(diào)整。
移動(dòng)云計(jì)算中間平臺(tái)根據(jù)設(shè)置閾值,進(jìn)行如下操作:
當(dāng)該節(jié)點(diǎn)存儲(chǔ)已經(jīng)超出設(shè)定限額上限時(shí)將不接受寫入操作;
當(dāng)計(jì)算超出設(shè)定限額上限時(shí)將不接受計(jì)算任務(wù);
當(dāng)存儲(chǔ)低于設(shè)定限額下限時(shí)將優(yōu)先寫入,直到到達(dá)設(shè)定限額的上限;
當(dāng)計(jì)算低于設(shè)定限額下限時(shí)將優(yōu)先接受計(jì)算任務(wù);直到到達(dá)設(shè)定限額的上限;
其他處于上限和下限之間時(shí),獲取任務(wù)時(shí)進(jìn)行隨機(jī)分配。
對(duì)于移動(dòng)網(wǎng)絡(luò)(Connection=2),考慮到傳輸速率以及流量資費(fèi)的因素,我們?cè)O(shè)置一個(gè)數(shù)據(jù)壓縮參數(shù)Compress參數(shù)1:壓縮,0:不壓縮。
當(dāng)Connection=2 時(shí),Compress 參數(shù)默認(rèn)設(shè)置為1,數(shù)據(jù)傳輸時(shí)進(jìn)行壓縮,以獲得高傳輸速率,降低流量資費(fèi)。
當(dāng)Connection=1 時(shí),Compress 參數(shù)默認(rèn)設(shè)置為0,數(shù)據(jù)傳輸不進(jìn)行壓縮,同時(shí)可減輕CPU 運(yùn)算壓力。
步驟6,調(diào)用本平臺(tái)接口,提交Hadoop 任務(wù)進(jìn)行運(yùn)行。
步驟7,各數(shù)據(jù)節(jié)點(diǎn)完成任務(wù)計(jì)算,并反饋給主節(jié)點(diǎn)。
退出集群步驟:
步驟8,某個(gè)數(shù)據(jù)節(jié)點(diǎn)申請(qǐng)退出集群。
步驟9,主節(jié)點(diǎn)進(jìn)行數(shù)據(jù)資源遷移并進(jìn)行計(jì)算資源整合(balance)。
步驟10,資源整合完成后,數(shù)據(jù)節(jié)點(diǎn)退出集群。
在本實(shí)施例,我們舉個(gè)典型應(yīng)用場景進(jìn)行詳細(xì)描述本平臺(tái)及系統(tǒng)的工作流程。
假設(shè)在一個(gè)房間,我們有5 個(gè)人手持5 臺(tái)性能不一的Android 系統(tǒng)的智能手機(jī),測試使用一款大型游戲,該游戲因計(jì)算量大且產(chǎn)生數(shù)據(jù)多,在一些計(jì)算和存儲(chǔ)性能都比較低的手機(jī),因不符合該游戲運(yùn)行最低要求,運(yùn)行非常卡頓甚至無法運(yùn)行。我們可以使用本文的技術(shù)來解決,使得每臺(tái)手機(jī)都能流暢的運(yùn)行該游戲。
圖8 示例畫出2 臺(tái)設(shè)備即Master 主節(jié)點(diǎn)與一臺(tái)Slave 節(jié)點(diǎn)之間的業(yè)務(wù)流程;Master與其他Slave 節(jié)點(diǎn)之間的業(yè)務(wù)流程與圖8 所示的業(yè)務(wù)流程一樣。
圖8 典型應(yīng)用場景流程圖
步驟1,安裝好移動(dòng)云計(jì)算中間平臺(tái)、Hadoop、游戲應(yīng)用。
步驟2,移動(dòng)云計(jì)算中間平臺(tái)對(duì)Android系統(tǒng)及Hadoop 平臺(tái)進(jìn)行相關(guān)配置并生效(具體過程可見圖3)。
步驟3,各節(jié)點(diǎn)檢測游戲應(yīng)用占用資源情況,并反饋到各節(jié)點(diǎn)的Hadoop 平臺(tái);各Slave 節(jié)點(diǎn)Hadoop 平臺(tái)收到后,反饋到Master 節(jié)點(diǎn)。
步驟4,Master 節(jié)點(diǎn)根據(jù)各節(jié)點(diǎn)存儲(chǔ)和計(jì)算資源情況,自動(dòng)進(jìn)行數(shù)據(jù)資源遷移以及計(jì)算資源整合。
步驟5,游戲應(yīng)用開始使用,Master 節(jié)點(diǎn)收到使用行為和任務(wù)后,為各Slave 節(jié)點(diǎn)分配計(jì)算和存儲(chǔ)任務(wù)。
步驟6,各Slave 節(jié)點(diǎn)向Master 節(jié)點(diǎn)反饋計(jì)算結(jié)果和存儲(chǔ)結(jié)果,Master 節(jié)點(diǎn)進(jìn)行計(jì)算結(jié)果和存儲(chǔ)結(jié)果匯總。
步驟7,Master 節(jié)點(diǎn)反饋游戲應(yīng)用運(yùn)算結(jié)果和存儲(chǔ)結(jié)果。
步驟8,在游戲應(yīng)用的計(jì)算任務(wù)和存儲(chǔ)任務(wù)進(jìn)行過程中,移動(dòng)云計(jì)算中間平臺(tái)進(jìn)行日志的存儲(chǔ),使用FIFO 方式存儲(chǔ)。
步驟9,在游戲應(yīng)用的計(jì)算任務(wù)和存儲(chǔ)任務(wù)進(jìn)行過程中,移動(dòng)云計(jì)算中間平臺(tái)進(jìn)行各節(jié)點(diǎn)的硬件健康監(jiān)控。
步驟10,游戲應(yīng)用結(jié)束,Master 節(jié)點(diǎn)通知各Slave 節(jié)點(diǎn)釋放計(jì)算資源和存儲(chǔ)資源。
步驟11,各Slave 節(jié)點(diǎn)向Master 節(jié)點(diǎn)反饋計(jì)算資源和存儲(chǔ)資源釋放結(jié)果。
通過本文,我們實(shí)現(xiàn)了移動(dòng)云計(jì)算中間平臺(tái),一種基于Android 系統(tǒng)的Hadoop 分布式計(jì)算平臺(tái),該平臺(tái)使得Hadoop 可以在 Android 系統(tǒng)上運(yùn)行;并且清楚地描述了智能終端可以非常方便的組建、加入/移出無線網(wǎng)絡(luò)組建的分布式集群。通過上述兩點(diǎn),實(shí)現(xiàn)了使用更為廉價(jià)且方便更換的智能終端作為平臺(tái),降低了分布式集群的成本。這樣,我們就提供一個(gè)優(yōu)秀的廉價(jià)、易用、便攜的大數(shù)據(jù)計(jì)算和存儲(chǔ)平臺(tái)。使用本平臺(tái)后,能快速、方便且更為廉價(jià)地為企業(yè)或團(tuán)體提供分布式計(jì)算、云計(jì)算服務(wù)。
后續(xù)改進(jìn)思考:
因無線網(wǎng)絡(luò)存在地理位置、覆蓋范圍等弱網(wǎng)絡(luò)影響因素,以及智能終端存在運(yùn)動(dòng)中、通話中、低電量等場景,數(shù)據(jù)傳輸存在不穩(wěn)定性。因此,為了提高通信及數(shù)據(jù)傳輸?shù)姆€(wěn)定性,我們可以改造智能終端,使用有線連接方式,這樣集群的可靠性可以得到保障,數(shù)據(jù)傳輸速度可以得到加強(qiáng)。
使用有線連接方式的集群硬件來源可以為定制的智能終端,也可以使用現(xiàn)有智能終端進(jìn)行有線通信的改造。如對(duì)智能終端數(shù)據(jù)傳輸接口進(jìn)行改造,通過轉(zhuǎn)換數(shù)據(jù)傳輸接口為雙絞線或者光纖線通信,以增強(qiáng)數(shù)據(jù)傳輸?shù)姆€(wěn)定性等。
此外,對(duì)于個(gè)人智能終端加入集群存在的隱私擔(dān)憂,也可以通過在設(shè)備上劃分獨(dú)立存儲(chǔ)區(qū)域、數(shù)據(jù)通信認(rèn)證、個(gè)人數(shù)據(jù)保護(hù)等手段以保證隱私。在此不再行文贅述。