mesos 學習筆記1 -- mesos安裝和配置


參考資料:

官方文檔:http://mesos.apache.org/documentation 
中文翻譯:http://mesos.mydoc.io/ 
GitHub:https://github.com/apache/mesos/tree/master 
董的博客:http://dongxicheng.org/category/apache-mesos/

安裝

下載mesos

參考:http://mesos.apache.org/documentation/latest/getting-started/ 
下載最新版本:mesos-1.0.0,版本要求:

- 64位linux操作系統
- 內核版本大於3.10 版本
- gcc版本大於4.8.1

安裝依賴

編譯

cd mesos
mkdir build
cd build
../configure
make(可以使用make -j N加快編譯速度,不然編譯時間非常長)
make check
make install

配置

默認make install會安裝到/user/local/sbin底下,配置文件在/usr/local/etc底下,在這兩個目錄下,會有一些文件跟master/agent相關

mesos-master

  • mesos-start-masters.sh:用於SSH登錄到各個master並且進行start操作,如果單機執行,只需注釋跟SSH相關操作(直接通過daemon mesos-master啟動)
  • mesos-stop-master.sh:用於SSH登錄到各個master,並且進行stop操作,如果單機執行,只需注釋SSH相關操作(直接執行killall mesos-master)
  • mesos-daemon.sh:用於啟動mesos daemon,默認會執行一些動作(設置ulimit -n以及啟動對應的環境變量設置/usr/local/etc/PROCNAME-env.sh)
  • mesos-agent實際的二進制文件,可以通過--help來查看對應參數,參數參考:http://mesos.apache.org/documentation/latest/configuration/
  • /usr/local/etc/mesos/mesos-master-env.sh:設置mesos環境變量,變量命名規則為MESOS_參數,其中{參數}為mesos-master --help中的參數,設置如下:

    export MESOS_log_dir=/var/log/mesos/master   # 設置日志目錄
    export MESOS_work_dir=/var/run/mesos/master  # 設置work目錄,會存放一些運行信息
    export MESOS_ip=127.0.0.1                    # 設置IP
    # export MESOS_port=5050                     # 設置PORT,默認是5050
    export MESOS_CLUSTER=mesos_test_cluster1     # 設置集群名稱
    export MESOS_hostname=127.0.0.1              # 設置master hostname
    export MESOS_logging_level=INFO              # 設置日志級別
    export MESOS_offer_timeout=60secs            # 設置offer的超時時間
    # export MESOS_agent_ping_timeout=15         # 設置ping 超時時間,默認15s
    # export MESOS_allocation_interval=1         # 設置資源 allocation間隔,默認1s
    

注意:offer_timeout非常關鍵,默認是不超時,如果一個offer發給scheduler后scheduler不做任何處理(acceptOffers或者declineOffer),那么這個offer一直會被這個scheduler給占用了,直到scheduler自己結束進程或者退出注冊。所以offer_timeout一般要設置,用於防止由於scheduler自身的問題(偶發性hang住,或者程序問題沒有處理offer)導致資源無法利用

mesos-agent

  • mesos-start-agent.sh:用於SSH登錄到各個agent並且進行start操作,如果單機執行,只需注釋跟SSH相關操作(直接通過daemon mesos-agent啟動)
  • mesos-stop-agent.sh:用於SSH登錄到各個agent,並且進行stop操作,如果單機執行,只需注釋SSH相關操作(直接執行killall mesos-agent)
  • mesos-daemon.sh:用於啟動mesos daemon,默認會執行一些動作(設置ulimit -n以及啟動對應的環境變量設置/usr/local/etc/PROCNAME-env.sh)
  • mesos-agent實際的二進制文件,可以通過--help來查看對應參數,參數參考:http://mesos.apache.org/documentation/latest/configuration/
  • /usr/local/etc/mesos/mesos-agent-env.sh:設置mesos-agent環境變量,變量命名規則為MESOS_參數,其中{參數}為mesos-agent --help中的參數,設置如下:

    # The mesos master URL to contact. Should be host:port for
    # non-ZooKeeper based masters, otherwise a zk:// or file:// URL.
    export MESOS_master=172.24.133.164:5050
    
    # Other options you're likely to want to set:
    export MESOS_ip=172.24.133.164
    export MESOS_port=5051
    export MESOS_hostname=mesos_cl_agent164
    export MESOS_log_dir=/var/log/mesos/agent
    export MESOS_work_dir=/var/run/mesos/agent
    export MESOS_logging_level=INFO
    export MESOS_isolation=cgroups

啟動

mesos-master

  • 執行sh mesos-start-masters.sh
  • ps aux | grep mesos-master 能看到master進程
  • netstat -nltp | grep mesos,能看到master已經綁定5050端口
  • 查看http://127.0.0.1:5050,可以看到當前mesos集群的一些狀態
 

mesos-agent

  • 執行sh mesos-start-agents.sh
  • ps aux | grep mesos-agent 能看到agent進程
  • netstat -nltp | grep mesos,能看到agent已經綁定5051端口
  • 查看http://127.0.0.1:5050,可以看到當前mesos集群的一些狀態,同時看到對應的agent
 

測試Framework

  1. 執行mesos自帶的測試framework(測試framework會自動任務執行結束后自動退出)

    # Run C++ framework (Exits after successfully running some tasks.).
    $ ./src/test-framework --master=127.0.0.1:5050
    
    # Run Java framework (Exits after successfully running some tasks.).
    $ ./src/examples/java/test-framework 127.0.0.1:5050
    
    # Run Python framework (Exits after successfully running some tasks.).
    $ ./src/examples/python/test-framework 127.0.0.1:5050
    
  2. 查看http://127.0.0.1:5050,可以看到framework信息和framework執行的task信息

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM