首页 文章 精选 留言 我的

精选列表

搜索[自动装配],共10015篇文章
优秀的个人博客,低调大师

centos 6.5 Atlas 中间件的安装配

前言: Atlasy由奇虎出品,在mysqp-proxy上开发而已,自带lua脚本,th用于取代 mysql-proxy和amoebo ,后两者已经停止开发. atlas :192.168.168.130 master:192.168.168.128 slave: 192.168.168.129 配置master和slave 主从: 参考:http://752030200.blog.51cto.com/8936921/1853460 首先从官方下载rpm安装包。https://github.com/Qihoo360/Atlas/releases ## el6 代表用于centos 6.x系统,el5 用于centos 5.x 3.安装:rpm -i Atlas-2.2.1.el6.x86_64.rpm #默认安装路径:/usr/local/mysql-proxy/ 4.vim /usr/local/mysql-proxy/conf/test.cnf #修改配置文件,注意 true,false 参数后面不能有空格,不然会报错,判断方法:非编辑模式下光标向右移动不能移动到最后表示无空间,否则有空格。 主要根据实际调整几个: [mysql-proxy] #带#号的为非必需的配置项目 #管理接口的用户名 admin-username = atlas #管理接口的密码 admin-password = atlas #Atlas后端连接的MySQL主库的IP和端口,可设置多项,用逗号分隔 proxy-backend-addresses = 192.168.168.128:3306 #Atlas后端连接的MySQL从库的IP和端口,@后面的数字代表权重,用来作负载均衡,若省略则默认为1,可设置多项,用逗号分隔 proxy-read-only-backend-addresses = 192.168.168.129:3306@1 #用户名与其对应的加密过的MySQL密码,密码使用PREFIX/bin目录下的加密程序encrypt加密,下行的user1和user2为示例,将其替换为你的MySQL的用户名和加密密码! #密码加密: encrypt 123456 结果等于: /iZxz+0GRoA= pwds = root@yaho:/iZxz+0GRoA= 5. 启动 / 停止 /重启 atlas (加配置文件名): [root@yaho ~]# /usr/local/mysql-proxy/bin/mysql-proxydteststart [root@yaho ~]# /usr/local/mysql-proxy/bin/mysql-proxydteststop [root@yaho ~]# /usr/local/mysql-proxy/bin/mysql-proxydtestrestart 6. 登录atlas管理界面: [root@yaho ~]# mysql -u atlas -patlas -h127.0.0.1 -P2345 --大写P mysql> SELECT * FROM help;---查看所有可用的命令帮忙 mysql> SELECT * FROM backends; --查看后端的信息 +-------------+----------------------+------+-------+---------+ | backend_ndx | address | state | type | +-------------+----------------------+------+-------+---------+ | 1 | 192.168.168.128:3306 | up | rw | | 2 | 192.168.168.129:3306 | up | ro | +-------------+----------------------+----+---------+---------+ 2 rows in set (0.00 sec) 验证: 7. 先登录slave 先把slave停止. mysql>slave stop; 8. 登录atlas对mysql进行操作: [root@yaho ~]# mysql -u root -p123456 -h127.0.0.1 -P1234 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | test | +--------------------+ 5 rows in set (0.00 sec) mysql>create database TOP; --新建一个数据库TOP,成功 Query OK, 1 row affected (0.00 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | TOP | | mysql | | test | +--------------------+ 4 rows in set (0.01 sec) 9. 登录master 查看是否有 TOP 数据库 [root@yaho ~]# mysql mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | TOP | | mysql | | test | +--------------------+ 4 rows in set (0.00 sec) 10. 登录 SLAVE查看是否有 TOP 数据库 [root@yaho ~]# mysql mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | test | +--------------------+ 4 rows in set (0.00 sec) 11 .登录slave 把slave开启 mysql>slave start; 12. [root@yaho ~]# mysql mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | TOP | | mysql | | test | +--------------------+ 4 rows in set (0.00 sec) 可以看到在atlas 新建一个TOP数据库时,成功写入到master上,并且SLAVE 成功从MASTER上复制过来。 注意:1.用户名和加密密码这段用来登录mysql进行操作。 2. 管理接口用户用来管理 atlas 。 3.当atlas 没有启动时,用restart不能启动atlas服务,并会报错。 本文转自笔下生辉 51CTO博客,原文链接:http://blog.51cto.com/752030200/1871864,如需转载请自行联系原作者

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

Mahout 安装配置及一个简单测试

