草庐IT

CDH5部署三部曲之一:准备工作

程序员欣宸 2023-03-28 原文

欢迎访问我的GitHub

这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos

系列介绍

  • 《CDH5部署三部曲》共三篇文章,对CDH5.7.2版本的准备、部署、启动、设置等环节进行实战,内容如下:

  • 第一篇:《准备工作》,即CDH集群中每一台机器都要做的操作;

  • 第二篇:《部署和设置》,本章完成CDH集群部署和启动;

  • 第三篇:《问题总结》,列出实战中遇到的问题及解决办法;

版本信息

  1. CentOS:7.6.1810
  2. Python: 2.7.5(操作系统自带)
  3. CM包:cloudera-manager-centos7-cm5.7.2_x86_64.tar.gz

服务器规划

  • 本次搭建的CDH集群一共用到三台机器,一台master,另外两台是agent:
主机名 IP地址 内存 身份
master 192.168.133.152 双核4G内存 管理节点
worker1 192.168.133.153 双核8G内存 任务节点
worker2 192.168.133.154 双核16G内存 任务节点

文件下载

  • cm下载地址: http://archive.cloudera.com/cm5/cm/5/ ,找到自己需要的cm包下载,本次实战用的是 cloudera-manager-centos7-cm5.7.2_x86_64.tar.gz ,如下图红框:
  • parcel下载地址: http://archive.cloudera.com/cdh5/parcels ,本次实战用到的是 CDH-5.7.2-1.cdh5.7.2.p0.18-el7.parcel ,请下载下图红框中的三个文件,注意一共要下载三个文件:

所有机器都要做的相同操作

  • 以下操作需要master、worker1、worker2各自做一遍:
  • 本次实战在所有机器上的操作,都使用root账号;
  • 确保所有机器都可以用SSH工具远程登录;
  • 安装时间同步工具:
yum install -y ntpdate
  • 时间同步:
ntpdate cn.ntp.org.cn
  • 关闭和禁用防火墙:
systemctl stop firewalld && systemctl disable firewalld
  • 关闭SELINUX:打开文件 /etc/selinux/config ,找到 SELINUX=xxx 那一行,改为 SELINUX=disabled ,如下图红框:
  • 关闭swap:打开文件 /etc/fstab ,找到带有 swap 的那一行,注释掉,如下图红框:
  • 重启电脑;
  • 新建文件夹 /usr/lib/jvm
  • 安装JDK,我这里下载的是 jdk-8u191-linux-x64.tar.gz ,解压后是个名为 jdk1.8.0_191 的文件夹,将此文件夹放在 /usr/lib/jvm 目录下;
  • 打开文件 /etc/profile ,在尾部增加以下内容:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_191 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
  • 使配置生效:
source /etc/profile
  • CDH默认的JDK目录是 /usr/java/default ,因此要创建软链接,执行以下命令:
mkdir /usr/java && ln -s /usr/lib/jvm/jdk1.8.0_191 /usr/java/default
  • 检查Python是否可用,如果没有还请自行安装,本次用到的是2.6或者2.7版本:
  • 安装多个依赖包:
yum -y install chkconfig bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb
  • 创建目录:
mkdir /opt/cloudera-manager
  • 把前面准备好的文件 cloudera-manager-centos7-cm5.7.2_x86_64.tar.gz 上传到 master ,执行以下命令将该文件解压到 /opt/cloudera-manager 目录:
tar -zxvf cloudera-manager-centos7-cm5.7.2_x86_64.tar.gz -C /opt/cloudera-manager/
  • 创建账号 cloudera-scm
useradd --system --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
  • 编辑文件 config.ini
vi /opt/cloudera-manager/cm-5.7.2/etc/cloudera-scm-agent/config.ini
  • 修改 server_host 的值,改为 master ,如下图红框所示:
  • 新建目录 /usr/share/java/ ,将刚才下载的 mysql-connector-java-5.1.34.jar 放入该目录,并改名为 mysql-connector-java.jar

