首页 文章 精选 留言 我的

精选列表

搜索[伪集群],共10000篇文章
优秀的个人博客,低调大师

基于hadoop2.7集群的Spark2.0,Sqoop1.4.6,Mahout0.12.2完全分布式安装

写在前边的话 hadoop2.7完全分布式安装请参考:点击阅读,继任该篇博客之后,诞生了下面的这一篇博客 基本环境: CentOS 6.5,Hadoop 2.7,Java 1.7 Hive 2.0.0,Zookeeper 3.4.8, Hbase 1.2.2 预安装 Scala 2.11 Spark 2.0 Sqoop 1.4.6 Mahout 0.12.2 一:安装 Scala 2.11.X 下载:点击进入下载 (我使用的是Scala 2.11.8) 1:解压到指定目录,并重命名文件夹 sudo tar -zxvf /home/master/下载/scala-2.11.8.tar.gz -C /opt/ sudo mv scala-2.11.8/ /opt/scala 2:修改环境变量 sudo vim /etc/profile 加入如下代码: #scala export SCALA_HOME=/opt/scala export PATH=$PATH:$SCALA_HOME/bin source /etc/profile 3:每台机器上都部署scala 执行sudo scp -r /opt/scala/ slave1:/opt/scala sudo scp -r /opt/scala/ slave2:/opt/scala 分别在各个节点上修改环境变量即可 4:运行scala 终端直接输入scala即可 二:安装 Spark 2.0 下载:点击进入下载(这里建议不要安装最新版Spark,具体看评论) 1:解压到指定目录,并重命名文件夹 [master@master1 opt]$ sudo tar -zxvf /home/master/下载/spark-2.0.0-bin-hadoop2.7.tgz -C . [master@master1 opt]$ sudo mv spark-2.0.0-bin-hadoop2.7/ spark 2:配置环境变量 sudo vim /etc/profile ,加入 #spark home export SPARK_HOME=/opt/spark export PATH=$SPARK_HOME/bin:$PATH 3:配置spark-env.sh 复制 :sudo cp spark-env.sh.template spark-env.sh 加入以下: export SCALA_HOME=/opt/scala export JAVA_HOME=/opt/java export SPARK_MASTER_IP=192.168.48.130 export SPARK_WORKER_MEMORY=1g export HADOOP_CONF_DIR=/opt/hadoop/etc/hadoop 4:将slaves.template 拷贝到 slaves, 编辑内容为 master1 slave1 slave2 5:将spark目录拷贝到各个节点 sudo scp -r /opt/spark/ slave1:/opt/spark sudo scp -r /opt/spark/ slave2:/opt/spark 并修改各个节点的环境变量 6:启动 spark 启动master:sbin/start-master.sh 启动salve:sbin/start-slaves.sh 如遇到权限不足问题,直接给每台机器上的spark目录赋予 777 的权限即可 7:web界面 http://192.168.48.130:8080/ 8:shell 界面 bin/spark-shell 三:安装 Sqoop 1.4.6 下载:点击进入下载 1:解压到指定目录,并重命名 sudo tar -zxvf /home/master/下载/sqoop-1.4.6.tar.gz -C sudo mv sqoop-1.99.6/ sqoop 2:配置环境变量 sudo vim /etc/profile #sqoop export SQOOP_HOME=/opt/sqoop export PATH = $SQOOP_HOME/bin:$PATH 保存生效:source /etc/profile 3:复制Mysql-jdbc 包到sqoop/lib目录下 sudo cp /home/master/下载/mysql-connector-java-5.1.39-bin.jar /opt/sqoop/lib/ 4:修改bin/configure-sqoop文件 此时如果没有启用hbase,zookeeper等组件,将相应的信息注释,如果启用了,就pass,直接进入下一步 5:sqoop help 查看帮助 四:安装 Mahout 0.12.2 下载:点击进入下载 1:解压到指定目录,并重命名 注意路径问题 [master@master1 opt]$ sudo tar -zxvf /home/master/桌面/apache-mahout-distribution-0.12.0.tar.gz -C . [master@master1 opt]$ sudo mv apache-mahout-distribution-0.12.0/ mahout 2:配置环境变量 sudo vim /etc/profile ,加入以下内容: <span style="font-size:14px;">#mahout home export MAHOUT_HOME=/opt/mahout export PATH=$MAHOUT_HOME/bin:$PATH </span> 保存生效:source /etc/profile 3:启动mahout 进入mahout安装目录,执行:bin/mahout [master@master1 mahout]$ bin/mahout Running on hadoop, using /opt/hadoop/bin/hadoop and HADOOP_CONF_DIR= MAHOUT-JOB: /opt/mahout/mahout-examples-0.12.0-job.jar An example program must be given as the first argument. Valid program names are: 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 五:额外补充 1:出现sudo: command not found时 执行 export PATH=$PATH:/bin:/usr/bin:/usr/local/bin 即可 2:这里我们发现除了spark的分布式安装以外要把安装包拷贝到各个节点之外,sqoop和mahout并不需要,只需要在master主机上部署即可,我的理解是sqoop只是进行数据传输的,数据可以是HDFS上的,也可以是Hive,或者Hbase上的,而本身他们已经是分布式的了,所以这里自然不需要将其拷贝到各个节点,而mahout也一样吧,只要运行在分布式的平台上即可,其所依赖的数据也是在hdfs或者hive上,故也不需要将其拷贝到各个节点 3:那么问题来了,我们是否可以将sqoop或者mahout部署到slave节点上呢?答案是肯定的吧,因为每台机器之间是可以互相通过ssh访问的,sqoop使用时可以直接加上对应的IP地址即可,而mahout就可以直接使用了 大数据全新视频教程,博主亲自整理,点击查看

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

