首页 文章 精选 留言 我的

精选列表

搜索[一键部署],共10000篇文章
优秀的个人博客,低调大师

CentOS 7安装和部署Docker

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010046908/article/details/79553227 Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。通过 uname -r 命令查看你当前的内核版本 uname -r centos版本 3.10.0-514.el7.x86_64 1、初步安装和启动docker yum update -y yum -y install docker systemctl start docker 2、设置镜像 vi /etc/docker/daemon.json { "registry-mirrors": ["https://aj2rgad5.mirror.aliyuncs.com"] } 3、开放管理端口映射 vi /lib/systemd/system/docker.service 将第11行的ExecStart=/usr/bin/dockerd,替换为: ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock -H tcp://0.0.0.0:7654 2375是管理端口,7654是备用端口 在~/.bashrc中写入docker管理端口 export DOCKER_HOST=tcp://0.0.0.0:2375 source ~/.bashrc 4、重启docker systemctl daemon-reload systemctl restart docker.service 5、测试docker是否正常安装和运行 docker run hello-world 6、查看结果 Hello from Docker! This message shows that your installation appears to be working correctly.

优秀的个人博客,低调大师

HttpRunner环境部署-踩坑篇

1、git clonehttps://github.com/HttpRunner/HttpRunner.git到本地 2、查看目前正在使用的Python版本:pyenv versions,默认只有system 3、查看可以安装的Python版本 pyenvinstall--list 4、官方建议Python3.6版本,so,安装需要的Python版本 pyenv install 3.6.2 5、切换Python版本,将Python 3.6.2置为默认 pyenv global 3.6.2, *号代表默认版本 特别建议: 优先级关系:shell——local——global 6、启动服务 需要Flask-Script支持 iwm@bogon  ~  pip install Flask-Script zsh: command not found: pip 7、提示找不到pip命令 iwm@bogon  /usr/local/Cellar  sudo easy_install pip 8、安装Flask-Script失败,error: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/itsdangerous.py' iwm@bogon  /usr/local/Cellar  pip install Flask-Script Collecting Flask-Script Downloading Flask-Script-2.0.6.tar.gz (43kB) 100% |████████████████████████████████| 51kB 103kB/s Collecting Flask (from Flask-Script) Downloading Flask-0.12.2-py2.py3-none-any.whl (83kB) 100% |████████████████████████████████| 92kB 110kB/s Collecting itsdangerous>=0.21 (from Flask->Flask-Script) Downloading itsdangerous-0.24.tar.gz (46kB) 100% |████████████████████████████████| 51kB 148kB/s Collecting Werkzeug>=0.7 (from Flask->Flask-Script) Downloading Werkzeug-0.14.1-py2.py3-none-any.whl (322kB) 100% |████████████████████████████████| 327kB 36kB/s Collecting Jinja2>=2.4 (from Flask->Flask-Script) Downloading Jinja2-2.10-py2.py3-none-any.whl (126kB) 100% |████████████████████████████████| 133kB 44kB/s Collecting click>=2.0 (from Flask->Flask-Script) Downloading click-6.7-py2.py3-none-any.whl (71kB) 100% |████████████████████████████████| 71kB 29kB/s Collecting MarkupSafe>=0.23 (from Jinja2>=2.4->Flask->Flask-Script) Downloading MarkupSafe-1.0.tar.gz Installing collected packages: itsdangerous, Werkzeug, MarkupSafe, Jinja2, click, Flask, Flask-Script Running setup.py install for itsdangerous ... error Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/private/var/folders/4v/19tb9yfs367804yt2wzd7vjh0000gp/T/pip-build-6iVE3v/itsdangerous/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /var/folders/4v/19tb9yfs367804yt2wzd7vjh0000gp/T/pip-zQxmry-record/install-record.txt --single-version-externally-managed --compile: running install running build running build_py creating build creating build/lib copying itsdangerous.py -> build/lib running install_lib copying build/lib/itsdangerous.py -> /Library/Python/2.7/site-packages error: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/itsdangerous.py' ---------------------------------------- Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/private/var/folders/4v/19tb9yfs367804yt2wzd7vjh0000gp/T/pip-build-6iVE3v/itsdangerous/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /var/folders/4v/19tb9yfs367804yt2wzd7vjh0000gp/T/pip-zQxmry-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/var/folders/4v/19tb9yfs367804yt2wzd7vjh0000gp/T/pip-build-6iVE3v/itsdangerous/ 9、chomd赋予权限 sudo chmod 777 /Library/Python/2.7/site-packages/ 10、再次执行pip install Flask-Script 11、若第七步报如下错误,使用:pip --trusted-hostpypi.python.orginstall Flask-Script 12、启动httprunner,提示未发现HttpRunner强依赖的'PyUnitReport' 13、install PyUnitReport 14、install PyYAML 15、install requests 16、install pyOpenSSL 17、hrun -V 18、cd httprunner根目录下,执行export FLASK_APP=tests/api_server.py 19、接着执行flask run 遇到的问题: bogon:libexec luxiaoying$ pip install HttpRunner/usr/local/Cellar/pyenv/1.2.1/pyenv.d/exec/pip-rehash/pip: /usr/local/bin/pip: /usr/local/Cellar/python3/3.6.4_2/bin/python3.6: bad interpreter: No such file or directory 问题原因: 使用pyenv 安装了Python 3.6.4版本,并设置为默认,但提示告知Cellar下面并没有Python3。 拿Android举个例子吧,上面这种情况就像是我们只下载了某个版本的Android api,但却没有安装Android SDK 也就是说,具体版本是要依赖于某个开发环境而存在的 解决方案: 使用 brew install python3 命令安装Python3环境,如下图所示。安装成功后再次运行:pip install HttpRunner ,错误消失。