Mahout 简介 Mahout 是一个很强大的数据挖掘工具,是一个分布式机器学习算法的集合,包括:被称为Taste的分布式协同过滤的实现、分类、聚类等。Mahout最大的优点就是基于hadoop实现,把很多以前运行于单机上的算法,转化为了MapReduce模式,这样大大提升了算法可处理的数据量和处理性能。 Hadoop http://blog.csdn.net/fenglailea/article/details/53318459 风.fox 环境 Centos7 服务器 当前最新版 0.12.2 Mahout下载地址 http://archive.apache.org/dist/mahout/ http://archive.apache.org/dist/mahout/0.12.2/ wget http://archive.apache.org/dist/mahout/0.12.2/apache-mahout-distribution-0.12.2.tar.gz tar -zxvf apache-mahout-distribution-0.12.2.tar.gz 这里放到 Hadoop 目录里 mv apache-mahout-distribution-0.12.2 /home/hadoop/mahout Mahout环境变量设置 设置全局/etc/bashrc,当前用户~/.bashrc 这里使用当前用户 vim ~/.bashrc mahout环境变量 export MAHOUT_HOME=/home/hadoop/mahout export MAHOUT_CONF_DIR=$MAHOUT_HOME/conf export PATH=$MAHOUT_HOME/conf:$MAHOUT_HOME/bin:$PATH hadoop环境变量 export HADOOP_HOME=/home/hadoop/hadoop export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export PATH=$PATH:$HADOOP_HOME/bin export HADOOP_HOME_WARN_SUPPRESS=not_null 应用环境变量 . ~/.bashrc 查询是否安装成功, mahout 若出现一下,表示安装成功 arff.vector: : Generate Vectors from an ARFF file or directory baumwelch: : Baum-Welch algorithm for unsupervised HMM training canopy: : Canopy clustering cat: : Print a file or resource as the logistic regression models would see it cleansvd: : Cleanup and verification of SVD output clusterdump: : Dump cluster output to text clusterpp: : Groups Clustering Output In Clusters cmdump: : Dump confusion matrix in HTML or text formats cvb: : LDA via Collapsed Variation Bayes (0th deriv. approx) cvb0_local: : LDA via Collapsed Variation Bayes, in memory locally. describe: : Describe the fields and target variable in a data set evaluateFactorization: : compute RMSE and MAE of a rating matrix factorization against probes fkmeans: : Fuzzy K-means clustering hmmpredict: : Generate random sequence of observations by given HMM itemsimilarity: : Compute the item-item-similarities for item-based collaborative filtering kmeans: : K-means clustering lucene.vector: : Generate Vectors from a Lucene index matrixdump: : Dump matrix in CSV format matrixmult: : Take the product of two matrices parallelALS: : ALS-WR factorization of a rating matrix qualcluster: : Runs clustering experiments and summarizes results in a CSV recommendfactorized: : Compute recommendations using the factorization of a rating matrix recommenditembased: : Compute recommendations using item-based collaborative filtering regexconverter: : Convert text files on a per line basis based on regular expressions resplit: : Splits a set of SequenceFiles into a number of equal splits rowid: : Map SequenceFile<Text,VectorWritable> to {SequenceFile<IntWritable,VectorWritable>, SequenceFile<IntWritable,Text>} rowsimilarity: : Compute the pairwise similarities of the rows of a matrix runAdaptiveLogistic: : Score new production data using a probably trained and validated AdaptivelogisticRegression model runlogistic: : Run a logistic regression model against CSV data seq2encoded: : Encoded Sparse Vector generation from Text sequence files seq2sparse: : Sparse Vector generation from Text sequence files seqdirectory: : Generate sequence files (of Text) from a directory seqdumper: : Generic Sequence File dumper seqmailarchives: : Creates SequenceFile from a directory containing gzipped mail archives seqwiki: : Wikipedia xml dump to sequence file spectralkmeans: : Spectral k-means clustering split: : Split Input data into test and train sets splitDataset: : split a rating dataset into training and probe parts ssvd: : Stochastic SVD streamingkmeans: : Streaming k-means clustering svd: : Lanczos Singular Value Decomposition testnb: : Test the Vector-based Bayes classifier trainAdaptiveLogistic: : Train an AdaptivelogisticRegression model trainlogistic: : Train a logistic regression using stochastic gradient descent trainnb: : Train the Vector-based Bayes classifier transpose: : Take the transpose of a matrix validateAdaptiveLogistic: : Validate an AdaptivelogisticRegression model against hold-out data set vecdist: : Compute the distances between a set of Vectors (or Cluster or Canopy, they must fit in memory) and a list of Vectors vectordump: : Dump vectors from a sequence file to text viterbi: : Viterbi decoding of hidden states from given output states sequence Mahout 和Hadoop 集成测试 首先,hadoop 要安装完成及启动 http://blog.csdn.net/fenglailea/article/details/53318459 下载测试数据 http://archive.ics.uci.edu/ml/databases/synthetic_control/ wget http://archive.ics.uci.edu/ml/databases/synthetic_control/synthetic_control.data hadoop 上传测试数据 hadoop fs -mkdir -p ./testdata hadoop fs -put synthetic_control.data ./testdata 查看目录及文件 hadoop fs -ls hadoop fs -ls ./testdata 使用Mahout中的kmeans聚类算法进行测试 mahout -core org.apache.mahout.clustering.syntheticcontrol.kmeans.Job XX执行完成,最后几行如下 1.0 : [distance=55.039831561905785]: [33.67,38.675,39.742,41.989,37.291,43.975,31.909,25.878,31.08,15.858,13.95,23.097,19.983,21.692,31.579,38.57,33.376,38.843,41.936,33.534,39.195,32.897,25.343,18.523,15.089,17.771,22.614,25.313,23.687,29.01,41.995,35.712,40.872,41.669,32.156,25.162,24.98,23.705,18.413,20.975,14.906,26.171,30.165,27.818,35.083,39.514,37.851,33.967,32.338,34.977,26.589,28.079,19.597,24.669,23.098,25.685,28.215,34.94,36.91,39.749] 16/11/24 16:47:52 INFO ClusterDumper: Wrote 6 clusters 16/11/24 16:47:52 INFO MahoutDriver: Program took 22175 ms (Minutes: 0.3695833333333333) 查看输出 hadoop fs -ls ./output Found 15 items -rw-r--r-- 1 hadoop supergroup 194 2016-11-24 16:47 output/_policy drwxr-xr-x - hadoop supergroup 0 2016-11-24 16:47 output/clusteredPoints drwxr-xr-x - hadoop supergroup 0 2016-11-24 16:47 output/clusters-0 drwxr-xr-x - hadoop supergroup 0 2016-11-24 16:47 output/clusters-1 drwxr-xr-x - hadoop supergroup 0 2016-11-24 16:47 output/clusters-10-final drwxr-xr-x - hadoop supergroup 0 2016-11-24 16:47 output/clusters-2 drwxr-xr-x - hadoop supergroup 0 2016-11-24 16:47 output/clusters-3 drwxr-xr-x - hadoop supergroup 0 2016-11-24 16:47 output/clusters-4 drwxr-xr-x - hadoop supergroup 0 2016-11-24 16:47 output/clusters-5 drwxr-xr-x - hadoop supergroup 0 2016-11-24 16:47 output/clusters-6 drwxr-xr-x - hadoop supergroup 0 2016-11-24 16:47 output/clusters-7 drwxr-xr-x - hadoop supergroup 0 2016-11-24 16:47 output/clusters-8 drwxr-xr-x - hadoop supergroup 0 2016-11-24 16:47 output/clusters-9 drwxr-xr-x - hadoop supergroup 0 2016-11-24 16:47 output/data drwxr-xr-x - hadoop supergroup 0 2016-11-24 16:47 output/random-seeds 查看数据 mahout vectordump -i ./output/data/part-m-00000 查看 http://itindex.net/detail/51681-mahout http://blog.csdn.net/wind520/article/details/38851367

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