K8s 集群节点在线率达到 99.9% 以上,扩容效率提升 50%,我们做了这 3 个深度改造

点击下载《不一样的 双11 技术:阿里巴巴经济体云原生实践》 本文节选自《不一样的 双11 技术:阿里巴巴经济体云原生实践》一书,点击上方图片即可下载! 作者 | 张振(守辰)阿里云云原生应用平台高级技术专家 导读:2019 年阿里巴巴核心系统 100% 以云原生方式上云,完美地支撑了 双11 大促。这次上云的姿势很不一般,不仅是拥抱了 Kubernetes,而且还以拥抱 Kubernetes 为契机进行了一系列对运维体系的深度改造。 Kubernetes作为云原生的最佳实践,已经成为了事实上的容器编排引擎标准,Kubernetes 在阿里巴巴集团落地主要经历了四个阶段: 研发和探索:2017 年下半年阿里巴巴集团开始尝试使用Kubernetes api 来改造内部自研平台,并开始了对应用交付链路的改造,以适配Kubernetes; 初

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

Linux云计算集群架构师->第八章 Centos8 软件包的管理与安装

2 --> 第八章 Centos8 软件包的管理与安装 (上课时间2021-06-24,笔记整理时间2021-06-26) 本节所讲内容: 8.1 使用 rpm 命令-安装-查看-卸载-rpm 软件包 8.2 yum 管理软件包 8.3 CentOS8 中使用 DNF 管理软件包 8.4 实战 tar 源码包管理-源码包安装方法 8.1 软件包的管理 软件包的类型 rpm 二进制包------>>>>已经使用 GCC 编译后的(二进制已经可以被操作系统直接执行了) tar 源码包----->>>>需要编译(源码包就是你能看懂的,基于字符的,还需要进行编译) RPM 概述:RPM 是 RPM RedHat Package Manager(RPM 软件包管理器)的缩写,这一文件格式名称虽然打上了 RedHat 的标志,但是其原始设计理念是开放式的,现在包括 OpenLinux、SUSE以及 Turbo Linux 等 Linux 的分发版本都有采用,可以算是公认的行业标准了。 kaili apt install name.deb 8.1.1 rpm 软件包的管理 rpm 包的获取方式: 1、Centos 系统镜像光盘 2、网站 rpmfind.net 3、比如安装 mysql、nginx 软件,我们可以去它的官方网站下载:http://nginx.org/en/download.html 4、Centos yum 源上,也有 rpm 可以手动下载: https://www.centos.org/download/ rpm 包格式的说明 例1: [root@Centos83 ~]# ls /mnt/BaseOS/Packages/zsh-5.5.1-6.el8_1.2.x86_64.rpm/mnt/BaseOS/Packages/zsh-5.5.1-6.el8_1.2.x86_64.rpmzsh -5. 5. 1- 6. el8. x86_64.rpm 软件名 主版本号 次版本号 修订 release( ) 操作系统版本 软件包是 64 位包 release(rpm 自身的发布版本号,表示这个 rpm 软件包是第几次编译生成的,与程序源码的发行号无关) 修订指是的第几次修改 bug。 发布指的是:第几次发布。 发布时,可能只是对软件安装的默认参数做了修改,而没有其它改动,就做了一次编译。 el8 redhat8.x/centos8.x x86_64:表示软件包是 64 位 .rpm:.rpm 和.src.rpm,是 rpm 包类型后缀,rpm 是编译好的二进制包,.src.rpm 是源码包 devel:表示这个 rpm 包是软件的开发包 noarch:说明这样的软件包可以在任何平台安装和运行,不需要特定的硬件平台 例2: [root@Centos83 ~]# ls /mnt/BaseOS/Packages/atlas-3.10.3-8.el8.i686.rpm /mnt/BaseOS/Packages/atlas-3.10.3-8.el8.i686.rpm 注:.i686 代表,此包是 32 位操作系统包。 64 位操作系统是可以安装 32 位操作系统的包。 32位操作系统,安装不了 64 位的包。 而且在 centso7 开始,就没有 32 位操作系统。 例3: [root@Centos83 ~]# ls /mnt/AppStream/Packages/zsh-html-5.5.1-6.el8_1.2.noarch.rpm 注:结尾有 noarch,代表此包在 32 位和 64 位操作系统上都可以运行。 这类型包,里面通常是文本文件,如: shell 脚本,html,txt 等。 [root@Centos83 ~]# uname -r #查看内核版本。4.18.0-240.el8.x86_64 #我的内核版本是 4.18.0-240.el8,有 x86_64 就是 64 位操作系统 8.1.2 安装 rpm 软件 RPM 工具使用分为安装、查询、验证、更新、删除等操作 命令格式:rpm [参数] 软件包 参数: -i 是 install 的意思, 安装软件包 -v 显示附加信息,提供更多详细信息 -V 校验,对已经安装的软件进行校验 -h --hash 安装时输出####标记 准备中... ################################# [100%] 互动:rpm 使用时,什么情况下使用软件包全名,什么时候使用软件包名? 全名:在安装和更新升级时候使用 包名:对已经安装过的软件包进行操作时,比如查找已经安装的某个包,卸载包等 ,使用包名。它默认是去目录/var/lib/rpm 下面进行搜索。 当一个 rpm 包安装到系统上之后,安装信息通常会保存在本地的 /var/lib/rpm/目录下。 从本地安装 [root@Centos83 ~]# rpm -ivh /mnt/BaseOS/Packages/lrzsz-0.12.20-43.el8.x86_64.rpmVerifying... ################################# [100%]准备中... ################################# [100%]正在升级/安装... 1:lrzsz-0.12.20-43.el8 ################################# [100%] #本地安装 lrzsz 包,安装后可以使用 rz 和 sz 命令。 8.1.3 rpm 查询功能 用法:rpm -q(query) 常与下面参数组合使用 -a(all) 查询所有已安装的软件包 -f(file)系统文件名(查询系统文件所属哪个软件包),反向查询 -i 显示已经安装的 rpm 软件包信息,后面直接跟包名 -l(list) 查询软件包中文件安装的位置 -p 查询未安装软件包的相关信息,后面要跟软件的命名 -R 查询软件包的依赖性 [root@Centos83 ~]# rpm -q lrzsz # 查询指定的包是否安装lrzsz-0.12.20-43.el8.x86_64[root@Centos83 ~]# rpm -qa # 查询所有已安装包 查看 passwd 文件中包括 bash 的行。 [root@Centos83 ~]# grep bash /etc/passwd # 查看 passwd 文件中包括 bash 的行root:x:0:0:root:/root:/bin/bashyh:x:1000:1000:yh:/home/yh:/bin/bashftpuser:x:2001:2001::/opt/ftp:/bin/bashlenovo:x:0:2002:hell Linux:/home/lenovo:/bin/bashthink:x:2003:2003::/opt/think:/bin/bashthinkplus:x:2004:2004::/home/thinkplus:/bin/bashplume:x:2005:2005::/home/plume:/bin/bashuser:x:2006:2006::/home/user:/bin/bashmark:x:2007:2007::/home/mark:/bin/bash 查询所有已安装包中带 lrzsz 关键字的包 [root@Centos83 ~]# rpm -qa | grep lrzsz # grep 后面加关键字,可以查找文件中的内容。lrzsz-0.12.20-43.el8.x86_64[root@Centos83 ~]# which find # 查看 find 命令的路径/usr/bin/find[root@Centos83 ~]# rpm -qf /usr/bin/find # 查询文件或命令属于哪个安装包 等同于 rpm -qf `which find` 命令findutils-4.6.0-20.el8.x86_64[root@Centos83 ~]# rpm -qf `which find` # 反引号中可以执行 shell 命令findutils-4.6.0-20.el8.x86_64[root@Centos83 ~]# rpm -qi lrzsz # 查看 lrzsz 详细安装信息Name : lrzszVersion : 0.12.20Release : 43.el8Architecture: x86_64Install Date: 2021年06月26日 星期六 19时20分45秒Group : Applications/CommunicationsSize : 194342License : GPLv2+Signature : RSA/SHA256, 2019年07月02日 星期二 07时59分37秒, Key ID 05b555b38483c65dSource RPM : lrzsz-0.12.20-43.el8.src.rpmBuild Date : 2019年05月11日 星期六 22时54分52秒Build Host : x86-02.mbox.centos.orgRelocations : (not relocatable)Packager : CentOS Buildsys <bugs@centos.org>Vendor : CentOSURL : http://www.ohse.de/uwe/software/lrzsz.htmlSummary : The lrz and lsz modem communications programsDescription :Lrzsz (consisting of lrz and lsz) is a cosmetically modifiedzmodem/ymodem/xmodem package built from the public-domain version ofthe rzsz package. Lrzsz was created to provide a working GNUcopylefted Zmodem solution for Linux systems.[root@Centos83 ~]# rpm -qf `which vim` # 查看 vim 命令的路径vim-enhanced-8.0.1763-15.el8.x86_64[root@Centos83 ~]# rpm -qi vim-enhanced # 查看 vim-enhanced 详细安装信息…………………… 查询没有安装的 RPM 包,要加参数: -p rpm -qpi [root@Centos83 ~]# rpm -qpi /mnt/AppStream/Packages/php-mysqlnd-7.2.24-1.module_el8.2.0+313+b04d0a66.x86_64.rpm Name : php-mysqlndVersion : 7.2.24Release : 1.module_el8.2.0+313+b04d0a66Architecture: x86_64Install Date: (not installed)Group : UnspecifiedSize : 451870License : PHPSignature : RSA/SHA256, 2020年05月12日 星期二 22时45分34秒, Key ID 05b555b38483c65dSource RPM : php-7.2.24-1.module_el8.2.0+313+b04d0a66.src.rpmBuild Date : 2020年05月07日 星期四 10时37分08秒Build Host : x86-01.mbox.centos.orgRelocations : (not relocatable)Packager : CentOS Buildsys <bugs@centos.org>Vendor : CentOSURL : http://www.php.net/Summary : A module for PHP applications that use MySQL databases ##php 使用 mysql 数据库的一个模块Description :The php-mysqlnd package contains a dynamic shared object that will addMySQL database support to PHP. MySQL is an object-relational databasemanagement system. PHP is an HTML-embeddable scripting language. Ifyou need MySQL support for PHP applications, you will need to installthis package and the php package.​This package use the MySQL Native Driver​ 查看 rpm 安装后,将生成哪些文件 要加参数: -l(小写l) [root@Centos83 ~]# rpm -qpl /mnt/AppStream/Packages/nginx-1.18.0-2.module_el8.3.0+430+f2605aab.x86_64.rpm /etc/logrotate.d/nginx/etc/nginx/fastcgi.conf/etc/nginx/fastcgi.conf.default/etc/nginx/fastcgi_params/etc/nginx/fastcgi_params.default/etc/nginx/koi-utf/etc/nginx/koi-win/etc/nginx/mime.types/etc/nginx/mime.types.default/etc/nginx/nginx.conf/etc/nginx/nginx.conf.default/etc/nginx/scgi_params/etc/nginx/scgi_params.default/etc/nginx/uwsgi_params/etc/nginx/uwsgi_params.default/etc/nginx/win-utf/usr/bin/nginx-upgrade/usr/lib/.build-id/usr/lib/.build-id/ce/usr/lib/.build-id/ce/9cb6fdae2817d2181753cd4dfb2cfda6146354/usr/lib/systemd/system/nginx.service/usr/lib64/nginx/modules/usr/sbin/nginx/usr/share/doc/nginx/usr/share/doc/nginx/CHANGES/usr/share/doc/nginx/README/usr/share/doc/nginx/README.dynamic/usr/share/licenses/nginx/usr/share/licenses/nginx/LICENSE/usr/share/man/man3/nginx.3pm.gz/usr/share/man/man8/nginx-upgrade.8.gz/usr/share/man/man8/nginx.8.gz/usr/share/nginx/html/404.html/usr/share/nginx/html/50x.html/usr/share/nginx/html/index.html/usr/share/nginx/html/nginx-logo.png/usr/share/nginx/html/poweredby.png/usr/share/vim/vimfiles/ftdetect/nginx.vim/usr/share/vim/vimfiles/indent/nginx.vim/usr/share/vim/vimfiles/syntax/nginx.vim/var/lib/nginx/var/lib/nginx/tmp/var/log/nginx 8.1.4 查看软件包内容是否被修改 rpm -V 包名 rpm -Vf 文件路径 [root@Centos83 ~]# which find # 查看 find 命令的路径/usr/bin/find[root@Centos83 ~]# rpm -qf /usr/bin/find # 查询文件或命令属于哪个安装包findutils-4.6.0-20.el8.x86_64上面两条命令,等价于以下面这条命令:[root@Centos83 ~]# rpm -qf `which find` # rpm -qf + 执行`` 内的命令findutils-4.6.0-20.el8.x86_64 ``这是反引号。 一行命令中,如果有反引号,那么先执行反引号中的命令,把反引号中的命令的输出,作为前面命令输入。 查看每个命令或文件,有没有被修改。 [root@Centos83 ~]# rpm -Vf /usr/bin/find # 参数-Vf 后面加文件的路径,查看每个命令或文件,有没有被修改。[root@Centos83 ~]# echo abcd >> /usr/bin/find [root@Centos83 ~]# rpm -Vf /usr/bin/findS.5....T. /usr/bin/find​ 注:如果出现的是点,表示测试这一项,没有被修改 出现下面的字符代表某测试的失败: 5 — MD5 校验和是否改变,你也看成文件内容是否改变 S — 文件长度,大小是否改变 L — 符号链接,文件路径是否改变 T — 文件修改日期是否改变 D — 设备 U — 用户,文件的属主 G — 用户组 M — 模式 (包含许可和文件类型) ? — 不可读文件 再后面的 c 文件名,它表示的是文件类型 c 配置文件 d 普通文件 g 不该出现的文件,意思就是这个文件不该被这个包所包含 l 授权文件(license file) r 描述文件 -V 后面加软件包的名字,查看这个包安装的所有文件,没有被修改。 [root@Centos83 ~]# rpm -V lrzsz #-V 后面加软件包的名字,查看这个包安装的所有文件,没有被修改。 查看系统中所有的 rpm 包及安装的文件有没有被***修改 [root@Centos83 ~]# rpm -Va > rpm_check.txt #查看系统中所有的 rpm 包及安装的文件有没有被修改并将结果输出到 rpm_check.txt。 注: 检验时参考了 /var/lib/rpm 目录下的 rpm 数据库信息 8.1.5 rpm 包卸载和升级 用法:rpm -e(erase) 包名 [root@Centos83 ~]# rpm -q lrzsz # 查询指定的包是否安装 lrzsz-0.12.20-43.el8.x86_64[root@Centos83 ~]# rpm -e lrzsz # 卸载 lrzsz 包[root@Centos83 ~]# rpm -q lrzsz # 已经找不到 lrzsz 包了,说明卸载成功了未安装软件包 lrzsz #参数: --nodeps 忽略依赖,建议在卸载时不要用 rpm 去卸载有依赖关系的包,应该用 yum升级:[root@Centos83 ~]# rpm -Uvh /mnt/BaseOS/Packages/lrzsz-0.12.20-43.el8.x86_64.rpm #centos8 下安装[root@xuegod63 ~]# rpm -Uvh /mnt/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm #centos7 下升级或安装 lrzsz 包 注意:目录结构不一样。 #因为升级时会有一些依赖包要解决。 所以一般我们使用 yum update 包来升级。 8.1.6 解决 rpm 依赖关系: [root@Centos83 ~]# rpm -ivh /mnt/AppStream/Packages/httpd-tools-2.4.37-30.module_el8.3.0+561+97fdbbcc.x86_64.rpm 我们需要把依赖包安装上,才可以。 [root@Centos83 ~]# rpm -ivh /mnt/AppStream/Packages/httpd-filesystem-2.4.37-30.module_el8.3.0+561+97fdbbcc.noarch.rpm [root@Centos83 ~]# rpm -ivh /mnt/AppStream/Packages/httpd-tools-2.4.37-30.module_el8.3.0+561+97fdbbcc.x86_64.rpm[root@Centos83 ~]# rpm -ivh /mnt/AppStream/Packages/httpd-2.4.37-30.module_el8.3.0+561+97fdbbcc.x86_64.rpm #现在就可以安装成功了。 8.2 YUM 的使用 yum(全称为 Yellow dog Updater Modified)是一个前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件,无须繁琐地一次次下载、安装。 例如我们需要安装一个软件 A,而软件 A 依赖 B,而 B 可能还继续依赖其他软件,通过 yum 我们只需要安装 A,其他依赖包会自动安装。 yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记 YUM:解决依赖关系问题,自动下载软件包,它是基于 C/S 架构C=client S=server、ftp\http\file 8.2.1 配置 yum 源 1、挂载镜像: 先确定虚拟机光驱中有加载系统镜像 [root@Centos83 ~]# mount /dev/cdrom /mnt/ # 挂载光驱mount: /mnt: /dev/sr0 already mounted on /mnt.[root@Centos83 ~]# ls /mnt/AppStream BaseOS EFI images isolinux LICENSE media.repo TRANS.TBL 2、本地配置 yum 源文件: centos8 本地 YUM 源配置: 在 centos8 当中,本地光盘中的安装包被分别放在了两个路径下。假设挂载路径为/mnt,那么两个Package 路径分别为:/mnt/AppStream/Packages 和/mnt/BaseOS/Packages。 因为 IOS 镜像内的设置,所以导致了在编辑本地 yum 源的时候需要分别写两个路径在配置文件中。 同时网络 yum 源也被分别写到了两个配置文件内。所以就需要把两个网络 yum 源配置文件改名。 Centos8 与之前版本不同的是增加了一个 CentOS-Linux-AppStream.repo 文件,CentOS-Linux-AppStream.repo 和 CentOS-Linux-BaseOS.repo文件都需要移除目录或者改名。 BaseOS 类似于原来的软件仓库,主要提供了系统的基础组件,它支持与之前版本兼容AppStream:它提供的是系统以外的应用程序,如 httpd,nginx,php,mariadb-server 等 (1)首先挂载光盘: [root@Centos83 ~]# mount /dev/cdrom /mnt/ # 挂载光驱mount: /mnt: /dev/sr0 already mounted on /mnt. (2)创建一个本地 yum 配置文件 centos8.repo: [root@Centos83 ~]# vim /etc/yum.repos.d/Centos8.repo​[Centos-media-BaseOS]name=CentOS-BaseOS-$releasever - Mediabaseurl=file:///mnt/BaseOSgpgcheck=1enabled=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial​[Centos-media-AppStream]name=CentOS-AppStream-$releasever - Mediabaseurl=file:///mnt/AppStreamgpgcheck=1enabled=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial 添加修改完两个区域后保存退出。 注:如果 gpgcheck=1 ,需要导入 rpm 公钥。方便后期校对 rpm 包。一般情况,写为 0 工作中就写成 1 并导入公钥。这样安全。 (3)移动网络 yum 源配置文件位置: [root@Centos83 ~]# vim /etc/yum.repos.d/Centos8.repo #编辑Centos8.repo文件[root@Centos83 ~]# mkdir /opt/yum #新建/opt/yum目录[root@Centos83 ~]# mv /etc/yum.repos.d/C* /opt/yum #移动yum.repos.d到刚建的目录下[root@Centos83 ~]# yum makecache #新建yum缓存CentOS-BaseOS-8 - Media 23 MB/s | 2.3 MB 00:00 CentOS-AppStream-8 - Media 40 MB/s | 6.2 MB 00:00 元数据缓存已建立。[root@Centos83 ~]# ll /usr/bin/yum lrwxrwxrwx. 1 root root 5 8月 5 2020 /usr/bin/yum -> dnf-3[root@Centos83 ~]# ll /usr/bin/yumlrwxrwxrwx. 1 root root 5 8月 5 2020 /usr/bin/yum -> dnf-3 注:但是我们执行的 yum 命令是一个软连接,它被链接到了 dnf-3 命令上。 使用 DNF 来管理软件包,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面内容。 3、网络 yum 源 Centos 使用阿里网络源: https://developer.aliyun.com/mirror/centos [root@Centos83 ~]# wget -O /etc/yum.repos.d/Centos-8.repo http://mirrors.aliyun.com/repo/Centos-8.repo #下载阿里网络源 安装 Centos epel 扩展 yum 源。 注:epel 源是对 Centos 系统中自带的 base 源的扩展。(因为不是所有软件包都放在 base 源里) [root@Centos83 ~]# yum -y install epel-release # 安装 epel 源[root@Centos83 ~]# ls /etc/yum.repos.d/epel.repo # 这就是安装的 epel 源阿里 epel 源地址:https://developer.aliyun.com/mirror/epel 8.2.2 yum 使用 yum 常用操作: [root@Centos83 ~]# yum -y install httpd #安装软件包, -y 直接安装不提示[root@Centos83 ~]# yum update #升级软件包,改变软件设置和系统设置,系统版本内核都升级。[root@Centos83 ~]# yum upgrade #只升级软件包,不改变软件设置和系统设置,系统版本升级,内核不改变。工作中推荐使用这种升级方式。[root@Centos83 ~]# yum info httpd #查询 rpm 包作用 [root@Centos83 ~]# yum provides /usr/bin/find #查看命令是哪个软件包安装的 [root@Centos83 ~]# yum -y remove httpd #卸载包[root@Centos83 ~]# yum search httpd #在软件包的包名和详细描述信息中搜索包括指定字符串的软件包[root@Centos83 ~]# yum search httpd [root@Centos83 ~]# yum search lrzsz ………… yum 报错,注意的几个小问题: 1、确定光盘是否链接,光盘是否挂载 2、配置文件中格式是否正确,字母,符号有没有少写,挂载点和配置文件中设置的是否一致 3、网络源需要联网,操作和 RPM 类似,只是会自动安装依赖项。 8.2.3 yum 安装开发工具软件包组 [root@Centos83 ~]# yum grouplist #查看有哪些软件包组[root@Centos83 ~]# echo $LANG zh_CN.UTF-8 #想显示中文,则执行以一下命令[root@Centos83 ~]# LANG=en.US_UTF-8 #想变成英文,则执行以一下命令 当你最小化安装系统后,在源码编译安装软件包时,觉得很需要安装很多依赖包,很痛苦,可以先安装好这个 Development tools 开发工具软件包组。 [root@Centos83 ~]# yum groupinstall 'Development tools' #安装开发工具软件包组。 8.3 CentOS8 中使用 DNF 管理软件包 DNF:Dandified YUM,是基于 RPM 的 Linux 发行版的软件包管理器。它用于在 Fedora / RHEL / CentOS 操作系统中安装,更新和删除软件包。 它是 Fedora 22,CentOS8 和 RHEL8 的默认软件包管理器。 DNF 是 YUM 的下一代版本,并打算在基于 RPM 的系统中替代 YUM。 DNF 功能强大且具有健壮的特征。DNF 使维护软件包组变得容易,并且能够自动解决依赖性问题。 Dandified [ˈdændɪfaɪd] 打扮时髦; 打扮得华丽的; 目前 DNF 命令和 YUM 命令相互兼容,软件包仓库依旧使用 YUM 仓库。 已安装软件包 [root@Centos83 ~]# dnf list installed # 查看已安装软件包[root@Centos83 ~]# dnf search httpd # 搜索查找软件包[root@Centos83 ~]# dnf install -y httpd # 安装软件包[root@Centos83 ~]# dnf remove lrzsz # 删除软件包[root@Centos83 ~]# dnf download nginx # 下载软件包[root@Centos83 ~]# dnf info httpd # 查看软件包信息-已安装和未安装都可以[root@Centos83 ~]# dnf check-update # 检查系统中可更新软件包[root@Centos83 ~]# dnf update # 更新所有软件包 或者用 dnf upgrade[root@Centos83 ~]# dnf update httpd # 更新指定软件包[root@Centos83 ~]# dnf grouplist # 列出软件包组 等同于 yum grouplist[root@Centos83 ~]# dnf groupinstall 'Development tools' # 安装软件包组(开发工具包)[root@Centos83 ~]# dnf groupupate 'Development tools' # 更新软件包组(开发工具包) 清空所有缓存 在使用 DNF 的过程中,会因为各种原因在系统中残留各种过时的文件和未完成的编译工程。我们可以使用该命令来删除这些没用的垃圾文件。并且软件仓库中的软件包依赖也会被清空,再次安装软件时则重新下载软件包依赖信息。 [root@Centos83 ~]# dnf clean all # 清空yum缓存 或者[root@Centos83 ~]# yum clean all # 清空yum缓存 或者[root@Centos83 ~]# dnf makecache # 重新创建新的软件包依赖关系[root@Centos83 ~]# yum makecache # 重新创建新的软件包依赖关系[root@Centos83 ~]# yum list # 清空后,列出软件列表时会自动创建新的软件包依赖关系 8.4 实战 tar 源码包管理-源码包安装方法 8.4.1 源码安装 nginx 编译环境如 gcc 和 gcc-c++编译器,make 准备软件 : nginx-1.18.0.tar.gz 部署 Nginx 安装 nginx 源码编译,需要的依赖包: [root@Centos83 ~]# -y install gcc gcc-c++ make zlib-devel pcre pcre-devel openssl-devel # 安装依赖包 软件包说明: gcc c 语言编译器。 gcc-c++ c++ 语言编译器。 make 用于 configure 和 make 编译的工具。 zlib :nginx 提供 gzip 压缩 模块,需要 zlib 库支持。 pcre 包作用是让 nginx 支持正则表达式,地址重写 rewrite openssl-devel :让 nginx 提供 ssl 功能。 开始安装: 源码编译 3 把斧:./configure , make ,make install [root@Centos83 ~]# tar -xvf nginx-1.18.0.tar.gz [root@Centos83 ~]# cd nginx-1.18.0/[root@Centos83 nginx-1.18.0]# ./configure --prefix=/usr/local/nginx [root@Centos83 nginx-1.18.0]# make -j 4[root@Centos83 ~]# make install​ 详解源码安装 3 把斧 配置(configure)、编译(make)、安装(make install) ./configure a. 指定安装路径,例如 --prefix=/usr/local/nginx b. 启用或禁用某项功能, 例如 --enable-ssl,--disable-filter c. 和其它软件关联,例如--with-pcre --with-http_ssl_module d. 检查安装环境,例如是否有编译器 gcc,是否满足软件的依赖需求 最终生成:Makefile make -j 4 #把源代码文件编译成可执行的二进制文件,按 Makefile 文件编译,可以使用-j 4 指定 4 核心 CPU 编译,提升速度 make install #按 Makefile 定义的文件路径安装 make clean //清除上次的 make 命令所产生的 object 和 Makefile 文件。使用场景:当需要重 新配置执行 configure 时,需要先执行 make clean。 [root@Centos83 nginx-1.18.0]# make clean #仅仅清除之前的可执行文件及配置文件[root@Centos83 nginx-1.18.0]# ./configure --prefix=/usr/local/nginx/ ##重新进行配置 8.4.2 删除源码包: 安装完,删除源码包: 有时删除不干净,所以建议大家安装时,在 configure 步骤添加一个: --prefix 参数。这样删除或备份时,直接对删除--prefix 指定的安装目录操作就可以了。 [root@Centos83 nginx-1.18.0]# rm -rf /usr/local/nginx/ #删除安装文件 8.4.3 实战 2:源码编译出错的 5 种完美解决方法 安装则解决依赖:extundelete 0.2.4只支持CentOS6系统,未做试验,以下作为记录 [root@Centos83 ~]# ./configure #检查系统安装环境Configuring extundelete 0.2.4configure: error: Can't find ext2fs library 源码编译出错后,常见解决方法: 方法 1: [root@Centos83 ~]# mount /dev/sr0 /mnt[root@Centos83 Packages]# cd /mnt/BaseOS/Packages[root@Centos83 Packages]# rpm -ivh ext2fs #切到本地软件包所在路径,按两下 tab 键。 一般情况,ext2fs 就是要安装的软件包的名字开头。如果存在会自动补全软件包全名。 方法 2: [root@Centos83 Packages]# ls *ext2fs* 方法 3: [root@Centos83 Packages]# ls *2fs*e2fsprogs-1.45.6-1.el8.x86_64.rpme2fsprogs-devel-1.45.6-1.el8.i686.rpme2fsprogs-devel-1.45.6-1.el8.x86_64.rpme2fsprogs-libs-1.45.6-1.el8.i686.rpme2fsprogs-libs-1.45.6-1.el8.x86_64.rpm 方法 4: 终极大招 https://www.rpmseek.com/index.html 方法 5: 使用 yum 去搜索,推荐使用这个方法 [root@Centos83 Packages]# yum search 2fs 安装库: [root@Centos83 Packages]# cd /mnt/BaseOS/Packages[root@Centos83 Packages]# rpm -ivh e2fsprogs-libs-1.45.6-1.el8.x86_64.rpm Verifying... ################################# [100%]Preparing... ################################# [100%] package e2fsprogs-libs-1.45.6-1.el8.x86_64 is already installed 这里显示库已经安装,但是 configure 时又说找不到。怎么办? 解决:安装了库,却显示找不到。 这种情况: 需要安装库的开发文件 [root@Centos83 Packages]# rpm -ivh e2fsprogs-devel-1.45.6-1.el8.x86_64.rpm devel = development (开发)错误:依赖检测失败:libcom_err-devel(x86-64) = 1.45.6-1.el8 被 e2fsprogs-devel-1.45.6-1.el8.x86_64 需要[root@Centos83 Packages]#[root@Centos83 Packages]# ls libcom_err-devel*[root@xuegod83 Packages]# rpm -ivh libcom_err-devel-1.45.6-1.el8.x86_64.rpm或[root@Centos83 Packages]# yum -y install e2fsprogs-devel.x86_64 扩展:查看 rpm 包安装后生成的文件: [root@Centos83 Packages]# rpm -qpl e2fsprogs-devel-1.45.6-1.el8.x86_64.rpm more/usr/include/e2p/usr/include/e2p/e2p.h/usr/include/ext2fs/usr/include/ext2fs/bitops.h/usr/include/ext2fs/ext2_err.h/usr/include/ext2fs/ext2_ext_attr.h/usr/include/ext2fs/ext2_fs.h/usr/include/ext2fs/ext2_io.h/usr/include/ext2fs/ext2_types-x86_64.h/usr/include/ext2fs/ext2_types.h/usr/include/ext2fs/ext2fs.h/usr/include/ext2fs/ext3_extents.h/usr/include/ext2fs/hashmap.h/usr/include/ext2fs/qcow2.h/usr/include/ext2fs/tdb.h/usr/lib64/libe2p.so/usr/lib64/libext2fs.so/usr/lib64/pkgconfig/e2p.pc/usr/lib64/pkgconfig/ext2fs.pc/usr/share/info/libext2fs.info.gzerror: open of more failed: No such file or directory​ 总结,软件安装方法特点: rpm+yum:方便,软件版本低。稳定性好、管理方便。性能稍差。 源码编译安装:麻烦,软件版本新,可以定制。稳定性稍差、管理稍差。性能好。 源码编译安装:主要是安装 LAMP 或 LNMP 架构时,我们会用 总结: 8.1 使用 rpm 命令-安装-查看-卸载-rpm 软件包 8.2 yum 管理软件包 8.3 CentOS8 中使用 DNF 管理软件包 8.4 实战 tar 源码包管理-源码包安装方法

资源下载

更多资源
Nacos

Nacos

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

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

Sublime Text

Sublime Text

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

用户登录
用户注册