<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      C#碼農的大數據之路 - 使用Ambari自動化安裝HDP2.6(基于Ubuntu16.04)并運行.NET Core編寫的MR作業

      準備主機

      準備3臺主機,名稱作用如下:

      昵稱 Fully Qualified Domain Name IP 作用
      Ubuntu-Parrot head1.parrot 192.168.9.126 Ambari控制中心,頭結點(輔助)
      Ubuntu-Laiothrix head0.parrot 192.168.9.127 頭節點(主)
      Ubuntu-Siskin data0.parrot 192.168.9.128 數據節點

      使用hostname <fully.qualified.domain.name>修改主機名,等價于編輯/etc/hostname文件(前者臨時,后者永久)
      并使用hostname -f獲取FQDN,那驗證上面的修改是否成功

      對每一臺主機還要進行如下設置:

      • 配置NTP,sudo apt-get install ntp并設置服務自動啟動sudo systemctl enable ntp
      • 關閉防火墻:sudo ufw disable
      • 為所有用戶指定umask:sudo echo umask 0022 >> /etc/profile (這樣所有新創建的文件都具有755權限)
      • 安裝Python2.7, sudo apt-get install python,雖然Ubuntu16.04默認集成了Python3.5但那不適用于Ambari

      樓主使用hystar作為集群中所有主機的用戶名,復制文中命令時,請將用戶名改為您電腦的用戶名

      配置網絡

      配置HDP集群原則上要求所有主機可以FQDN(Fully Qualified Domain Name)相互找到對方,包括從IP查找FQDN以及由FQDN查找IP,對于商用的集群這個需要配置集群內DNS來完成。對于測試目的的集群,可以將如下內容添加到每臺主機的/etc/hosts來模擬實現:

      192.168.9.126 head1.parrot
      192.168.9.127 head0.parrot
      192.168.9.128 data0.parrot
      

      上面的內容是按照文初的主機列表編輯的。如果園友的環境不一樣,可以按需編輯。格式如:1.2.3.4 <fully.qualified.domain.name>
      配置完后,可以相互ping一下FQDN看看是否可以正常解析。

      注意,要保留127.0.0.1 localhost這個配置

      配置無密碼訪問

      這一步要設置安裝Ambari的機子與集群其它機器之間的無密碼SSH訪問
      原則上HDP集群要求SSH訪問使用root賬戶,但是Ubuntu系統默認不啟用root賬戶。我們可以將我們的普通賬戶設為無需密碼使用sudo來代替使用root賬戶。
      配置如密碼訪問的方式到處可見,這里簡單的列出幾條命令:
      在Ambari主機上依次執行如下命令:

      ssh-keygen
      cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
      chmod 600 ~/.ssh/authorized_keys
      ssh hystar@head0.parrot 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
      ssh hystar@data0.parrot 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
      ssh hystar@head0.parrot 'chmod 600 .ssh/authorized_keys'
      ssh hystar@data0.parrot 'chmod 600 .ssh/authorized_keys'
      

      執行這些命令時,連接遠程主機是需要輸入密碼的,執行之后可以再嘗試連接遠程主機ssh hystar@head0如果不需要輸入密碼說明配置成功。

      由于我們后續需要在Ambari Server主機上安裝Ambari Agent,所以我們對Ambari Server所在的主機本身對自己也配置了無密碼SSH訪問。

      離線安裝準備

      為了可以離線安裝,我們下載Ambari和HDP(以及HDP-Utils)的"tarball"包,下載地址參見此文檔,下載后我們得到如下三個文件:

      • ambari-2.5.0.3-ubuntu16.tar.gz
      • HDP-2.6.0.3-ubuntu16-deb.tar.gz
      • HDP-UTILS-1.1.0.21-ubuntu16.tar.gz

      下載完成后建議驗證下MD5確保文件未損壞

      然后我們需要配置一臺Web服務器作為apt-get的源,用來提供安裝所需要的deb包。
      由于樓主是在本地虛機安裝HDP,本打算使用IIS作為Web服務,但IIS對于提供普通的文件有個麻煩的地方,就是如果擴展名沒有注冊,會由于MINE類型未知而報403錯誤。
      接著為了方便,用IIS集成的FTP,雖然倒是成功了,但是速度極慢,StackOverflow上網友說的原因是每次FTP訪問身份驗證消耗了太多的時間。
      然后想到了WSL,這個應該是最方便的途徑。使用sudo apt-get install nginx給BashForWindows安裝Nginx。注意需要停掉Windows中的W3SVC服務WSL中的Nginx才能啟動成功。而且這個WSL中的Nginx需要每次進入bash后使用service nginx start啟動。
      然后把ambari-2.5.0.3-ubuntu16.tar.gz解壓到本地磁盤,然后使用ln -s創建一個軟連接掛到Nginx默認發布目錄:

      sudo ln -s /mnt/d/HDP/ambari-2.5.0.3-ubuntu16/ambari /usr/share/nginx/html/ambari

      這樣http://localhost/ambari可以發布包文件。

      在Windows防火墻中手動添加80端口的入站規則。只是啟用自帶的萬維網服務這個預定義的規則是不夠的。

      接著,在之前下載tarball的頁面下載兩個用于apt的list文件:

      • ambari.list
      • hdp.list

      修改其中的地址為我們自己搭建的服務器的地址,注意把目錄層級弄對就可以了。
      將ambari.list中原來的地址改為(IP地址為Windows系統的IP):
      http://192.168.9.222/ambari/ubuntu16/
      將修改后的ambari.list文件添加待安裝Ambari Server的主機的/etc/apt/sources.list.d下。

      如果是在線安裝,無需修改ambari.list內容,直接將其添加到/etc/apt/sources.list.d下即可。

      按照類似的方法,使用如下兩條命令配置HDP和HDP Utils包的發布

      sudo ln -s /mnt/d/HDP/HDP-2.6.0.3-ubuntu16-deb/HDP /usr/share/nginx/html/hdp
      sudo ln -s /mnt/d/HDP/HDP-UTILS-1.1.0.21-ubuntu16/HDP-UTILS-1.1.0.21/repos /usr/share/nginx/html/hdputils
      

      這樣HDP和HDP Utils包源分別位于http://192.168.9.222/hdp/ubuntu16http://192.168.9.222/hdputils/ubuntu16

      安裝Ambari

      保證準備工作進行正確。首先執行下面命令導入key:

      sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com B9733A7A07513CAD
      

      然后執行更新:

      sudo apt-get update
      

      后續我們需要在所有主機上由此Ambari源安裝Ambari Agent,所以我們需要在所有主機上執行這兩條命令,以便Ambari Agent可以順利安裝。
      sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com B9733A7A07513CAD
      sudo apt-get update

      使用下面的命令檢查update是否成功,即包信息是否已經被緩存。

      apt-cache showpkg ambari-server
      apt-cache showpkg ambari-agent
      apt-cache showpkg ambari-metrics-assembly
      

      如果一切正常,就可以開始安裝Ambari了。

      sudo apt-get install ambari-server
      

      Ambari所依賴的PostgreSQL將一并被安裝。

      配置Ambari

      執行sudo ambari-server setup配置Ambari。
      遇到Customize user account for ambari-server daemon選擇n,使Ambari在root下執行,當然也可以選擇其它用戶。
      然后輸入數字,選擇要安裝的JDK版本并等待下載安裝完成。
      Enter advanced database configuration選擇n來使用內置數據庫。
      如無意外,安裝會成功完成。

      啟動Ambari

      使用如下命令,控制Ambari的啟停

      sudo ambari-server start
      sudo ambari-server status
      sudo ambari-server stop
      

      創建集群

      Ambari啟動后可以訪問http://head1.parrot:8080登錄到Ambari,默認用戶名和密碼為admin/admin。

      登錄Ambari后點擊Launch Install Wizard按鈕,進入Ambari集群安裝向導。
      安裝Ambari集群步驟如下:

      1. 給集群命名,名稱不能包含特殊字符
      2. 選擇要安裝的版本。由于我們選擇離線安裝,所以選擇Use Local Repository并把不需要的系統配置移除,并在需要的系統配置中填入包源地址。對于之前的配置,HDP與HDP Utils的地址分別為:
      http://192.168.9.222/hdp/ubuntu16
      http://192.168.9.222/hdputils/ubuntu16
      
      1. 第三步是安裝選項,目標主機的FQDN列表如下:
      head1.parrot
      head0.parrot
      data0.parrot
      

      然后在Ambari Server主機上執行cat ~/.ssh/id_rsa將私鑰的文本粘貼到對應的文本框中,并在ssh用戶名中填入我們的遠程連接所用的用戶名
      點擊Register and Confirm,Ambari開始在所選的主機上安裝Ambari Agent。

      1. 進入這一步后,將自動開始在集群的機子上安裝Ambari Agent。等Progess停止走動時,Status一列將顯示執行結果。Success表示成功完成。如果不幸遇到失敗可以點擊連接查看日志找到失敗原因。
        在一切成功的情況下也有可能會出現一些警告,點擊鏈接Click here to see the warnings,里面會告訴你怎么修復警告,如圖。

      按照說明解決警告后,可以點擊Return Checks重新檢查。待檢查無誤后進入下一步

      博主并不是在Ambari Server或集群中任何一臺機子上登錄的Ambari控制臺,它們都是無界面的Linux。樓主使用Windows上的Firefox登錄Ambari控制臺。
      第一次嘗試時,樓主使用http://192.168.9.126:8080訪問,到這一步時始終無法正常安裝Ambari Agent。報錯類似Registration failed. Unable to register with the server原因就是主機連不上Ambari Server。對于這個問題十分不解,之前所有主機的/etc/hosts都配置了啊。后來一番查找無果后,考慮是不是和訪問Ambari控制臺的機子的有關,遂把上面的hosts記錄也加到Windows一份。同時為了保險,把Windows的hosts記錄也加到HDP集群中每臺主機的/etc/hosts(這個可能沒有必要)。然后使用http://head1.parrot:8080訪問Ambari控制臺,重試上面的安裝步驟,一切順利完成。

      1. 這一步選擇要在集群中安裝的組件
      2. 接著是選擇所選服務Master的安裝位置。按照之前的配置,原則上它們都應該安裝在head0.parrot結點。
        從下拉列表選擇服務要部署的host位置,點擊服務后面的“加號”可以增加服務部署的機子。而“減號”用來減少部署的機子。
        把SNameNode和NameNode放在不同的host上實現高可用,最終樓主的選擇如下:

      YARN的ResouceManager的HA需要在安裝完成后配置,具體實現見HortonWorks官網文檔

      1. 然后選擇所選服務Slave及Client的安裝位置。按照之前的配置,Slave應該安裝在data0.parrot結點。
        另外,我將Client安裝在head1.parrot

      這一步host后面的星號表示這臺host已經安裝了Master,將鼠標移到星號上可以看到該host已安裝的Master。

      1. 這一步將對每個服務的配置項進行設置,如數據存儲位置,密碼等。所有標簽被標記為紅色的都是必須輸入的項。
        設置完成后點擊Next,進行下一步之前會檢查所輸入的設置項并給出一些建議,修改后重試,或者直接點擊Proceed Anyway忽略警告繼續安裝。

      一般來說標記為紅色必填的都是需要輸入密碼的配置項。對于非生產的測試環境,可以把所有密碼統一設置方便使用。

      1. 這一步匯總一個檢查清單,列出了即將進行的部署的詳情。這是部署前最后修改設置的最后機會。
        點擊Deploy開始部署。下面就是耐心等待進度條完成。

      2. Ambari Server開始在3臺host上安裝服務并在安裝完成后嘗試啟動。(如果遇到啟動不成功,可以后面調整配置重試啟動,如果是安裝不成功就需要清理文件重試安裝了,后者比較麻煩)

      提示

      1. 樓主按照上面的方法安裝完成后,Hive啟動不了(組件中的HiveServer2無法啟動)。日志顯示是MySQL無法連接。樓主選擇Hive使用集成的MySQL作為MetaStore,兩者安裝在同一臺主機上,按理應該沒有問題。但Ambari Server和它們不在一臺主機。樓主想了半天,只可能是這個原因,于是找到MySQL的配置文件/etc/mysql/mysql.conf.d/mysqld.cnf將其中bind-address=127.0.0.1注釋掉,自此HiveServer2可以正常啟動。
      2. 啟動時,最好先啟動ZooKeeper。在ZooKeeper不啟動的情況下,ResourceManager等無法啟動。
      3. 默認配置下,主機重啟后,所有服務都是處于停止狀態(Ambari Server默認可以自行啟動)。在Admin選項卡Service Auto Start菜單中可以配置哪些服務自動啟動。

      運行.NET Core編寫的MR Job

      首先準備好用.NET Core編寫的Map和Reduce程序,源碼見此,請自行下載編譯。
      解決方案中的NetCoreMapperNetCoreReducer分別對應Map和Reduce程序,使用publish.bat生成項目得到輸出,最終兩個項目的輸出文件有如下這些:

      然后準備輸入文件davinci.txt(這個測試數據是HDInsight官方例子中的測試數據,就是一篇英文文章,可以自己隨意制作一個)與之前生成的.NETCore程序,均拷貝到head0.parrot主機中

      為了方便WSL訪問集群中的主機,首先配置WSL的hosts,目前Windows10中的WSL基于Ubuntu所以hosts也位于/etc/hosts。編輯這個文件加入以下內容:

      192.168.9.126 head1.parrot
      192.168.9.127 head0.parrot
      192.168.9.128 data0.parrot
      

      接著配置下WSL到head0結點和data0結點的無密碼訪問

      ssh-keygen
      ssh user@head0.parrot 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
      ssh user@head0.parrot 'chmod 600 .ssh/authorized_keys'
      ssh user@data0.parrot 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
      ssh user@data0.parrot 'chmod 600 .ssh/authorized_keys'
      

      接著將輸入數據和所有的.NET Core程序文件拷貝到集群中(head0結點的主機上)

      scp davinci.txt hystar@head0.parrot:/home/hystar
      ssh hystar@head0.parrot 'mkdir coreapp'
      scp publish/* hystar@head0.parrot:/home/hystar/coreapp
      

      然后將輸入數據拷貝到HDFS中(程序文件不需要):

      useradd -g hdfs hystar
      hadoop fs -mkdir -p /user/hystar
      hadoop fs -put /home/hystar/davinci.txt /example/data/gutenberg/davinci.txt
      

      然后就是準備Hadoop Streaming執行的腳本
      首先找到Hadoop Streaming的jar包所在的位置。SSH到Hadoop的頭結點所在主機head0.parrot,并執行下面命令

      find / -name "hadoop-streaming*" 2>/dev/null 
      

      按照之前所給出的HDP安裝的文章,樓主的Hadoop安裝于/usr/hdp/2.6.0.3-8/hadoop-mapreduce/hadoop-streaming-2.7.3.2.6.0.3-8.jar
      接著是腳本內容:

      hadoop jar  /usr/hdp/2.6.0.3-8/hadoop-mapreduce/hadoop-streaming-2.7.3.2.6.0.3-8.jar \ 
      -files "/home/hystar/coreapp" \
      -mapper "dotnet coreapp/NetCoreMapper.dll" \
      -reducer  "dotnet coreapp/NetCoreReducer.dll" \
      -input /example/data/gutenberg/davinci.txt \
      -output /example/data/StreamingOutput/wc.txt
      

      注意files選項直接給出.NETCore App所在的文件夾(主機目錄,而非HDFS目錄),而不用逐個指定文件。

      mapper及reducer選項中的coreapp/這個路徑也不能省。

      最后提交任務前,還需要在干活的結點(data0.parrot)安裝.NET Core。同樣在WSL中ssh到data0.parrot安裝即可。
      安裝前注意刪除舊版,詳細文檔見此

      一切準備妥當,執行腳本就可以提交并運行基于Hadoop Streaming的任務。一些順利的話,可以在/example/data/StreamingOutput/wc.txt/part-0001中看到結果。

      附錄

      Ambari相關
      http://192.168.9.126:8080/api/v1/hosts 查看Ambari Server管理的主機,即安裝了Ambari Agent的主機。

      posted @ 2017-05-27 15:59  hystar  閱讀(5628)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 久青草视频在线免费观看| 精品日本乱一区二区三区| 99亚洲男女激情在线观看| 国产办公室秘书无码精品99| 日韩秘 无码一区二区三区| 国产熟女肥臀精品国产馆乱| 性色欲情网站iwww| 亚洲日韩AV秘 无码一区二区| 激情综合网五月激情五月| 东京热一精品无码av| 人妻少妇精品系列一区二区| 亚洲av激情一区二区三区| 亚洲精品日韩中文字幕| 精品久久久久久中文字幕202| 精品人妻日韩中文字幕| 精品一区二区三区东京热| 日本伊人色综合网| 国产精品v片在线观看不卡| 国产午夜伦鲁鲁| 精品无码久久久久久久久久| 亚洲高清WWW色好看美女| 华池县| 日韩精品中文字幕国产一| 好深好湿好硬顶到了好爽| 特克斯县| 国产精品无码免费播放| 好紧好湿好黄的视频| 国产精品入口中文字幕| 一区二区三区AV波多野结衣| 国产精品18久久久久久麻辣| 日韩伦理片| 国产精品一区二区人人爽| 又黄又爽又色的少妇毛片| 色婷婷日日躁夜夜躁| 亚洲精品日韩中文字幕| 国产仑乱无码内谢| 野花香视频在线观看免费高清版| 中文字幕在线看视频一区二区三区| 国产精品免费AⅤ片在线观看 | 国产精品一区二区麻豆蜜桃| 婷婷四虎东京热无码群交双飞视频|