HBase基础和伪分布式安装配

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq1010885678/article/details/43796441 一、HBase(NoSQL)的数据模型 1.1 表(table),是存储管理数据的。 1.2 行键(row key),类似于MySQL中的主键,行键是HBase表天然自带的,创建表时不需要指定 1.3 列族(column family),列的集合。 一张表中有多个行健,一个行健读取出来的是一条记录,列族和MySQL中的列差不多,但是它是列的集合 HBase中列族是需要在定义表时指定的,列是在插入记录时动态增加的。 HBase表中的数据存储在本地磁盘上的时候,每个列族单独一个作为文件存储。 上图表示HBase中表的一行 和关系型数据库不同的是 关系型数据库一行中每一个列的值只能是一个,如: UserId UserName 1 JChubby 而在NoSql中,一行里面某一个列的值可能是多个的,如上图,或者: UserId UserName 1 JChubby Looky 其中省略了timestamp时间戳这一列,但是在NoSql中读取这一行数据的出来时,数据应该是和关系型数据库读出来的是差不多的 时间戳列起到了标识列数据版本的作用,当没有指定时间戳的时候默认取的是最新的列数据,具体请参照上图 1.4 存储的数据都是字节数组。 二、HBase的物理模型 2.1 HBase是适合海量数据(如20PB)的秒级简单查询的数据库。 2.2 HBase表中的记录,按照行键进行拆分, 拆分成一个个的region。 如:在一个有1W行健的表中,每2K个行健拆分成一个region分别存储在不同的节点中,每个region记录着行健的起始位置和最终位置[startkey,endkey] 许多个region存储在region server(单独的物理机器)中的。 这样,对表的操作转化为对多台region server的并行查询。 HBase中有两种特殊的表,分别是-ROOT和.META .META中记录着各个region的起止行健,当.META中的记录很大时,又会按照相同的规则拆分成不同的region记录中-ROOT表中 如上图所示,当要查询数据时,先找-ROOT表中记录的region信息,找到对应的.META表中的region,在到实际的节点上的region查询数据 三、HBase的体系结构 3.1 HBase是主从式结构,HMaster、HRegionServer 四、HBase伪分布安装 HBase的安装是是建立在hadoop和zookeeper集群之上的 安装时确保hadoop和zookeeper集群已安装成功并启动 4.1 解压缩、重命名、设置环境变量 把hbase-0.94.2-security.tar.gz复制到/home/hadoop 解压hbase-0.94.2-security.tar.gz与重命名 #cd /home/hadoop #tar -zxvf hbase-0.94.2-security.tar.gz #mv hbase-0.94.2-security hbase 修改/etc/profile文件。 #vi /etc/profile 增加 export HBASE_HOME=/home/hadoop/hbase 修改 export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HBASE_HOME/bin 保存退出 #source /etc/profile 4.2 修改$HBASE_HOME/conf/hbase-env.sh,修改内容如下: export JAVA_HOME=/usr/java/jdk1.6.0_45 export HBASE_MANAGES_ZK=true 第一个配置java环境变量 第二个配置在本机器上的HBase可以自己启动zookeeper和使用 4.2 修改$HBASE_HOME/conf/hbase-site.xml,修改内容如下: <property> <name>hbase.rootdir</name> <value>hdfs://master:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>master</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> hbase.rootdir配置在hdfs文件系统上hbase存储的路径 hbase.cluster.distributed配置是否是分布式的 hbase.zookeeper.quorum配置zookeeper在哪个节点上 dfs.replication配置副本个数 注意:hbase.rootdir的主机和端口号与hadoop的配置文件core-site.xml的fs.default.name的主机和端口号一致 4.3 (可选)文件regionservers的内容为master,该文件记录regionserver的各个节点的主机名,因为是伪分布式安装,所只写一个,localhost或者主机名都可以 4.4 启动hbase,在bin目录下执行命令start-hbase.sh ******启动hbase之前,确保hadoop是运行正常的,并且可以写入文件******* 4.5 验证是否安装成功: (1)执行jps,发现新增加了3个java进程,分别是HMaster、HRegionServer、HQuorumPeer (2)使用浏览器访问http://master:60010,可以进入和hadoop类似的web管理页面

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

一文了解Docker核心概念和安装配

