丰富的线上&线下活动,深入探索云世界
做任务,得社区积分和周边
最真实的开发者用云体验
让每位学生受益于普惠算力
让创作激发创新
资深技术专家手把手带教
遇见技术追梦人
技术交流,直击现场
海量开发者使用工具、手册,免费下载
极速、全面、稳定、安全的开源镜像
开发手册、白皮书、案例集等实战精华
为开发者定制的Chrome浏览器插件
【本文转载自:www.bigdata-star.com】
在搭建CM之前。。本人也是纯人工的把hadoop生态圈常用组件自己集成了一遍。。途中遇到各种坑,比如版本不匹配导致的一系列问题。。但自己尝试一下是好的!因为手把手的纯命令行的搭建可以让你更了解它们!但是到了企业中是不可能这样滴,因为有诸多的劣势,试问如果一个集群有1000个节点,你怎么去人工搭?如果要全部升级,你又怎么人工处理?还有前面说的,版本不匹配问题各种坑。所以还是要用图形化的,管理性强的工具,比如CM。
CM功能强大,主要表现在几个方面:
搭建CM平台大致可以分为六部曲:
[root@localhost~]#vim/etc/sysconfig/network-scripts/ifcfg-eno16777728
TYPE=EthernetNAME=eno16777728DEVICE=eno16777728ONBOOT=yesBOOTPROTO=staticIPADDR=192.168.109.140NETMASK=255.255.255.0GATEWAY=192.168.109.2[root@localhost~]#vim/etc/sysconfig/network
NETWORKING=yesHOSTNAME=cm-master[root@localhost~]#vim/etc/hosts
127.0.0.1localhostlocalhost.localdomainlocalhost4localhost4.localdomain4::1localhostlocalhost.localdomainlocalhost6localhost6.localdomain6192.168.109.141cm-slave1192.168.109.142cm-slave2192.168.109.140cm-master注意不要手贱把前两行删掉!很多软件是直接找localhost。
[root@localhost~]#vim/etc/resolv.conf
searchlocaldomainnameserver192.168.109.2nameserver8.8.8.8网络配置已经完成,重启网络服务[root@localhost~]#servicenetworkrestart
[root@cm-master~]#servicefirewalldstatusRedirectingto/bin/systemctlstatusfirewalld.service●firewalld.service-firewalld-dynamicfirewalldaemonLoaded:loaded(/usr/lib/systemd/system/firewalld.service;enabled;vendorpreset:enabled)Active:active(running)sinceSat2018-03-3101:17:17PDT;37minagoMainPID:766(firewalld)CGroup:/system.slice/firewalld.service
└─766/usr/bin/python-Es/usr/sbin/firewalld--nofork--nopid通过查看防火墙状态,我们看到它是active状态的,得把它禁用了:[root@cm-master~]#systemctlstopfirewalld.service[root@cm-master~]#systemctldisablefirewalld.servicestop只是暂时停用,disable设置开启
这东西太麻烦了,对很多权限严格控制,导致无法正常运行的情况。[root@cm-master~]#vim/etc/selinux/config
SELINUX=disabled时钟同步master机器上配置:[root@cm-master/]#servicentpdstartRedirectingto/bin/systemctlstartntpd.service[root@cm-master/]#vim/etc/ntp.conf
0-59/10****/usr/sbin/ntpdatecm-master免密登陆[root@cm-master/]#ssh-keygen[root@cm-master/]#ssh-copy-id192.168.109.141[root@cm-master/]#ssh-copy-id192.168.109.142
java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64[root@cm-masterusr]#rpm-e--nodepsjava-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64[root@cm-masterusr]#rpm-e--nodepsjava-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64[root@cm-masterusr]#rpm-e--nodepsjava-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64[root@cm-masterusr]#rpm-e--nodepsjava-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64
[root@cm-masterusr]#mkdir/usr/java/将下载好的javatar包通过工具传输到此目录下,解压[root@cm-masterjava]#tar-zxvfjdk-7u80-linux-x64.tar.gz
exportJAVA_HOME=/usr/java/jdk1.7.0_80exportPATH=$JAVA_HOME/bin:$PATHexportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar[root@cm-masterusr]#source/etc/profile
javaversion"1.7.0_80"Java(TM)SERuntimeEnvironment(build1.7.0_80-b15)JavaHotSpot(TM)64-BitServerVM(build24.80-b11,mixedmode)
其实CM默认使用的是PostgreSQL但是大部分企业还是使用mysql作为存储数据库。而且大部分人都比较熟悉Mysql。所以我们也使用Mysql。
[root@cm-master~]#rpm-qa|grepmariadbmariadb-libs-5.5.44-2.el7.centos.x86_64[root@cm-master~]#rpm-e--nodepsmariadb-libs-5.5.44-2.el7.centos.x86_64
[root@cm-mastermysql]#rpm-ivhmysql-community-common-5.7.21-1.el7.x86_64.rpm[root@cm-mastermysql]#rpm-ivhmysql-community-libs-5.7.21-1.el7.x86_64.rpm[root@cm-mastermysql]#rpm-ivhmysql-community-client-5.7.21-1.el7.x86_64.rpm[root@cm-mastermysql]#rpm-ivhmysql-community-server-5.7.21-1.el7.x86_64.rpm[root@cm-mastermysql]#rpm-ivhmysql-community-devel-5.7.21-1.el7.x86_64.rpm[root@cm-mastermysql]#rpm-ivhmysql-community-libs-compat-5.7.21-1.el7.x86_64.rpm
[root@cm-mastermysql]#/usr/sbin/mysqld--initialize-insecure启动mysql[root@cm-mastermysql]#/usr/sbin/mysqld--user=root&[1]37255进入mysql[root@cm-mastermysql]#mysql-uroot进入mysql之后依次执行如下操作(根据自己需求,比如假设你不需要oozie你就不要创建oozie数据库)
vim/etc/yum.repos.d/cloudera-manager.repo
[root@cm-masterlocal]#cd/etc/cloudera-scm-server/[root@cm-mastercloudera-scm-server]#lsdb.propertieslog4j.properties[root@cm-mastercloudera-scm-server]#vimdb.properties
com.cloudera.cmf.db.type=mysql#Thedatabasehost#Ifanonstandardportisneeded,use'hostname:port'com.cloudera.cmf.db.host=192.168.109.140:3306#Thedatabasenamecom.cloudera.cmf.db.name=cmf#Thedatabaseusercom.cloudera.cmf.db.user=cmf#Thedatabaseuser'spasswordcom.cloudera.cmf.db.password=123456添加Mysql的驱动包到/usr/share/java目录下[root@cm-masterx86_64]#cd/usr/share/java将下载好的驱动包放入此目录[root@cm-masterjava]#lsjline.jarjs.jarmysql-connector-java-5.1.42-bin.jarrhino-examples.jarrhino.jartagsoup.jar[root@cm-masterjava]#mvmysql-connector-java-5.1.42-bin.jarmysql-connector-java.jar注意:一定要改名为mysql-connector-java!!!
[root@cm-masterjava]#servicecloudera-scm-serverstart实时查看日志是否有报错[root@cm-masterjava]#cd/var/log/cloudera-scm-server/[root@cm-masterjava]#tail-Fcloudera-scm-server.log
[root@cm-master/]#sysctl-wvm.swappiness=0vm.swappiness=0[root@cm-master/]#echo"vm.swappiness=0">>/etc/sysctl.conf[root@cm-master/]#echonever>/sys/kernel/mm/transparent_hugepage/defrag[root@cm-master/]#echonever>>/etc/rc.local
本人第一次按照CM的时候遇到很多坑,而且当时都无解,百度Google也搜不到,网上很多博客,但是都没有说的很详细,也没有把需要注意的问题重点强调,所以我写了这篇博客,非常详细,把可能会遇到的坑重点强调,比如jdk1.7.0_80如果你改成jdk或者别的名字就会报错,再比如mysql的驱动包一定要是mysql-connector-java.jar这个名字,等等。请务必按照我的步骤完全照做,版本、目录、文件名都要保持一致,这样才能杜绝遇到莫名其妙的坑。另外,遇到问题也没有关系!查看日志!!!查看日志!!!查看日志!!!重要的事情说三遍。