首页 文章 精选 留言 我的

精选列表

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

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集群运行情况

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

ZooKeeper分布式入门实战(一)-基本安装配置等

1.1 zookeeper 简介 中间件,提供协调服务 作用于分布式系统,发挥其优势,可以为大数据服务 支持 Java, 提供 Java 和 C语言的客户端 API 1.2 什么是分布式系统 很多台计算机组成一个整体,一个整体一致对外并且处理同一请求 内部的每台计算机都可以相互通信(REST/RPC) 客户端到服务端的一次请求到响应结束会经历多台计算机 1.3 分布式系统的瓶颈 1.3.1 zookeeper 的特性 一致性 数据一致性,数据按照顺序分批入库 原子性 事务要么成功要么失败,不会局部化 单一视图 客户端连接集群中的任一 zk 节点,数据都是一致的 可靠性 每次对 zk的操作状态都会保存在服务端 实时性 客户端可以读取到 zk 服务端的最新数据 21 安装 JDK 2.2 zookeeper下载、安装以及配置环境变量 2.2.1 单机 zookeeper 安装 linux etc/profile

资源下载

更多资源
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文件系统,支持十年生命周期更新。

用户登录
用户注册