核心概念 Docker 有三大核心概念,分别是镜像,容器,仓库。 Docker 镜像 Docker 镜像类似于虚拟机的镜像,可以把它理解为一个只读的模板,例如一个镜像可以包含一个基本的操作系统环境,里面仅仅安装了Apache应用程序,可以把它称之为一个Apache镜像。镜像是创建Docker容器的基础。通过版本管理和增量文件系统,Docker提供了一套十分简单的机制来更新现有的镜像,用户甚至可以从网上下载一个已经做好的应用镜像,并进行使用。 Docker 容器 Docker容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。容器是从镜像创建的应用运行实例,它可以启动,开始停止删除,这些容器彼此相互隔离,互相不可见。可以把容器看做一个简易版的Linux系统环境,以及运行在其中的应用程序打包而成的盒子。 Docker 仓库 Docker仓库类似于代码仓库,是Docker集中保存镜像文件的场所。根据保存的镜像是否公开与否,Docker仓库可以分为公开仓库和私有仓库两种形式。 安装Docker引擎 下面的实例,是在Windows下安装docker 访问官网的首页。https://www.docker.com/ 单击立即适用,选择windows版本的下载 单击项目进行安装 进行安装 检验是否安装成功打开powershell 输入docker 这样,windows 版本的docker已经安装完毕 使用Docker镜像 对于docker镜像的使用如下 获取镜像 获取docker镜像,使用如下的命令。输入命令获取docker镜像 docker pull ubuntu 从下载的过程可以看到,对于docker容器来说,镜像文件一般由若干层组成, 每一个字符串都是唯一的id,使用docker的pull命令的时候,会一层层的下载相关的镜像,并由上一层镜像指向上上一层的镜像。 查看镜像的信息 使用docke的images命令,查看docker的镜像信息。 上方使用images列出docker的镜像信息。 使用tag命令添加镜像的标签 为了方便于docker镜像的使用,使用docker的tag命令,添加docker的镜像标签。 docker tag ubuntu:latest myubuntu:laster 使用的效果如下 使用inspect命令查看docker的详细信息 docker image inspect ubuntu 查看信息如下 PS C:\Users\Administrator\Desktop> docker image inspect ubuntu [ { "Id": "sha256:74435f89ab7825e19cf8c92c7b5c5ebd73ae2d0a2be16f49b3fb81c9062ab303", "RepoTags": [ "myubuntu:laster", "ubuntu:latest" ], "RepoDigests": [ "ubuntu@sha256:35c4a2c15539c6c1e4e5fa4e554dac323ad0107d8eb5c582d6ff386b383b7dce" ], "Parent": "", "Comment": "", "Created": "2020-06-17T01:20:56.323568224Z", "Container": "9477bb1d88721b63e0c6a359eb48a081741a0992480bf34bbcebf4e5734fcf67", "ContainerConfig": { "Hostname": "9477bb1d8872", "Domainname": "", "User": "", "AttachStdin": false, "AttachStdout": false, "AttachStderr": false, "Tty": false, "OpenStdin": false, "StdinOnce": false, "Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" ], "Cmd": [ "/bin/sh", "-c", "#(nop) ", "CMD [\"/bin/bash\"]" ], "ArgsEscaped": true, "Image": "sha256:5412cfe47ff528df823761788f99a11568e2d25f48a4245a3d67cdc3e564c839", "Volumes": null, "WorkingDir": "", "Entrypoint": null, "OnBuild": null, "Labels": {} }, "DockerVersion": "18.09.7", "Author": "", "Config": { "Hostname": "", "Domainname": "", "User": "", "AttachStdin": false, "AttachStdout": false, "AttachStderr": false, "Tty": false, "OpenStdin": false, "StdinOnce": false, "Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" ], "Cmd": [ "/bin/bash" ], "ArgsEscaped": true, "Image": "sha256:5412cfe47ff528df823761788f99a11568e2d25f48a4245a3d67cdc3e564c839", "Volumes": null, "WorkingDir": "", "Entrypoint": null, "OnBuild": null, "Labels": null }, "Architecture": "amd64", "Os": "linux", "Size": 73856440, "VirtualSize": 73856440, "GraphDriver": { "Data": { "LowerDir": "/var/lib/docker/overlay2/63e1c7f313e414bd5465953da0ceb615cc9c5906c9b539ed164560b18020bc85/diff:/var/lib/docker/overlay2/09f0332099bc97d0052e07879f18271f2c7ea879501498a1eca00711065c9e9a/diff:/var/lib/docker/overlay2/8fef100fbab32d7aa7a3cc70740ef97b45cc9dcfce91453dd10cc502a3fa10f7/diff", "MergedDir": "/var/lib/docker/overlay2/3ec5eeae7aa3781aa605fa1a1dc598c39d7774796600b3c1f86e8190c24d5a47/merged", "UpperDir": "/var/lib/docker/overlay2/3ec5eeae7aa3781aa605fa1a1dc598c39d7774796600b3c1f86e8190c24d5a47/diff", "WorkDir": "/var/lib/docker/overlay2/3ec5eeae7aa3781aa605fa1a1dc598c39d7774796600b3c1f86e8190c24d5a47/work" }, "Name": "overlay2" }, "RootFS": { "Type": "layers", "Layers": [ "sha256:e1c75a5e0bfa094c407e411eb6cc8a159ee8b060cbd0398f1693978b4af9af10", "sha256:9e97312b63ff63ad98bb1f3f688fdff0721ce5111e7475b02ab652f10a4ff97d", "sha256:ec1817c93e7c08d27bfee063f0f1349185a558b87b2d806768af0a8fbbf5bc11", "sha256:05f3b67ed530c5b55f6140dfcdfb9746cdae7b76600de13275197d009086bb3d" ] }, "Metadata": { "LastTagTime": "2020-07-06T13:37:35.064486339Z" } } ] 使用history命令查看镜像历史 docker history ubuntu PS C:\Users\Administrator\Desktop> docker history ubuntu IMAGE CREATED CREATED BY SIZE COMMENT 74435f89ab78 2 weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B <missing> 2 weeks ago /bin/sh -c mkdir -p /run/systemd && echo 'do… 7B <missing> 2 weeks ago /bin/sh -c set -xe && echo '#!/bin/sh' > /… 811B <missing> 2 weeks ago /bin/sh -c [ -z "$(apt-get indextargets)" ] 1.01MB <missing> 2 weeks ago /bin/sh -c #(nop) ADD file:b2342c7e6665d5ff3… 72.8MB PS C:\Users\Administrator\Desktop> 搜索相关的镜像 搜索官方带nginx的关键字的镜像 PS C:\Users\Administrator\Desktop> docker search --filter=is-official=true nginx NAME DESCRIPTION STARS OFFICIAL AUTOMATED nginx Official build of Nginx. 13426 [OK] PS C:\Users\Administrator\Desktop> 删除和清理镜像 对镜像镜像相关的删除 使用标签删除镜像 docker rmi ubuntu PS C:\Users\Administrator\Desktop> docker rmi ubuntu Untagged: ubuntu:latest Untagged: ubuntu@sha256:35c4a2c15539c6c1e4e5fa4e554dac323ad0107d8eb5c582d6ff386b383b7dce PS C:\Users\Administrator\Desktop> 使用镜像ID删除镜像 PS C:\Users\Administrator\Desktop> docker images REPOSITORY TAG IMAGE ID CREATED SIZE myubuntu laster 74435f89ab78 2 weeks ago 73.9MB ubuntu latest 74435f89ab78 2 weeks ago 73.9MB PS C:\Users\Administrator\Desktop> docker rmi ubuntu Untagged: ubuntu:latest Untagged: ubuntu@sha256:35c4a2c15539c6c1e4e5fa4e554dac323ad0107d8eb5c582d6ff386b383b7dce PS C:\Users\Administrator\Desktop> docker images REPOSITORY TAG IMAGE ID CREATED SIZE myubuntu laster 74435f89ab78 2 weeks ago 73.9MB PS C:\Users\Administrator\Desktop> docker rmi 74435f89ab78 Untagged: myubuntu:laster Deleted: sha256:74435f89ab7825e19cf8c92c7b5c5ebd73ae2d0a2be16f49b3fb81c9062ab303 Deleted: sha256:8a8d1f0b34041a66f09e49bdc03e75c2190f606b0db7e08b75eb6747f7b49e11 Deleted: sha256:f1b8f74eff975ae600be0345aaac8f0a3d16680c2531ffc72f77c5e17cbfeeee Deleted: sha256:27d46ebb54384edbc8c807984f9eb065321912422b0e6c49d6a9cd8c8b7d8ffc Deleted: sha256:e1c75a5e0bfa094c407e411eb6cc8a159ee8b060cbd0398f1693978b4af9af10 PS C:\Users\Administrator\Desktop> docker images REPOSITORY TAG IMAGE ID CREATED SIZE PS C:\Users\Administrator\Desktop> 清理镜像 使用docker镜像来进行清理 PS C:\Users\Administrator\Desktop> docker image prune WARNING! This will remove all dangling images. Are you sure you want to continue? [y/N] y Total reclaimed space: 0B PS C:\Users\Administrator\Desktop> docker images REPOSITORY TAG IMAGE ID CREATED SIZE PS C:\Users\Administrator\Desktop> 创建镜像 基于已有的容器创建镜像 查看运行的容器列表 PS C:\Users\Administrator\Desktop> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ff7a974b9771 nginx "/docker-entrypoint.…" About a minute ago Up About a minute 80/tcp fervent_curie 创建相关的容器 docker container commit -m "ming" -a "mingming" ff7a974b9771 test:0.1 再次查看 PS C:\Users\Administrator\Desktop> docker images REPOSITORY TAG IMAGE ID CREATED SIZE test 0.1 54a6eb8d4483 5 seconds ago 132MB ubuntu latest 74435f89ab78 2 weeks ago 73.9MB nginx latest 2622e6cca7eb 3 weeks ago 132MB PS C:\Users\Administrator\Desktop> 完整的过程如下图 使用模板方式创建 https://download.openvz.org/template/precreated/ 下载相关的模板 导入相关的镜像 cat centos-6-x86-minimal.tar.gz|docker import - centos6 使用dockerFile创建 # 构建阶段 FROM node # 指定工作目录 WORKDIR / # 指定工作端口 EXPOSE 4000 # 安装gitbook RUN npm install gitbook -g; RUN npm install gitbook-cli -g; # 拉取文件 RUN git clone https://github.com/mySoul8012/SE-Basic-knowledge.git # 进入目录 WORKDIR /SE-Basic-knowledge # 初始化镜像 RUN gitbook init CMD ["gitbook", "serve"] 输入构建的镜像 docker image build -t ming:0.1 保存和载入镜像 存出镜像 PS C:\Users\Administrator\Desktop> docker save -o ubuntu.tar ubuntu PS C:\Users\Administrator\Desktop> 载入镜像 PS C:\Users\Administrator\Desktop> docker load -i ubuntu.tar Loaded image: ubuntu:latest PS C:\Users\Administrator\Desktop> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ff7a974b9771 nginx "/docker-entrypoint.…" 12 minutes ago Up 12 minutes 80/tcp fervent_curie PS C:\Users\Administrator\Desktop> docker images REPOSITORY TAG IMAGE ID CREATED SIZE test 0.1 54a6eb8d4483 10 minutes ago 132MB ubuntu latest 74435f89ab78 2 weeks ago 73.9MB nginx latest 2622e6cca7eb 3 weeks ago 132MB PS C:\Users\Administrator\Desktop> 上传镜像 上传镜像到docker PS C:\Users\Administrator\Desktop> docker push test The push refers to repository [docker.io/library/test] 53d99160caf2: Preparing f978b9ed3f26: Preparing 9040af41bb66: Preparing 7c7d7f446182: Preparing d4cf327d8ef5: Preparing 13cb14c2acd3: Waiting denied: requested access to the resource is denied PS C:\Users\Administrator\Desktop> 可以看到拒绝,这里先登录账号 docker login Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. Username: melovemingming Password: Login Succeeded 再进行文件的上传 docker push melovemingming/nginx 需要注意,上传的镜像格式必须为 用户名/镜像名 查看docker hub 可以看到docker镜像的上传可以看到docker镜像已经上传

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