三台电脑相互免密码登录设置

  • 三台电脑的/etc/hosts文件,都增加以下相同内容:
192.168.133.154 master 192.168.133.155 worker1 192.168.133.156 worker2
  • 三台电脑都执行命令: ssh-keygen 然后四个回车完成ssh公私钥创建;

  • 在master执行 ssh-copy-id root@worker1ssh-copy-id root@worker2

  • 在worker1执行 ssh-copy-id root@masterssh-copy-id root@worker2

  • 在worker2执行 ssh-copy-id root@masterssh-copy-id root@worker1

  • 至此,准备工作全部完成,请确保所有机器都做了上述操作,下一篇会用这些机器来完成部署。

欢迎关注51CTO博客:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...

有关CDH5部署三部曲之一:准备工作的更多相关文章

  1. ruby-on-rails - 由于 "wkhtmltopdf",PDFKIT 显然无法正常工作 - 2

    我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-

  2. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  3. ruby - 无法让 RSpec 工作—— 'require' : cannot load such file - 2

    我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳

  4. ruby-on-rails - rspec should have_select ('cars' , :options => ['volvo' , 'saab' ] 不工作 - 2

    关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion在首页我有:汽车:VolvoSaabMercedesAudistatic_pages_spec.rb中的测试代码:it"shouldhavetherightselect"dovisithome_pathit{shouldhave_select('cars',:options=>['volvo','saab','mercedes','audi'])}end响应是rspec./spec/request

  5. ruby-on-rails - s3_direct_upload 在生产服务器中不工作 - 2

    在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo

  6. ruby-on-rails - 每次我尝试部署时,我都会得到 - (gcloud.preview.app.deploy) 错误响应 : [4] DEADLINE_EXCEEDED - 2

    我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie

  7. ruby - JetBrains RubyMine 3.2.4 调试器不工作 - 2

    使用Ruby1.9.2运行IDE提示说需要gemruby​​-debug-base19x并提供安装它。但是,在尝试安装它时会显示消息Failedtoinstallgems.Followinggemswerenotinstalled:C:/ProgramFiles(x86)/JetBrains/RubyMine3.2.4/rb/gems/ruby-debug-base19x-0.11.30.pre2.gem:Errorinstallingruby-debug-base19x-0.11.30.pre2.gem:The'linecache19'nativegemrequiresinstall

  8. ruby-on-rails - Ruby on Rails 可以部署在 Azure 网站上吗? - 2

    我可以在Azure网站上部署RubyonRails吗? 最佳答案 还没有。目前仅支持.NET和PHP。 关于ruby-on-rails-RubyonRails可以部署在Azure网站上吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12964010/

  9. ruby - `rescue $!` 是如何工作的? - 2

    我知道全局变量$!包含最新的异常对象,但我对下面的语法感到困惑。谁能帮助我理解以下语法?rescue$! 最佳答案 此构造可防止异常停止您的程序并使堆栈跟踪冒泡。它还会将该异常作为值返回,这很有用。a=get_me_datarescue$!在此行之后,a将保存请求的数据或异常。然后您可以分析该异常并采取相应措施。defget_me_dataraise'Nodataforyou'enda=get_me_datarescue$!puts"Executioncarrieson"pa#>>Executioncarrieson#>>#更现实的

  10. jenkins部署1--jenkins+gitee持续集成 - 2

    前置步骤我们都操作完了,这篇开始介绍jenkins的集成。话不多说,看操作1、登录进入jenkins后会让你选择安装插件,选择第一个默认的就行。安装完成后设置账号密码,重新登录。2、配置JDK和Git都需要执行路径,所以需要先把执行路径找到,先进入服务器的docker容器,2.1JDK的路径root@69eef9ee86cf:/usr/bin#echo$JAVA_HOME/usr/local/openjdk-82.2Git的路径root@69eef9ee86cf:/#whichgit/usr/bin/git3、先配置JDK和Git。点击:ManageJenkins>>GlobalToolCon

随机推荐