优秀的个人博客,低调大师

CentOS7.3 部署Haproxy 1.7.2

原文发表于cu:2017-03-16 参考文档: haproxy:http://www.haproxy.org/ 本文涉及haproxy的安装,并做简单配置。 一.环境准备 1.操作系统 CentOS-7-x86_64-Everything-1511 2. Haproxy版本 截至2017-02-23,haproxy稳定版本是1.7.2:http://www.haproxy.org/download/1.7/src/haproxy-1.7.2.tar.gz 3.拓扑图 haproxy服务器采用VMware ESXi虚拟出的1台服务器,前端访问地址10.11.4.152,后端地址192.168.4.152;1 Web1服务器为采用docker技术生成的1台服务器,已安装并启动nginx服务,ip地址192.168.4.171; Web2同Web1服务器,ip地址192.168.4.172; 设置web1/2测试页面(路径参考nginx安装步骤),以方便后续查看验证结果。 二.Haproxy安装 1. 下载 [root@elk-node2 ~]# cd /usr/local/src/ [root@elk-node2 src]# wget http://www.haproxy.org/download/1.7/src/haproxy-1.7.2.tar.gz 2. 编译安装 #”TARGET”指定编译对应的os对应的内核版本,通过”uname -r”查询内核版本呢,README文件可查询对应关系 [root@elk-node2 src]# tar -zxvf haproxy-1.7.2.tar.gz [root@elk-node2 src]# cd haproxy-1.7.2 [root@elk-node2 haproxy-1.7.2]# make TARGET=linux2628 PREFIX=/usr/local/haproxy [root@elk-node2 haproxy-1.7.2]# make install PREFIX=/usr/local/haproxy 三.Haproxy配置 1.配置用户 [root@elk-node2 ~]# groupadd haproxy [root@elk-node2 ~]# useradd -g haproxy haproxy -s /sbin/nologin 2. 配置文件 1)配置文件详解 #默认安装目录下没有配置文件,只有”doc”,“sbin”,“share”三个目录,可手工创建目录及配置文件; #haproxy的配置文件主要是以下5部分:global全局配置、defaults默认配置、监控页面配置、frontend配置、backend配置 [root@elk-node2 ~]# mkdir -p /usr/local/haproxy/etc [root@elk-node2 ~]# cd /usr/local/haproxy/etc/ [root@elk-node2 etc]# vim haproxy.cfg #全局配置, 用于设定义全局参数, 属于进程级的配置, 通常与操作系统配置有关. global #定义全局日志, 配置在本地, 通过local0 输出, 默认是info级别,可配置两条 log 127.0.0.1 local0 warning #定义日志级别【error warning info debug】 #log 127.0.0.1 local1 info #运行路径 chroot /usr/local/haproxy #PID 文件存放路径 pidfile /var/run/haproxy.pid #设置每haproxy进程的最大并发连接数, 其等同于命令行选项“-n”; “ulimit -n”自动计算的结果参照此参数设定. maxconn 4096 #运行haproxy 用户, 或者使用关键字uid user haproxy #运行haproxy 用户组, 或者使用关键字gid group haproxy #后台运行haproxy daemon #设置启动的haproxy进程数量, 只能用于守护进程模式的haproxy; #默认只启动一个进程, 鉴于调试困难等多方面的原因, 一般只在单进程仅能打开少数文件描述符的场景中才使用多进程模式. nbproc 1 #设置每进程所能够打开的最大文件描述符数目, 默认情况其会自动进行计算, 因此不推荐修改此选项. #ulimit-n 819200 #调试级别, 一般只在开启单进程时调试, 且生产环境禁用. #debug #haproxy启动后不会显示任何相关信息, 这与在命令行启动haproxy时加上参数“-q”相同 #quiet #定义统计信息保存位置 stats socket /usr/local/haproxy/stats #默认配置 defaults #默认的模式【tcp:4层; http:7层; health:只返回OK】 mode http #继承全局的日志定义输出 log global #日志类别, httplog #option httplog #如果后端服务器需要记录客户端真实ip, 需要在HTTP请求中添加”X-Forwarded-For”字段; #但haproxy自身的健康检测机制访问后端服务器时, 不应将记录访问日志,可用except来排除127.0.0.0,即haproxy本身. #option forwardfor except 127.0.0.0/8 option forwardfor #开启http协议中服务器端关闭功能, 每个请求完毕后主动关闭http通道, 使得支持长连接,使得会话可以被重用,使得每一个日志记录都会被记录. option httpclose #如果产生了一个空连接,那这个空连接的日志将不会记录. option dontlognull #当与后端服务器的会话失败(服务器故障或其他原因)时, 把会话重新分发到其他健康的服务器上; 当故障服务器恢复时, 会话又被定向到已恢复的服务器上; #还可以用”retries”关键字来设定在判定会话失败时的尝试连接的次数 option redispatch retries 3 #当haproxy负载很高时, 自动结束掉当前队列处理比较久的链接. option abortonclose #默认http请求超时时间 timeout http-request 10s #默认队列超时时间, 后端服务器在高负载时, 会将haproxy发来的请求放进一个队列中. timeout queue 1m #haproxy与后端服务器连接超时时间. timeout connect 5s #客户端与haproxy连接后, 数据传输完毕, 不再有数据传输, 即非活动连接的超时时间. timeout client 1m #haproxy与后端服务器非活动连接的超时时间. timeout server 1m #默认新的http请求连接建立的超时时间,时间较短时可以尽快释放出资源,节约资源. timeout http-keep-alive 10s #心跳检测超时时间 timeout check 10s #最大并发连接数 maxconn 2000 #设置默认的负载均衡方式 #balance source #balnace leastconn #统计页面配置, frontend和backend的组合体, 监控组的名称可按需自定义 listen admin_status #配置监控运行模式 mode http #配置统计页面访问端口 bind 0.0.0.0:1080 #统计页面默认最大连接数 maxconn 10 #http日志格式 option httplog #开启统计 stats enable #隐藏统计页面上的haproxy版本信息 stats hide-version #监控页面自动刷新时间 stats refresh 30s #统计页面访问url stats uri /stats #统计页面密码框提示文本 stats realm mCloud\ Haproxy #监控页面的用户和密码:admin, 可设置多个用户名 stats auth admin:admin #手工启动/禁用后端服务器, 可通过web管理节点 stats admin if TRUE #设置haproxy错误页面 errorfile 400 /usr/local/haproxy/errorfiles/400.http errorfile 403 /usr/local/haproxy/errorfiles/403.http errorfile 408 /usr/local/haproxy/errorfiles/408.http errorfile 500 /usr/local/haproxy/errorfiles/500.http errorfile 502 /usr/local/haproxy/errorfiles/502.http errorfile 503 /usr/local/haproxy/errorfiles/503.http errorfile 504 /usr/local/haproxy/errorfiles/504.http #监控haproxy后端服务器的监控状态 listen site_status bind 0.0.0.0:1081 #监听端口 mode http #http的7层模式 log 127.0.0.1 local2 err #[err warning info debug] monitor-uri /site_status #网站健康检测URL,用来检测HAProxy管理的网站是否可以用,正常返回200,不正常返回503 acl site_dead nbsrv(php_server) lt 1 #定义网站down时的策略当挂在负载均衡上的指定backend的中有效机器数小于1台时返回true acl site_dead nbsrv(html_server) lt 1 acl site_dead nbsrv(backend_default) lt 1 monitor fail if site_dead #当满足策略的时候返回503,网上文档说的是500,实际测试为503 monitor-net 192.168.4.171/32 #来自192.168.4.152的日志信息不会被记录和转发 monitor-net 192.168.4.172/32 #frontend, 名字自定义 frontend HAproxy_Cluster #定义前端监听端口, 建议采用bind *:80的形式,否则做集群高可用的时候有问题,vip切换到其余机器就不能访问. bind 0.0.0.0:80 #acl后面是规则名称,当请求的url末尾是以.php结尾时,匹配触发php_web规则,以下两种写法均可. acl php_web url_reg /*.php #当请求的url末尾是以.css、.jpg、.png、.jpeg、.js、.gif结尾时,匹配并触发static_web规则. #acl static_web path_end .gif .png .jpg .css .js .jpeg #acl static_web url_reg /*.(css|jpg|png|jpeg|js|gif)$ #-i为忽略大小写,当被请求的是以www.test.com开头的主机时,匹配并触发dns_name规则. acl html_web hdr_beg(host) -i www.haproxytest.com #acl html_web hdr_beg(host) 10.11.4.152 #当客户端的IP是x.x.x.x时,匹配并触发src_ip规则. #acl src_ip src x.x.x.x #如果匹配acl规则php_web,将请求转交到php_server组处理;如果匹配acl规则html_web,将请求转交到html_server组处理. use_backend php_server if php_web use_backend html_server if html_web #如果以上规则都不匹配时,将请求转交到default_backend组处理. default_backend backend_default #backend后端配置, 配置php_server组与html_server组 backend php_server #定义负载均衡方式为roundrobin方式, 即基于权重进行轮询调度的算法, 在服务器性能分布较均匀情况下推荐. #另有如下几种负载均衡方式: #-- static-rr: 也是基于权重进行轮转调度, 但属于静态方法, 运行时调整后端机组权重不会使用新的权重; #-- source: 基于请求源IP进行hash运算匹配后端服务器组; #-- leastconn: 不适合会话较短的环境, 如基于http的应用; #-- uri: 对整个URI进行hash运算; #-- uri_param: 对URI中的参数进行转发; #-- hdr(<name>):根据http头进行转发, 无该头部则转为使用roundrobin. balance roundrobin mode http #允许插入serverid到cookie中,serverid后面可定义 cookie SERVERID #心跳检测方式为检测后端服务器index.html文件,还有其他方式 option httpchk GET /index.html #后端服务器定义, maxconn 1024表示该服务器的最大连接数, cookie 1表示serverid为1, weight代表权重(默认1,最大为265,0则表示不参与负载均衡), #check inter 1500是检测心跳频率, rise 2是2次正确认为服务器可用, fall 3是3次失败认为服务器不可用. server php1 192.168.4.171:80 maxconn 1024 cookie 1 weight 3 check inter 1500 rise 2 fall 3 backend html_server balance source mode http server html1 192.168.4.172:80 maxconn 1024 cookie 1 weight 3 check inter 1500 rise 2 fall 3 backend backend_default balance source mode http server default1 192.168.4.171:80 maxconn 1024 cookie 1 weight 3 check inter 1500 rise 2 fall 3 2)error文件 #配置文件中统计监控页面部分定义了error文件,将安装包中的文件复制到安装目录使用 [root@elk-node2 ~]# cp -r /usr/local/src/haproxy-1.7.2/examples/errorfiles/ /usr/local/haproxy/ 3)日志文件 创建文件 [root@elk-node2 ~]# mkdir -p /usr/local/haproxy/log [root@elk-node2 ~]# touch /usr/local/haproxy/log/haproxy.log [root@elk-node2 ~]# ln -s /usr/local/haproxy/log/haproxy.log /var/log/ [root@elk-node2 ~]# chown haproxy:haproxy /var/log/haproxy.log rsyslog主配置文件 #修改”SYSLOGD_OPTIONS”参数,-c 2 使用兼容模式,默认是 -c 5;-r 开启远程日志;-m 0 标记时间戳,单位是分钟,0表示禁用该功能 [root@elk-node2 ~]# vim /etc/sysconfig/rsyslog SYSLOGD_OPTIONS="-c 2 -r -m 0" rsyslog文件 #haproxy默认没有日志,依靠rsyslog收集日志; #文件最末尾的“&~”,如果没有此配置,日志除写入指定文件外,会同步写入messages文件 [root@elk-node2 ~]# cd /etc/rsyslog.d/ [root@elk-node2 rsyslog.d]# touch haproxy.conf [root@elk-node2 rsyslog.d]# chown haproxy:haproxy haproxy.conf [root@elk-node2 rsyslog.d]# vim haproxy.conf # Provides UDP syslog reception $ModLoad imudp $UDPServerRun 514 # haproxy.log # local0.* /usr/local/haproxy/log/haproxy.log #local1.* /usr/local/haproxy/log/haproxy.log local2.* /usr/local/haproxy/log/haproxy.log &~ [root@elk-node2 rsyslog.d]# systemctl restart rsyslog.service #关闭selinux,本文因没有关闭selinux导致排查问题用了比较长的时间 [root@elk-node2 rsyslog.d]# setenforce 0 4)配置文件权限及软链接 [root@elk-node2 ~]# chown -R haproxy:haproxy /usr/local/haproxy/ [root@elk-node2 ~]# mkdir -p /etc/haproxy [root@elk-node2 ~]# ln -s /usr/local/haproxy/etc/haproxy.cfg /etc/haproxy/ [root@elk-node2 ~]# chown -R haproxy:haproxy /etc/haproxy 3. 配置开机启动 [root@elk-node2 ~]# cp /usr/local/src/haproxy-1.7.2/examples/haproxy.init /etc/rc.d/init.d/haproxy [root@elk-node2 ~]# chown haproxy:haproxy /etc/rc.d/init.d/haproxy [root@elk-node2 ~]# chmod +x /etc/rc.d/init.d/haproxy [root@elk-node2 ~]# chkconfig --add haproxy [root@elk-node2 ~]# chkconfig --level 35 haproxy on 4.配置全局启动文件 #采用软链接方式 [root@elk-node2 ~]# ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin/ [root@elk-node2 ~]# chown haproxy:haproxy /usr/sbin/haproxy 5.配置防火墙 #开放如上端口,均在配置文件中有定义,日志端口在rsyslog.d/haproxy.conf文件中定义 [root@elk-node2 ~]# vim /etc/sysconfig/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 1080 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 1081 -j ACCEPT -A INPUT -p udp -m state --state NEW -m tcp --dport 514 -j ACCEPT [root@elk-node2 ~]# service iptables restart 6.启动并验证 [root@elk-node2 ~]# service haproxy start 1)端口验证 [root@elk-node2 ~]# netstat –tunlp 2)监控页面 监控页面展示信息与账户/密码在配置文件中已定义。 3)访问页面 触发配置文件中定义的php_server组,如下: 触发配置文件中定义的html_server组(在本地修改hosts文件),如下: 触发配置文件中定义的backend_default组,如下:

优秀的个人博客,低调大师

在docker中部署静态网页

1、新建一个80端口的web服务器,ubuntu系统 docker run -p 80 –name web -i -t ubuntu /bin/bash 2、在ubuntu上安装nginx apt-get update apt-get install -y nginx 3、在ubuntu上安装vim apt-get install -y vim 4、创建文件夹 mkdir -p /var/www/html 5、创建静态页面 cd /var/www/html vim index.html <html> <body> <h1> hi,docker! </h1> </body> </html> 6、运行nginx ps -ef 查看nginx是否正常启动 如图则nginx已经正常启动 ctrl+P && ctrl+Q 退出docker。 如图docker内ubuntu容器的80端口对应了宿主机的32769端口。 通过docker inspect web 查看容器的内网ip地址 7、访问页面 可以通过curl http://127.0.0.1:32769 访问 也可以通过 curl http://172.17.0.3 访问 当然也可以通过浏览器访问上述2个ip。 好了,大功告成。后面还要用docker实现更加复杂的应用。

优秀的个人博客,低调大师

搭建部署Hadoop 之Yarn

Yarn集群资源管理系统 Yarn 角色及概念 •Yarn 是 Hadoop 的一个通用的资源管理系统 • Yarn 角色 – Resourcemanager – Nodemanager – ApplicationMaster – Container – Client • ResourceManager – 处理客户端请求 – 启动 / 监控 ApplicationMaster – 监控 NodeManager – 资源分配与调度 • NodeManager – 单个节点上的资源管理 – 处理来自 ResourceManager 的命令 – 处理来自 ApplicationMaster 的命令 • Container – 对任务运行行环境的抽象,封装了 CPU 、内存等 – 多维资源以及环境变量、启动命令等任务运行相关的信息资源分配与调度 • ApplicationMaster – 数据切分 – 为应用程序申请资源,并分配给内部任务 – 任务监控与容错 • Client – 用户与 YARN 交互的客户端程序 – 提交应用程序、监控应用程序状态,杀死应用程序等 Yarn 结构 • YARN 的核心思想 • 将 JobTracker 和 TaskTacker 进行分离,它由下面几大构成组件: – ResourceManager 一个全局的资源管理器 – NodeManager 每个节点(RM)代理 – ApplicationMaster 表示每个应用 – 每一个 ApplicationMaster 有多个 Container 在NodeManager 上运行 系统规划 主机 角色 软件 192.168.4.1master Resource Manager YARN 192.168.4.2node1 Node Manager YARN 192.168.4.3node2 Node ManagerYARN 192.168.4.4node3Node ManagerYARN Yarn 安装与配置 具体实验准备 可以参考http://blog.51cto.com/13558754/2066708 # ssh 192.168.4.1 # cd /usr/local/hadoop/ # cd etc/hadoop/ # cp mapred-site.xml.template mapred-site.xml # vim mapred-site.xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value>// 配置使用yarn 资源管理系统 </property> </configuration> # vim yarn-site.xml <configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value>//配置Resource Manager 角色 </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value>// 一个 java 的类 真实环境与开发人员沟通 </property> </configuration> 配置完成以后 # for i in node{1..3}//将配置文件同步到所有主机 > do > rsync -azSH --delete /usr/local/hadoop/etc/hadoop/ ${i}:/usr/local/hadoop/etc/hadoop -e 'ssh' > done # cd /usr/local/hadoop/ 启动 yarn 服务 # ./sbin/start-yarn.sh 在所有主机上执行 jps, 查看是否启动成功 # for i in master node{1..3} > do > echo ${i} > ssh ${i} "jps" > done master 3312 Jps 3005 ResourceManager node1 3284 Jps 3162 NodeManager node2 2882 NodeManager 3004 Jps node3 2961 Jps 2831 NodeManager 显示所有可用的计算节点 # ./bin/yarn node -list 18/01/31 06:41:56 INFO client.RMProxy: Connecting to ResourceManager at master/192.168.4.1:8032 Total Nodes:3 Node-Id Node-StateNode-Http-AddressNumber-of-Running-Containers node3:46007 RUNNING node3:8042 0 node2:54895 RUNNING node2:8042 0 node1:51087 RUNNING node1:8042 resourcemanager nodemangager 验证 Yarn # bin/hadoop fs -ls /input Found 3 items -rw-r--r-- 2 root supergroup 84854 2018-01-29 21:37 /input/LICENSE.txt -rw-r--r-- 2 root supergroup 14978 2018-01-29 21:37 /input/NOTICE.txt -rw-r--r-- 2 root supergroup 1366 2018-01-29 21:37 /input/README.txt 使用yarn 统计 样本文件中单词出现频率 # ./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount hdfs://master:9000/input hdfs://master:9000/output 查看结果 # ./bin/hadoop fs -cat hdfs://master:9000/output/* Yarn 节点管理 [root@master ~] # cat /etc/hosts 192.168.4.1master 192.168.4.2node1 192.168.4.3node2 192.168.4.4node3 192.168.4.5newnode [root@newnode ~]# rsync -azSH --delete master:/usr/local/hadoop /usr/local [root@master hadoop]# ./sbin/start-yarn.sh 添加节点 [root@master hadoop]# ./bin/yarn node -list 18/01/28 21:06:57 INFO client.RMProxy: Connecting to ResourceManager at master/192.168.4.1:8032 Total Nodes:3 Node-Id Node-State Node-Http-Address Number-of-Running-Containers node1:33596 RUNNING node1:8042 0 node2:53475 RUNNING node2:8042 0 node3:34736 RUNNING node3:8042 0 [root@newnode hadoop]# sbin/yarn-daemon.sh start nodemanager [root@master hadoop]# ./bin/yarn node -list 18/01/28 21:07:53 INFO client.RMProxy: Connecting to ResourceManager at master/192.168.4.1:8032 Total Nodes:4 Node-Id Node-State Node-Http-Address Number-of-Running-Containers newnode:39690 RUNNING newnode:8042 0 node1:33596 RUNNING node1:8042 0 node2:53475 RUNNING node2:8042 0 node3:34736 RUNNING node3:8042 0 删除节点 [root@newnode hadoop]# sbin/yarn-daemon.sh stop nodemanager //不会立即删除 [root@master hadoop]# ./bin/yarn node -list 18/01/28 21:11:31 INFO client.RMProxy: Connecting to ResourceManager at master/192.168.4.1:8032 Total Nodes:4 Node-Id Node-State Node-Http-Address Number-of-Running-Containers newnode:39690 RUNNING newnode:8042 0 node1:33596 RUNNING node1:8042 0 node2:53475 RUNNING node2:8042 0 node3:34736 RUNNING node3:8042 0 //需要重新启动服务 [root@master hadoop]# ./sbin/stop-yarn.sh [root@master hadoop]# ./sbin/start-yarn.sh [root@master hadoop]# ./bin/yarn node -list 18/01/28 21:12:46 INFO client.RMProxy: Connecting to ResourceManager at master/192.168.4.1:8032 Total Nodes:3 Node-Id Node-State Node-Http-Address Number-of-Running-Containers node1:42010 RUNNING node1:8042 0 node2:55043 RUNNING node2:8042 0 node3:38256 RUNNING node3:8042 0 本文转自 Xuenqlve 51CTO博客,原文链接:http://blog.51cto.com/13558754/2067497,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册