CentOS 7.2 下安装配置Node.js和Yarn

安装node.js 简单的说 Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。 首先更新源node.js的yum源这里我们安装最新V8.x版本 # curl --silent --location https://rpm.nodesource.com/setup_8.x | bash - yum安装node.js # yum install -y nodejs 使用npm国内阿里源 # npm config set registry=https://registry.npm.taobao.org 查看node.js版本 # node -v 安装node.js版本管理器n # npm install -g n 版本管理 // 安装指定版本 # n <version> // 安装稳定版本 # n stable // 安装最新版本 # n latest // 删除某个版本 # n rm <version> // 查看所有版本 # n list 安装yarn Yarn是由Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具 ,正如官方文档中写的,Yarn 是为了弥补 npm 的一些缺陷而出现的。 使用shell脚本安装yarn # curl -o- -L https://yarnpkg.com/install.sh | bash 配置使用yarn国内的源 # yarn config set registry https://registry.npm.taobao.org

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

OpenTSDB 2.3+及TCollector 1.3+安装配置排错

其实不太想用opentsdb,一直以来用influxdb+grafana挺方便的,而且tsdb依赖hbase,虽说容量和速度有保证,但是分布式系统对于一个监控平台来说,终归还是有些重了,出问题定位更繁琐,但领导说用那就用吧。 在这里必须吐一下OpenTSDB和Tcollector的文档更新,太落后,看官方文档根本找不到配置文件的位置。最后还得看源码,尤其是TCollector,这个tsdb官方推出的数据采集器。不光文档落后,除了核心,周边辅助的代码也落后。而且插件方式设计的各种数据收集器太奇葩了,运行不了就狂报错。 安装tsdb还是比较方便的,找一台hbase的regionserver直接rpm就可以。主要是搞了tcollector以后排错,不过问题主要是在tcollector上,不赖tsdb。 不过tsdb装完以后,需要自己运行一个脚本叫create_table.sh来在hbase里创建tsdb需要的表。这块坑了我几分钟,安装官方文档的说法,创建表格时采用何种压缩方式并不重要,然后运行脚本,半个小时表都没创建起来,脚本默认会采用LZO方式选择压缩,就是建不起来,必须在命令行写env COMPRESSION='NONE' ... 才可以。不过我这集群是支持lzo的啊。不过跟tcollector相比,这就不算事。 tsdb的配置也算简单,就不细说了。 tcollector是opentsdb官方推出的数据采集器,符合个人开源风格,文档长期不更新。参看官方文档硬是找不到在哪配置能访问opentsdb,文档写的文件根本在代码里不存在,只能翻源码。 tcollector安装也不复杂,自带一个rpm的打包Makefile,直接make rpm就可以打包成rpm,然后放到repo里面yum安装即可,主要问题是安装以后跑起来没数据。 那就开始排错吧,首先确定opentsdb能不能接收到数据。停掉tsdb,用 nc -l 4242 启动一个TCP Server,监听在原tsdb的端口上,然后启动tcollector,nc接收到一个version,然后就没了。好吧,去看tcollector的源码。 #weusetheversioncommandasitisveryloweffortfortheTSD #torespond LOG.debug('verifyingourTSDconnectionisalive') try: self.tsd.sendall('version\n') exceptsocket.error,msg: self.tsd=None self.blacklist_connection() returnFalse 嗯,version其实是相当于发送一个ping命令,如果没有响应,就把服务器放到黑名单里。我不明白,往单一服务器发送的程序,要黑名单干什么。 继续nc -l,收到version给个响应。 收到version以后,直接在nc控制台里打2,随便给个响应就行,立刻数据就上来了。好吧,tcollector发送数据其实没问题,那问题一定是在tsdb这边了。 打开tsdb的日志,没有任何报错。 打开 /etc/opentsdb/logback.xml 将日志等级从INFO提升为DEBUG,opentsdb采用slf4j作为日志记录。 <rootlevel="DEBUG"> <!--<appender-refref="STDOUT"/>--> <appender-refref="CYCLIC"/> <appender-refref="FILE"/> </root> 重启tsdb,再去看日志,来了。 16:58:27.470 DEBUG [PutDataPointRpc.execute] - put: unknown metric: No such name for 'metrics': 'tcollector.reader.lines_collected' 说hbase的tsdb表里没有metrics这个列名,翻看官方文档,有个配置叫 tsd.core.auto_create_metrics = true 默认是false,设置成true以后重启tsdb,数据进入hbase,没有问题了。 不过数据进到hbase里面又出现一个问题,没有cpu的度量信息,看源码得知cpu信息在collector里面的sysload.py里面,不过翻看Makefile打包出来的rpm,里面不包含这个文件。没办法,接着回去看tcollector的Makefile和rpm的spec文件,顺手修复了一下centos6下的bug。 Makefile倒是没看出什么问题,几个选项,all, rpm, clean, distclean, swix,分别对应 make all, make rpm, make clean等,那应该就是在spec文件里面了。 果然,spec文件的第一个问题是rpm调用的python被硬指向了python 2.7,而centos6里面是没有2.7的,顺手改之。 %globalpy2_sitelib/usr/lib/python2.6/site-packages 第二个问题,安装的插件指向的是具体文件。 %filescollectors %{tcollectordir}/collectors/0/dfstat.py %{tcollectordir}/collectors/0/ifstat.py %{tcollectordir}/collectors/0/iostat.py %{tcollectordir}/collectors/0/netstat.py %{tcollectordir}/collectors/0/procnettcp.py %{tcollectordir}/collectors/0/procstats.py %{tcollectordir}/collectors/0/smart_stats.py 所以结果是这几个文件才会被打包到rpm,这明显是主要代码更新了,而周边辅助的代码没更新导致的。 不过改成 * 是不优雅的,因为有些新增的插件因为调用依赖问题,启动后会一直报错,所以,需要根据具体需求来执行都安装哪些插件,所以,从这一点上说,这部分代码的产品化程度还远远不够,最起码要做出插件判断啊,缺少依赖就别运行了。 更新了spec,重新打包,需要的数据就都进入hbase了。 而tcollector的配置是最大的槽点,放到最后压轴来说,根据官方文档,理应有一个startstop脚本,将上报服务器配置为opentsdb的服务器,结果源码里死都找不到这个startstop脚本。然后通过阅读源码得知,他娘的核心配置文件是放在插件文件夹里的,这思路,简直是灾难啊。在 tcollector/collectors/etc/config.py里面,其实并不复杂,但是比较烦人。 defaults={ 'verbose':False, 'no_tcollector_stats':False, 'evictinterval':6000, 'dedupinterval':300, 'deduponlyzero':False, 'allowed_inactivity_time':600, 'dryrun':False, 'maxtags':8, 'max_bytes':64*1024*1024, 'http_password':False, 'reconnectinterval':0, 'http_username':False, 'port':4242, 'pidfile':'/var/run/tcollector.pid', 'http':False, 'http_api_path':"api/put", 'tags':[], 'remove_inactive_collectors':False, 'host':'to.your.opentsdb.server', 'backup_count':1, 'logfile':'/var/log/tcollector.log', 'cdir':default_cdir, 'ssl':False, 'stdin':False, 'daemonize':False, 'hosts':False } 嗯,这是我目前逛街发现的最坑的有公司维护的开源代码了,设计出这个代码结构的工程师应该拉出去枪毙半小时。浪费我2小时宝贵的撸码时间装这破玩意。 然后,我发现我司有一台服务器上面是有tcollector的代码的,文件创建时间是15年,那会我还没来,说明其实我司早就调研过这个,但是一直没搞起来可能,这东西没多难,但是文档确实坑人。 感觉产品设计,从来就不是互联网码农的强项,快速开发实现功能就行了,从不考虑产品化工程化代码结构优化的问题。 最后,领导愿意看用gnuplot画的图我也就不说什么了。我还是把opentsdb作为数据源接入到grafana里面,用那个看更漂亮一点。

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

