日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Apache Hadoop HDFS数据节点Apache Mesos框架

發布時間:2023/12/3 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Apache Hadoop HDFS数据节点Apache Mesos框架 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

介紹

該項目允許在Mesos上運行HDFS。 您應該熟悉HDFS和Mesos基礎知識:

  • http://mesos.apache.org/documentation/latest/
  • https://hadoop.apache.org/docs/r2.7.2/hdfs_design.html



項目要求:

  • Mesos 0.23.0+
  • JDK 1.7.x
  • Hadoop 1.2.x或2.7.x

流浪漢

項目包括無所事事的環境 ,允許在本地運行Mesos集群。 如果您要使用外部Mesos群集,則可以跳過本節。

1.啟動流浪節點:

# cd hdfs-mesos/vagrant # vagrant up

它創建mesos主節點和從節點。

2.將流浪者節點名稱添加到/etc/hosts

現在,流浪漢中的Mesos應該正在運行。 您可以繼續啟動調度程序。 有關流浪者環境的更多詳細信息,請閱讀vagrant / README.md

運行調度程序

1.下載hdfs-mesos\*.jar或克隆并構建項目:

下載jar:

# mkdir hdfs-mesos # cd hdfs-mesos # wget https://github.com/elodina/hdfs-mesos/releases/download/0.0.1.0/hdfs-mesos-0.0.1.0.jar

或克隆并構建:

# git clone https://github.com/elodina/hdfs-mesos.git # cd hdfs-mesos # ./gradlew jar

2.下載hadoop tarball:

# wget https://archive.apache.org/dist/hadoop/core/hadoop-2.7.2/hadoop-2.7.2.tar.gz

3.啟動調度程序:

# ./hdfs-mesos.sh scheduler --api=http://$scheduler:7000 --master=zk://$master:2181/mesos --user=vagrant 2016-03-18 15:04:48,785 [main] INFO hdfs.Scheduler - Starting Scheduler: api: http://$scheduler:7000 files: jar:./hdfs-mesos-0.0.1.0.jar, hadoop:./hadoop-1.2.1.tar.gz mesos: master:master:5050, user:vagrant, principal:<none>, secret:<none> framework: name:hdfs, role:*, timeout:30d 2016-03-18 15:04:48,916 [main] INFO hdfs.HttpServer - started on port 7000 I0318 15:04:49.008314 19123 sched.cpp:164] Version: 0.25.0 I0318 15:04:49.017160 19155 sched.cpp:262] New master detected at master@192.168.3.5:5050 I0318 15:04:49.019287 19155 sched.cpp:272] No credentials provided. Attempting to register without authentication I0318 15:04:49.029218 19155 sched.cpp:641] Framework registered with 20160310-141004-84125888-5050-10895-0006 2016-03-18 15:04:49,044 [Thread-17] INFO hdfs.Scheduler - [registered] framework:#-0006 master:#326bb pid:master@192.168.3.5:5050 hostname:master 2016-03-18 15:04:49,078 [Thread-18] INFO hdfs.Scheduler - [resourceOffers] slave0#-O761 cpus:1.00; mem:2500.00; disk:35164.00; ports:[5000..32000] master#-O762 cpus:1.00; mem:2500.00; disk:35164.00; ports:[5000..32000] ... 2016-03-18 15:04:49,078 [Thread-18] INFO hdfs.Scheduler - [resourceOffers]

哪里:

  • $scheduler是可從節點訪問的$scheduler程序地址;
  • $master可從調度程序節點訪問的主地址;

調度程序應自行注冊并開始接收資源報價。 如果調度程序未收到報價,則可能需要指定LIBPROCESS_IP:

# export LIBPROCESS_IP=$scheduler_ip

現在調度程序應該正在運行,您可以繼續啟動HDFS節點。

運行HDFS群集

Project提供了CLI和REST API,用于管理HDFS節點。 我們將首先關注CLI。

1.添加名稱節點和數據節點:

# ./hdfs-mesos.sh node add nn --type=namenode node added:id: nntype: namenodestate: idleresources: cpus:0.5, mem:512# ./hdfs-mesos.sh node add dn0 --type=datanode node added:id: dn0type: datanodestate: idleresources: cpus:0.5, mem:512

2.啟動節點:

# ./hdfs-mesos.sh node start \* nodes started:id: nntype: namenodestate: runningresources: cpus:0.5, mem:512reservation: cpus:0.5, mem:512, ports:http=5000,ipc=5001runtime:task: 383aaab9-982b-400e-aa35-463e66cdcb3bexecutor: 19065e07-a006-49a4-8f2b-636d8b1f2ad6slave: 241be3a2-39bc-417c-a967-82b4018a0762-S0 (master)id: dn0type: datanodestate: runningresources: cpus:0.5, mem:512reservation: cpus:0.5, mem:512, ports:http=5002,ipc=5003,data=5004runtime:task: 37f3bcbb-10a5-4323-96d2-aef8846aa281executor: 088463c9-5f2e-4d1d-8195-56427168b86fslave: 241be3a2-39bc-417c-a967-82b4018a0762-S0 (master)

節點已啟動并正在運行。

注意:開始可能需要一些時間。 您可以通過Mesos UI查看進度。

3.執行一些FS操作:

# hadoop fs -mkdir hdfs://master:5001/dir # hadoop fs -ls hdfs://master:5001/ Found 1 items drwxr-xr-x - vagrant supergroup 0 2016-03-17 12:46 /dir

注意:在fs url中使用了namenode主機和ipc端口。

使用CLI

Project提供具有以下結構的CLI:

# ./hdfs-mesos.sh help Usage: <cmd> ...Commands:help [cmd [cmd]] - print general or command-specific helpscheduler - start schedulernode - node management

為每個命令和子命令提供了幫助:

# ./hdfs-mesos.sh help node Node management commands Usage: node <cmd>Commands:list - list nodesadd - add nodeupdate - update nodestart - start nodestop - stop noderemove - remove nodeRun `help node <cmd>` to see details of specific command# ./hdfs-mesos.sh help node add Add node Usage: node add <ids> [options]Option (* = required) Description --------------------- ----------- --core-site-opts Hadoop core-site.xml options. --cpus <Double> CPU amount (0.5, 1, 2). --executor-jvm-opts Executor JVM options. --hadoop-jvm-opts Hadoop JVM options. --hdfs-site-opts Hadoop hdfs-site.xml options. --mem <Long> Mem amount in Mb. * --type node type (name_node, data_node).Generic Options Option Description ------ ----------- --api REST api url (same as --api option forscheduler).

所有與節點相關的命令都支持使用node-id-expressions進行批量操作。 例子:

# ./hdfs-mesos.sh node add dn0..1 --type=datanode nodes added:id: dn0type: datanode...id: dn1type: datanode...# ./hdfs-mesos.sh node update dn* --cpus=1 nodes updated:id: dn0...resources: cpus:1.0, mem:512id: dn1...resources: cpus:1.0, mem:512# ./hdfs-mesos.sh node start dn0,dn1 nodes started:id: dn0...id: dn0...

ID表達式示例:

  • nn –匹配ID為nn的節點
  • * –匹配任何節點(應在外殼中使用斜線轉義)
  • dn* –匹配ID以dn開頭的節點
  • dn0..2 –匹配節點dn0,dn1,dn2

使用REST

計劃程序使用嵌入式HTTP服務器。 服務器具有兩個功能:

  • 分發Hadoop,JRE和執行程序的二進制文件;
  • 提供REST API,由CLI調用;

大多數CLI命令都映射到REST API調用。 例子:

CLI命令 REST電話
node add nn --type=namenode --cpus=2 /api/node/add?node=nn&type=namenode&cpus=2
node start dn* --timeout=3m- /api/node/start?node=dn*&timeout=3m
node remove dn5 /api/node/remove?node=dn5

REST調用接受純HTTP參數,并返回JSON響應。 例子:

# curl http://$scheduler:7000/api/node/list [{"id": "nn","type": "namenode",...},{"id": "dn0","type": "datanode",...} ]# curl http://$scheduler:7000/api/node/start?node=nn,dn0 {"status": "started","nodes": [{"id": "nn","state": "running",...},{"id": "dn0","state": "running",...}] }

CLI參數將一對一映射到REST參數。 CLI參數使用虛線樣式,而REST參數使用駝峰式。 映射示例:

CLI參數 REST參數
<id> (節點添加|更新| ...) node
timeout (節點開始|停止) timeout
core-site-opts (節點添加|更新) coreSiteOpts
executor-jvm-opts (節點添加|更新) executorJvmOpts

在某些情況下,REST API調用可能返回錯誤。 錯誤標記為狀態代碼,而不是200。錯誤響應以JSON格式返回。

例:

# curl -v http://192.168.3.1:7000/api/node/start?node=unknown ... HTTP/1.1 400 node not found ... {"error":"node not found","code":400}

有關REST API的更多詳細信息,請參閱源。

翻譯自: https://www.javacodegeeks.com/2016/06/apache-hadoop-hdfs-data-node-apache-mesos-framework.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Apache Hadoop HDFS数据节点Apache Mesos框架的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。