1. 程式人生 > >超詳細,阿里雲安裝hortonwork sandbox HDP

超詳細,阿里雲安裝hortonwork sandbox HDP

在windows下用瀏覽器開啟hortonwork中文官網,註冊後得到下載連線. 我使用的版本是 HDP 2.6

購買阿里雲伺服器,本人選擇配置如下:

  • 伺服器2核16GB,按時計費
  • 20GB系統盤
  • 120GB資料盤
  • 頻寬10MBPS,流量按量計費 0.8元/GB

軟體資訊:

  • docker 1.12.6
  • OS centOS 7.3
  • HDP 2.6

下面介紹詳細步驟:官網的英文安裝步驟請點這裡檢視

  1. 在阿里雲選擇配置,支付完成後,使用阿里雲的網頁版終端連線例項(不用每次輸入ip和root密碼,比較方便)

  2. 在阿里雲控制檯——例項,掛載磁碟(必須是同一個區域,比如磁碟是華東2可用區B的,例項必須也是華東2可用區B)

  3. 先安裝docker
    yum install docker

  4. 啟動docker服務
    service docker start

  5. 檢視docekr當前配置資訊
    docker info
    注意到Total Size=107 GB(docker允許的總大小,不是實際佔用磁碟大小)
    Base Device Size = 10 GB,而HDP sandbox解壓後14GB,所以會報錯。需要修改Base Device Size為16GB,具體方法參考文章最後的補充部分

  6. 下載HDP sandbox Docker版本,官網有三個版本,一定要選Docker版本,最適合linux上的安裝。虛擬機器版本其實也是Docker版本再封裝了一層OS。
    wget -c 《在windows系統中獲得的sandbox HDP官網下載連結》


    請耐心等待,我下載用了一上午。
    安裝包儲存目錄,一定要確保執行wget命令的路徑有10GB的可用空間

  7. 設定docker預設路徑為120GB的資料盤,參考文獻1-3中有詳細步驟

  8. docker load -i HDP-xxxx-xxx.tar.gz

  9. 官網下載docker版本的sandbox啟動sh指令碼
    wget命令下載,2.6 HDP的sh指令碼連結如下
    wget https://raw.githubusercontent.com/hortonworks/data-tutorials/master/tutorials/hdp/sandbox-deployment-and-install-guide/assets/start_sandbox-hdp.sh


    chmod 777 xxx.sh
    ./xxx.sh

  10. 修改阿里雲主機的ip埠限制.
    例項——管理——本機安全組
    新增安全策略:
    TCP
    8888/8888
    0.0.0.0/0

到此,HDP sandbox安裝完成

————————————–分割線,以下是補充部分—————————————
原標題:“修改docker容器的Base Device Size”
釋出時間:August 18, 2016

注意:文章中的/etc/systemd/system/docker.service在阿里雲的centOS 7.3 系統上是 /lib/systemd/system/docker.service

老高的容器在執行一段時間的時候會突然無法寫入資料,報錯

docker no space left on device
Google之,發現原來是Base Device Size的問題,其預設值是10G,而容器經過一段時間的執行寫入檔案量早已超過10G,就造成無法寫入資料的問題了。

下面給出解決方案:

系統為Centos,其他OP應該大同小異。

首先檢視docker的服務配置檔案

/etc/systemd/system/docker.service
cat /etc/systemd/system/docker.service

[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.com
After=network.target
Wants=docker-storage-setup.service

[Service]
Type=notify
EnvironmentFile=-/etc/sysconfig/docker
EnvironmentFile=-/etc/sysconfig/docker-storage
EnvironmentFile=-/etc/sysconfig/docker-network
Environment=GOTRACEBACK=crash
ExecStart=/usr/bin/docker daemon --registry-mirror=https://hg3r3yxx.mirror.aliyuncs.com $OPTIONS \
          $DOCKER_STORAGE_OPTIONS \
          $DOCKER_NETWORK_OPTIONS \
          $ADD_REGISTRY \
          $BLOCK_REGISTRY \
          $INSECURE_REGISTRY
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity
MountFlags=slave
TimeoutStartSec=1min
Restart=on-failure

[Install]
WantedBy=multi-user.target
我們只關心其中的ExecStart一節,於是發現守護程序啟動命令中已經預留$DOCKER_STORAGE_OPTIONS變數,並且應該存在於這個檔案中 /etc/sysconfig/docker-storage。這就好辦了,直接把老高想改成的40G寫入到此檔案中即可!

sudo echo "DOCKER_STORAGE_OPTIONS=--storage-opt dm.basesize=40G" > /etc/sysconfig/docker-storage

dd命令
if=file #輸入檔名,預設為標準輸入。
of=file #輸出檔名,預設為標準輸出。
/dev/zero: 在類UNIX 作業系統中, /dev/zero 是一個特殊的檔案,當你讀它的時候,它會提供無限的空字元(NULL, ASCII NUL, 0x00)。
其中的一個典型用法是用它提供的字元流來覆蓋資訊,另一個常見用法是產生一個特定大小的空白檔案。

dd if=/dev/hdx of=/dev/hdy #將本地的/dev/hdx整盤備份到/dev/hdy
dd if=/dev/hdx of=/path/to/image #將/dev/hdx全盤資料備份到指定路徑的image檔案

建議修改service啟動配置,修改執行時的根目錄,centOS 7 版本的配置在 /lib/systemd/system/docker.service
啟動項全部命令可以執行 dockerd-current –help 檢視
ExecStart=/usr/bin/docker daemon -g /there_is_space_here