手把手教你安装配置Openfire服务器

1. 登陆Openfire官网,下载最新版本的Openfire,目前最新版本为3.9.3. http://www.igniterealtime.org/downloads/index.jsp#openfire openfire提供了windows版本的两种安装包,我下载的是exe安装包。 2. 安装Openfire,一路next下去即可,傻瓜式安装就是好。安装完成后,启动Openfire服务器。 3. 启动Openfire成功后,选择“Launch Admin”,启动Openfire控制台,第一次进入Openfire控制台,需要配置服务器。 4. 设置Openfire服务器语言为简体中文,继续“continue”。 5. 配置服务器域名,本机或局域网使用的话,“域”配置为机器名,localhost,127.0.0.1何局域网的IP地址都是可以的。 如果是局域网或外网访问的话,“域”应配置为外网IP地址。 6. 配置数据库。配置为“嵌入的数据库”,对于学习的目的来说,这种方式简便实用。 7. 特性配置。默认的方式即可。 8. 配置管理员账户。电子邮件配置可省略这一步。新密码和确认密码设置为“admin”。 9. 安装完成。 10. 使用“admin/admin”登陆到控制器。 11. 登陆成功后,会显示如下所示的界面。这时可以通过Spark、jwchat等链接该地址进行IM聊天。 至此,Openfire服务器安装成功。接下来,将介绍安装Spark客户端,并使用Spark客户端进行聊天。 本文转自 genuinecx 51CTO博客,原文链接:http://blog.51cto.com/favccxx/1618995,如需转载请自行联系原作者

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

CentOS 6.6 上使用 luci/ricci 安装配置 RHCS 集群

1.配置 RHCS 集群的前提: 时间同步 名称解析,这里使用修改/etc/hosts 文件 配置好 yum 源,CentOS 6 的默认的就行 关闭防火墙(或者开放集群所需通信端口),和selinux, 关闭 NetworkManager 服务 2. RHCS 所需要的主要软件包为cman和 rgmanager cman: 是集群基础信息层,在 CentOS 6中依赖 corosync rgmanager: 是集群资源管理器, 类似于pacemaker 的功能 luci: 提供了管理 rhcs 集群的 web 界面, luci 管理集群主要是通过跟 ricci 通信来完成的。 ricci: 安装在集群的节点的接收来自 luci 管理请求的代理。 luci 跟 ricci 的关系就好像 ambari-server 跟 ambari-agent 一样。 3.环境说明: luci:192.168.6.31cent1.test.com ricci:192.168.6.32cent2.test.com ricci:192.168.6.33cent3.test.com ricci:192.168.6.34cent4.test.com 我这里已经配好了主机名了,但是其他的如时间同步,配置/etc/hosts/ 等都没执行,为了方便,所以写了个 playbook 来进行初始化一下 --- -hosts:hdpservers remote_user:root vars: tasks: -name:addsynctimecron cron:name='synctime'minute='*/5'job='/usr/sbin/ntpdate192.168.6.31' -name:shutdowniptables service:name=`item`.`name`state=`item`.`state`enabled=`item`.`enabled` with_items: -{name:iptables,state:stopped,enabled:no} -{name:NetworkManager,state:stopped,enabled:no} tags:stopservice -name:copyselinuxconffile copy:src=`item`.`src`dest=`item`.`dest`owner=`item`.`owner`group=`item`.`group`mode=`item`.`mode` with_items: -{src:'/etc/selinux/config',dest:/etc/selinux/config,owner:root,group:root,mode:'0644'} -{src:'/etc/hosts',dest:/etc/hosts,owner:root,group:root,mode:'0644'} -name:cmdoffselinux shell:setenforce0 执行这个 playbook,进行初始化 [root@cent1yaml]#ansible-playbookbase.yml 4.在 cent1 上安装 luci, luci 是一个 python 程序,依赖很多python包 [root@cent1~]#yuminstallluci 启动 luci [root@cent3~]#/etc/init.d/lucistart Addingfollowingauto-detectedhostIDs(IPaddresses/domainnames),correspondingto`cent3'address,totheconfigurationofself-managedcertificate`/var/lib/luci/etc/cacert.config'(youcanchangethembyediting`/var/lib/luci/etc/cacert.config',removingthegeneratedcertificate`/var/lib/luci/certs/host.pem'andrestartingluci): (nonesuitablefound,youcanstilldoitmanuallyasmentionedabove) Generatinga2048bitRSAprivatekey writingnewprivatekeyto'/var/lib/luci/certs/host.pem' 正在启动saslauthd:[确定] Startluci...[确定] Pointyourwebbrowsertohttps://cent1.hfln.com:8084(orequivalent)toaccessluci 现在可以在前台登录luci 了,看清是 https 哦 账号密码就是这台主机的账号和密码 登录成功啦,现在来配置 rhcs 的集群,这个只是用来管理集群的,真正的集群还没开始装呢。 5.在 cnet2, cent3, cent4 中安装 ricci, ricci 也依赖很多软件,这里使用 ansible 直接在三个节点上装, 当然我已经配好了 cent1 到 其他节点的免密钥登录了 [root@cent1~]#ansiblerhcs-myum-a"name=ricci" 装好ricci 之后还要在 node 节点上给 ricci 用户设置密码,ricci用户就是运行 ricci进程的用户,这个密码一会要用,这里就简单粗暴了,这个密码还可以用 ccs命令来进行设置 [root@cent1~]#ansiblerhcs-mshell-a"echo'123456'|passwd--stdinricci" 启动 ricci [root@cent1~]#ansiblerhcs-mservice-a"name=riccistate=startedenabled=yes" [root@cent2~]#ss-tunlp|grepricci tcpLISTEN05:::11111:::*users:(("ricci",3237,3)) ricci 监听在 11111 端口,像这种操作当然也是可以写到 playbook 当中的 6. 现在可以在web 界面上配置集群了,比如创建/添加/删除一个集群,管理node, resource, fence device, servicegroups, Failover Domains 等等集群的全生命周期都可以在这里完成。 这里演示一个关于 web服务的高可用服务 Manage Clusters--> Create 是创建一个集群 这个界面还算简单吧; Create Cluster 之后,那么就开始尝试安装集群软件了. 在任意一个node上可以看到 ricci 的工作进程: [root@cent2~]#psaux|grepricci ricci34530.10.42136644400?S<s17:180:00ricci-uricci ricci34890.00.1549121908?S<s17:220:00/usr/libexec/ricci/ricci-worker-f/var/lib/ricci/queue/1500004777 root34900.20.5485525136?S17:220:00ricci-modrpm root35670.00.0103252880pts/0S+17:240:00grepricci /var/lib/ricci/queue/目录下存放的是 luci 发给 ricci 的任务文件,是 XML 格式的 [root@cent2~]#file/var/lib/ricci/queue/1500004777 /var/lib/ricci/queue/1500004777:XMLdocumenttext 7. 安装成功了 可以点任何一个node 进去看看 如果这底下的服务没启动的话,可以尝试手动起一下,一般来说是OK的。 8.添加资源 这里没有 fence 设备,不关注这个,添加两个公共资源,并添加一个服务,然后来启动服务 Resources -->Add : 添加一个资源 添加一个虚拟IP,这里的 mask 要写成上面这样,不能写成 255.255.255.0 这种,否则会导致无法添加IP rgmanagerStartingstoppedserviceservice:web1 rgmanagerstartonip"192.168.6.100/255.255.255.0"returned1(genericerror) rgmanager#68:Failedtostartservice:web1;returnvalue:1 再添加一个script资源 9.添加 Service 这里的资源是共公的,假如这个集群内有多个服务,那么都可以使用这些资源,也可以在 Service Groups 里添加一个私有的资源。 现在添加一个Service: Service Groups--> Add : 添加一个 Service, Add Resource 将刚才建立的两个资源添加进来; 现在在集群的节点上用命令查看一下,集群内的任何节点都可以 [root@cent3~]#clustat ClusterStatusforha1@SunJan817:47:402017 MemberStatus:Quorate MemberNameIDStatus -------------------- cent2.test.com1Online,rgmanager cent3.test.com2Online,Local,rgmanager cent4.test.com3Online,rgmanager ServiceNameOwner(Last)State --------------------------- service:web1cent2.test.comstarted 在 cent2 上 ip 和httpd 服务都已经起来了 [root@cent2~]#ipa 1:lo:<LOOPBACK,UP,LOWER_UP>mtu65536qdiscnoqueuestateUNKNOWN link/loopback00:00:00:00:00:00brd00:00:00:00:00:00 inet127.0.0.1/8scopehostlo inet6::1/128scopehost valid_lftforeverpreferred_lftforever 2:eth0:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscpfifo_faststateUPqlen1000 link/ether00:0c:29:91:b3:11brdff:ff:ff:ff:ff:ff inet192.168.6.32/24brd192.168.6.255scopeglobaleth0 inet192.168.6.100/24scopeglobalsecondaryeth0 inet6fe80::20c:29ff:fe91:b311/64scopelink valid_lftforeverpreferred_lftforever [root@cent2~]#netstat-tunlp|grep80 tcp00:::80:::*LISTEN34901/httpd 10.测试故障转移: 关于 rhcs 中 service 的健康状态检测, 可以通过 /var/log/cluster/rgmanager.log 日志来查看 Jan0818:56:59rgmanager[ip]Checking192.168.6.100/24,Level10 Jan0818:56:59rgmanager[ip]192.168.6.100/24presentoneth0 Jan0818:56:59rgmanager[ip]Linkforeth0:Detected Jan0818:56:59rgmanager[ip]Linkdetectedoneth0 Jan0818:56:59rgmanager[ip]Localpingto192.168.6.100succeeded 这里可以看到他会尝试查看和 ping 192.168.6.100 ,这是针对 IP 资源的检测方式 Jan0818:55:49rgmanager[script]Executing/etc/rc.d/init.d/httpdstatus 上面是 script 资源的检测方式则是仅仅去用脚本来执行 status 参数。 在我尝试将/etc/init.d/httpd/ stop 后,日志出现了如下: Jan0818:56:59rgmanager[script]Executing/etc/rc.d/init.d/httpdstatus Jan0818:56:59rgmanager[script]script:http1:statusof/etc/rc.d/init.d/httpdfailed(returned3) #这里发现检测失败了 Jan0818:56:59rgmanagerstatusonscript"http1"returned1(genericerror) Jan0818:56:59rgmanagerStoppingserviceservice:web1 Jan0818:56:59rgmanager[script]Executing/etc/rc.d/init.d/httpdstop Jan0818:56:59rgmanager[ip]RemovingIPv4address192.168.6.100/24frometh0 #以上几步在这个节点停止了web1服务 Jan0818:57:09rgmanagerServiceservice:web1isrecovering Jan0818:57:14rgmanagerServiceservice:web1isnowrunningonmember2 #将web1服务在member2上恢复了,member2也就是cent3.test.com 查看转移后的集群状态: [root@cent3~]#clustat ClusterStatusforha1@SunJan820:25:262017 MemberStatus:Quorate MemberNameIDStatus -------------------- cent2.test.com1Online,rgmanager cent3.test.com2Online,Local,rgmanager cent4.test.com3Online,rgmanager ServiceNameOwner(Last)State --------------------------- service:web1cent3.test.comstarted 如果这种 script 的资源不符合你的需求,那么可以尝试 apache 资源。即使你认为这种 script 的资源检查方式过于简单,也可以在脚本里添加功能来达到你的目的。 11.尝试关闭节点,查看 Service 转移情况: 在关掉 cent3 之后,service 转移到了 cent4上 [root@cent2~]#clustat ClusterStatusforha1@SunJan820:35:422017 MemberStatus:Quorate MemberNameIDStatus -------------------- cent2.test.com1Online,Local,rgmanager cent3.test.com2Offline cent4.test.com3Online,rgmanager ServiceNameOwner(Last)State --------------------------- service:web1cent4.test.comstarted 接着关掉了 cent4,Service 又转移到了 cent2 [root@cent2~]#clustat ClusterStatusforha1@SunJan820:36:272017 MemberStatus:Quorate MemberNameIDStatus -------------------- cent2.test.com1Online,Local,rgmanager cent3.test.com2Offline cent4.test.com3Online ServiceNameOwner(Last)State --------------------------- service:web1cent2.test.comstarted 这里的 cent4.test.com 仍然显示 Online 是因为正在关机当中,尚未真正关闭。 过了几秒,弹出了以下提示信息: [root@cent2~]# Messagefromsyslogd@cent2atJan820:36:42... rgmanager[5685]:#1:QuorumDissolved 日志里显示: Jan0820:35:01rgmanagerMember2shuttingdown Jan0820:36:18rgmanagerMember3shuttingdown Jan0820:36:18rgmanagerStartingstoppedserviceservice:web1 Jan0820:36:18rgmanager[ip]Linkforeth0:Detected Jan0820:36:19rgmanager[ip]AddingIPv4address192.168.6.100/24toeth0 Jan0820:36:19rgmanager[ip]Pingingaddr192.168.6.100fromdeveth0 Jan0820:36:21rgmanager[ip]SendinggratuitousARP:192.168.6.10000:0c:29:91:b3:11brdff:ff:ff:ff:ff:ff Jan0820:36:22rgmanager[script]Executing/etc/rc.d/init.d/httpdstart Jan0820:36:22rgmanagerServiceservice:web1started Jan0820:36:42rgmanager#1:QuorumDissolved Messagefromsyslogd@cent2atJan820:36:42... rgmanager[5685]:#1:QuorumDissolved Jan0820:36:42rgmanager[script]Executing/etc/rc.d/init.d/httpdstop Jan0820:36:42rgmanager[ip]RemovingIPv4address192.168.6.100/24frometh0 服务停止了,这是因为 法定票数不足的原因 [root@cent2~]#clustat Servicestatesunavailable:Operationrequiresquorum ClusterStatusforha1@SunJan820:37:002017 MemberStatus:Inquorate MemberNameIDStatus -------------------- cent2.test.com1Online,Local cent3.test.com2Offline cent4.test.com3Offline

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

Apache Spark 1.6 Hadoop 2.6 Mac下单机安装配

一、 下载资料 1. JDK 1.6 + 2. Scala 2.10.4 3. Hadoop 2.6.4 4. Spark 1.6 二、预先安装 1. 安装JDK 2.安装Scala 2.10.4 解压安装包即可 3. 配置sshd ssh-keygen-tdsa-P''-f~/.ssh/id_dsa cat~/.ssh/id_dsa.pub>>~/.ssh/authorized_keys mac 启动sshd sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist 查看启动 sudo launchctl list | grep ssh 输出-0com.openssh.sshd 表示启动成功 停止sshd服务 sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist 三、安装Hadoop 1. 创建Hadoop文件系统目录 mkdir -pv hadoop/workspace cd hadoop/workspace mkdir tmp mkdir -pv hdfs/data mkdir -pv hdfs/name 添加hadoop目录环境变量 vi ~/.bashrc HADOOP_HOME=/Users/ysisl/app/hadoop/hadoop-2.6.4 配置hadoop,都在$HADOOP_HOME/etc/hadoop 下 1. core-site.xml <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> <description>HDFS URI</description> </property> <property> <name>hadoop.tmp.dir</name> <value>/Users/ysisl/app/hadoop/workspace/tmp</value> <description>namenode temp dir</description> </property> </configuration> 2.hdfs-site.xml <configuration> <property> <name>dfs.name.dir</name> <value>/Users/ysisl/app/hadoop/workspace/hdfs/name</value> <description>namenode上存储hdfs名字空间元数据</description> </property> <property> <name>dfs.data.dir</name> <value>/Users/ysisl/app/hadoop/workspace/hdfs/data</value> <description>datanode上数据块的物理存储位置</description> </property> <property> <name>dfs.replication</name> <value>1</value> <description>副本个数,配置默认是3,应小于datanode机器数量</description> </property> </configuration> 3. copy mapred-site.xml.template to mapred-site.xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> 4. yarn-site.xml <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>localhost:8099</value> </property> </configuration> 5. 格式化HDFS文件系统 $HADOOP_HOME/bin/hdfs namenode -format 6. 进入sbin/ 执行 start-all.sh 7. 执行jps 查看是否正常启动 21472 30256 Jps 29793 DataNode 29970 SecondaryNameNode 29638 NameNode 30070 ResourceManager 30231 NodeManager 8. 打开http://localhost:50070/explorer.html 网页查看hadoop目录结构,说明安装成功 四、安装Spark 1. 解压spark压缩包 tar xvzf spark.1.6.tar.gz 2. 加入环境变量 vi ~/.bashrc SCALA_HOME=/Users/ysisl/app/spark/scala-2.10.4 SPARK_HOME=/Users/ysisl/app/spark/spark-1.6.1-bin-hadoop2.6 2. 设置配置文件 cd spar-1.6.1-bin-hadoop2.6/conf cp spark-env.sh.template spark-env.sh vi spar-env.sh 添加如下内容 export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home export SCALA_HOME=/Users/ysisl/app/spark/scala-2.10.4 export HADOOP_CONF_DIR=/Users/ysisl/app/hadoop/hadoop-2.6.4/etc/hadoop export SPARK_MASTER_IP=localhost export SPARK_WORKER_CORES=2 export SPARK_WORKER_MEMORY=2g cp slaves.template slaves 默认slaves现在就主机一台 3. 启动 sbin/start-all.sh jps 查看到多出一个Master,worker进程 21472 29793 DataNode 29970 SecondaryNameNode 30275 Master 30468 SparkSubmit 29638 NameNode 30070 ResourceManager 30231 NodeManager 30407 Worker 30586 Jps 4. 配置scala 、spark 、 hadoop 环境变量加入PATH ,方便执行 vi ~/.bashrc export HADOOP_HOME=/Users/ysisl/app/hadoop/hadoop-2.6.4 export SCALA_HOME=/Users/ysisl/app/spark/scala-2.10.4 export SPARK_HOME=/Users/ysisl/app/spark/spark-1.6.1-bin-hadoop2.6 export PATH="${HADOOP_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:$PATH" 五. 测试运行 1. 准备一个csv文件,路径 /Users/ysisl/app/hadoop/test.csv 2. 查看DFS文件系统结构, 执行 hadoop fs -lsr / 3. 新建目录 , hadoop fs -mkdir /test 4. 上传文件到目录, hadoop fs -put /Users/ysisl/app/hadoop/test.csv /test/ 5.hadoop fs -lsr / 查看已创建的目录文件 6. 执行 spark-shell scala >valfile=sc.textFile("hdfs:/test/test.csv") scala >valcount=file.flatMap(line=>line.split("")).map(word=>(word,1)).reduceByKey(_+_) scala >count.collect 7. 查看执行状态 a. localhost:8080 ,查看spark 集群运行情况。 此端口一般与其他端口冲突 在spark-env.sh 中加入export SPARK_MASTER_WEBUI_PORT=98080 来指定 b.http://localhost:4040/jobs/,查看 spark task job运行情况 c.http://localhost:50070/hadoop集群运行情况

资源下载

更多资源
Mario

Mario

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

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册