利用cloudera manager搭建Hadoop集群
前期准备:
1.我这里用了三台虚拟机,.默认已经配置好静态IP和IP域名映射,它们相互之间可以ping通
第一台:192.168.174.131 hadoopNumber01.medal.com
第二台:192.168.174.132 hadoopNumber02.meda.com
第三台:192.168.174.133 hadoopNumber03.medal.com
2.虚拟机一定不可以上网,因为我们后面用的是离线方式安装
一、搭建前的系统设置
1.将三台虚拟机切换到root用户,禁用IPv6
命令是:#echo "alias net-pf-10 off" >> /etc/modprobe.d/dist.conf
#echo "alias ipv6 off" >> /etc/modprobe.d/dist.conf
2.配置普通用户的sudo权限
命令是:#chmod u+w /etc/sudoers
#vi /etc/sudoers
在第一行加上:用户名 ALL=(root)NOPASSWD:ALL
因为我是以xunzhang这个用户登录的,所以我加上xunzhang ALL=(root)NOPASSWD:ALL
#chmod u-w /etc/sudoers
3.关闭防火墙
命令是:$sudo service iptables stop
$sudo chkconfig iptables off
4.禁用selinux
命令是:$sudo vi /etc/sysconfig/selinux
修改内容:SELINUX= disabled
5.卸载JdK
命令是:$sudo rpm -qa | grep java
$sudo rpm -e --nodeps xxx yyy zzz
6.设置文件打开数量和用户最大进程数
命令是:$sudo vi /etc/security/limits.conf
加上内容:
* soft nofiles 65535
* hard nofiles 65535
* soft nproc 32000
* hard nproc 32000
7.设置集群时间同步(ntp)
比如说我现在设置第二台和第三台虚拟机与第一台虚拟机进行时间同步,
1>首先检查第一台虚拟机有没有安装ntp软件,命令是:#rpm -qa | grep ntp,默认系统已经自带了
2>编辑配置文件ntp.conf
命令是:#vi /etc/ntp.conf
去掉一行注释,将#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap,去掉注释,并将其改成192.168.174.0,因为我的ip是在这个网段里面
加上三行注释,将service 0.centos.pool.ntp.ort和service 1.centos.pool.ntp.org还有service 2.centos.pool.ntp.org这三行注释掉
去掉两行注释,将末尾的server 127.127.1.0 #local clock和fudge 127.127.1.0 stratum 10这两行的注释去掉
3>编辑配置文件ntpd
命令是:#vi /etc/sysconfig/ntpd
内容是:# Drop root to id 'ntp:ntp' by default.
SYNC_HWCLOCK =yes
OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -g"
4>启动服务
命令是:#service ntpd start
#chkconfig ntpd on
5>在另外两台虚拟机上,写脚本,进行时间的同步
在第二台虚拟机上,切换到root用户,设置同步
命令是:crontab -e
加上如下内容:
0-59/10 * * * * /usr/sbin/ntpdate hadoopNumber01.medal.com
注意:在这里每个*号之间有一个空格,后面这个域名是我第一台主机的主机名
在第三台虚拟机上,也做如第二台虚拟机相同的操作
二、离线搭建
方式一:利用rpm包进行搭建
1、启动本地Apache服务器(系统自带Apache服务器)
命令是:sudo service httpd start
sudo chkconfig httpd on
2.搭建本地源
1>软件下载
cm-5.3.6 bin文件 http://archive.cloudera.com/cm5/installer/5.3.6/cloudera-manager-installer.bin
cm-5.3.6 依赖rpm包 http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.3.6/RPMS/x86_64/
依赖其它包 postgresq-libs和repo-libs
2>安装cm-5.3.6
命令:cd /var/www/html
sudo mkdir -p cm5/redhat/6/x86_64/cm/5/RPMS/x86_64/,然后,将上面下载的依赖rpm包,全部放在这个目录下
3>设置域名映射
命令:sudo vi /etc/hosts
加上:192.168.174.131 archive.cloudera.com
4>修改本地源
命令:cd /etc/yum.repos.d
sudo rm -rf ./*
touch cloudera-manager.repo
然后将http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/cloudera-manager.repo里面的内容写入cloudera-manager.reop文件中,并将最后倒数第三行的https修改成http,将倒数第二行改成enable=1,倒数第一行改成gpgcheck=0
完成后,再创建一个名RPM-GPG-KEY-cloudera文件
切换到cm5/redhat/6/x86_64/cm/目录下
执行命令:sudo touch RPM-GPG-KEY-cloudera
并把http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/RPM-GPG-KEY-cloudera里面的内容,写入这个文件中
5>安装依赖包repo-libs
进入postgresq-libs目录下
执行命令:chmod u+x ./*
sudo rpm -ivh ./*
进入repo-libs目录下
执行命令:chmod u+x ./*
sudo rpm -ivh ./*.rpm
安装完成后,切换到/var/www/html/cm5/redhat/6/x86_64/cm/5下
执行命令:sudo createrepo .
3.安装cm-5.3.6
执行:cm-5.3.6 bin文件
切换到cm-5.3.6 bin文件所在的目录
执行命令:
sudo ./cloudera-manager-installer.bin
然后一直下一步,下一步,就安装好了.安装完成后,运行命令:sudo netstat -tnlp,看看7180端口,有没有打开,如果开启了,就可以访问web页面,没有开启,就查看你的cloudera 服务有没有打开,执行命令:sudo service cloudera-scm-server status,如果服务正在运行,等待一会儿就好了
至此,cloudera manager集群搭建完成,接着搭建cdh集群了
4.搭建cdh集群
1> 将cdh的两个文件,放到/opt/cloudera/parcel-repo/目录下
命令:cd /opt/cloudera/parcel-repo/
sudo cp /opt/softwares/cdh-5.3.6 /* ./
2> 修改cloudera-manager.repo文件
命令:cd /etc/yum.repos.d
然后将archive.cloudera.com改成你的主机名
3> 将第2步的cloudera-manager.repo文件,在另外两台虚拟机上也创建出来
第二台虚拟机:
命令:cd /etc/yum.repo.d
sudo rm -rf ./*
sudo touch cloudrea-manager.repo
最后将第一台虚拟机里面cloudera-manager.repo中的内容,复制到这个里面
第三台虚拟机,也做第二台虚拟机相同的操作
4>用浏览器访问你虚拟机的主机名:hadoopNumber01.medal.com:7180,用户名是:admin,密码是:admin,这个是初始的用户名和密码,大家设置好后,可以修改的,选择免费版,继续,继续,然后把这三台虚拟机的主机名或ip,填进去,继续,点击“自定义存储库”,在下面的方框中,输入“https://hadoopNumber01.medal.com/cm5/redhat/6/x86_64/cm/5/”,就是开始我们的cloudera-manager.repo里面的倒数第三行的内容,继续,安装Oracle,继续, 其他用户,xunzhang,输入你的用户密码,同时安装数量为3,继续,然后集群安装,下一步,下一步,最后的你cdh就装好了
5、中间的黄色警告:
1>修改你的hosts文件
2>三台虚拟机都要做
$ sudo sysctl -w vm.swappiness=0
# echo "vm.swappiness=0" >> /etc/sysctl.conf
3>三台虚拟机都要做
# echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
将“echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag” 追加到/etc/rc.local中
方式二:利用tar包进行搭建
0.克隆虚拟机,重新生成mac地址,设置静态ip,命令:
#vi /etc/udev/rules.d/70-persistent-net.rules
#vi /etc/sysconfig/network-scripts/if-cfg-eth0
DEVICE=eth0 |
1.配置ssh面密钥登陆
1>切换到家目录
2>执行ssh-keygen -t rsa ,然后4个回车
3>进入.ssh目录,执行ssh-copy-id 目标主机
2.在所有节点上安装jdk(最好是1.7以上),安装jdk,在这里,我就不赘述了
3.安装mysql(master节点)
4.安装cloudera manager server 和 agent
1>解压tar包,将/opt/software/下的cloudera-manager-el6-cm5.12.0_×86_64.tar.gz解压到/opt/目录下
2>为cloudera manager 5建立数据库
将准备好的mysql-connector-java-5.1.27-bin.jar文件放到/opt/cm-5.12.0/share/cmf/lib/中
在master节点初始化cm5的数据库
命令:
/opt/cm-5.12.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -proot --scm-host localhost scm scm scm
说明:
/opt/cm-5.12.0/share/cmf/schema/scm_prepare_database.sh 这个是固定的
mysql 是指mysql数据库,如果你是oracle,那么这里就是oracle
cm 是创建的数据库名
3>配置Agent
修改/opt/cm-5.12.0/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名master
命令:vi /opt/cm-5.12.0/etc/cloudera-scm-agent/config.ini
#Hostname of the CM server.
server_host=master
注意:这里的master是你的主机名,我的主机名是hadoopNumber01.medal.com,所以是server_host=hadoopNumber01.medal.com
同步Agent到其它节点
命令:
scp -r /opt/cm-5.12.0/ 用户名@主机名:/opt/
4>在所有节点上创建cloudera-scm用户
命令:useradd --system --home=/opt/cm-5.12.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
5>准备Parcels,用以安装CDH5
将CHD5相关的Parcel包放到主节点的/opt/cloudera/parcel-repo/目录中(parcel-repo需要手动创建)。
相关的文件如下:
CDH-5.12.0-1.cdh5.12.0.p0.5-el6.parcel.sha1
CDH-5.12.0-1.cdh5.12.0.p0.5-el6.parcel
manifest.json
后将CDH-5.12.0-1.cdh5.12.0.p0.5-el6.parcel.sha1,重命名为CDH-5.12.0-1.cdh5.12.0.p0.5-el6.parcel.sha1,这点必须注意,否则,系统会重新下载CDH-5.12.0-1.cdh5.12.0.p0.5-el6.parcel.sha文件。
6>执行启动脚本
在master节点上启动服务端
命令:
/opt/cm-5.12.0/etc/init.d/cloudera-scm-server start
在所有节点启动Agent
命令:
/opt/cm-5.12.0/etc/init.d/cloudera-scm-agent start
以上脚本是启动命令,相关停止或重启命令仅需将start变成stop或restart即可。
7>配置cdh集群
Cloudera Manager Server和Agent都启动以后,就可以进行CDH5的安装配置了。
在浏览器打开http://master:7180进入CDH管理界面,由于CM Server的启动需要花点时间,这里可能要等待一会才能访问,默认的用户名和密码均为admin。
选择安装的集群,这里注意只有已启动cloudera-scm-agent的主机才能被CM管理。
选择我们安装需要的Parcel包,这里可以看到我们已准备好的CDH-5.12.0-1.cdh5.12.0.p0.5-el6.parcel包,若没有,就检查相关文件是否正确放入/parcel-repos中,且CDH-5.12.0-1.cdh5.12.0.p0.5-el6.parcel.sha1是否正确重命名。
继续,如果上一步检查配置没问题,这里的第一个进度条应该瞬间完成,CM不需要再向用品下载Parcel,然后等待CM将Parcel分发到各slave节点上并激活。
CM会检测集群很多环境项,此处如果出现这样的警告,是一个默认环境变量的问题,Cloudera建议将/proc/sys/vm/swappiness设置为0,当前设置为 60。在所有节点执行这个命令: # echo 0 > /proc/sys/vm/swappiness,这个命令在方式一中已经说明了
所安装的角色有些需要用到数据库,则在mysql中新建相应数据库即可。进行下一步之前必须测试数据库的连通性,以hive举例:
mysql -h localhost -u root -p
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
设置服务所需的目录结构,若无特殊需求这里也可以保持默认目录结构。
在这之间可能会出现以下错误:
Logon denied for user/password. Able to find the database server and database, but logon request was rejected
解决办法:
登陆进mysql,然后use mysql,设置root授权访问所有的数据库: grant all privileges on *.* to 'root'@'%' identified by '123' with grant option;
刷新:flush privileges;
接下来就等待初始化和启动服务,这里可能会遇到Hive报错的问题,因为我们选择了Mysql作为hive的元数据存储,查看日志知道是Hive初始化Mysql的时候找不到jar文件,将mysql-connector-java-5.1.33-bin.jar拷贝到hive存放jar文件的目录重试即可。
cp /opt/cm-5.12.0/share/cmf/lib/mysql-connector-java-5.1.27-bin.jar /opt/cloudera/parcels/CDH-5.12.0-1.cdh5.12.0.p0.12/lib/hive/lib/
安装spark完成后,运行bin/spark-shell,也许会出现以下错误:
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.fs.FSDataInputStream
解决办法:
进入/opt/cloudera/parcels/CDH/etc/spark/conf.dist目录下,编辑spark-env.sh文件,加入export SPARK_DIST_CLASSPATH=$(hadoop classpath),然后保存退出
如果服务都启动成功,这个集群已安装上所需要的Hadoop服务,整个部署过程结束。
转载于:https://www.cnblogs.com/medal-li/p/7458984.html
利用cloudera manager搭建Hadoop集群相关推荐
- 使用Cloudera Manager搭建zookeeper集群及HDFS HA实战篇
使用Cloudera Manager搭建zookeeper集群及HDFS HA实战篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.使用Cloudera Manager搭建zo ...
- 利用云服务器搭建hadoop集群
利用云服务器搭建hadoop集群 测试连接 一. Linux配置 二. 3台服务器免密码登录 1. 三台机器生成公钥与私钥: 2. 拷贝公钥到同一台机器 3. 复制第一台机器的认证到其他机器 4. 通 ...
- 搭建Hadoop集群(超详细版)
用三台云服务器搭建hadoop完全分布式集群 硬件准备 集群配置 集群规划 Hadoop.Zookeeper.Java.CentOS版本 基础环境配置 关闭防火墙 修改主机名 主机映射 时间同步 查看 ...
- 利用闲置电脑安装虚拟机搭建hadoop集群
文章目录 前言 一.虚拟机环境的准备 二.连接虚拟机上的集群 1.整理需要连接的端口 2.配置VMware上虚拟机的端口转发 3.测试连接 总结 前言 本人刚开始学习大数据,记录自己的一些学习笔记.大 ...
- 阿里云 ECS 服务器上如何搭建 Hadoop 集群详细步骤图解
1.前言 在讲述Hadoop集群搭建之前,首先要了解Hadoop和集群两个名词,Hadoop是由Apache基金会开发的分布式系统基础架构,简单理解就是大数据技术应用的基础.集群可以理解为多台装有ha ...
- hadoop搭建_阿里云搭建Hadoop集群
1 前言 在讲述Hadoop集群搭建之前,首先要了解Hadoop和集群两个名词,Hadoop是由Apache基金会开发的分布式系统基础架构,简单理解就是大数据技术应用的基础.集群可以理解为多台装有ha ...
- 三台Ubuntu虚拟机搭建 Hadoop集群 (第一次搭)
最近因为要搭Hadoop集群,确实花了好大的心血在里面,因为我的Linux也是前两天速成的,好多东西都还是边查资料边搭.但我最终确实成功了,留了一点点小问题在里面.(当Hadoop集群start-al ...
- 环境搭建-Hadoop集群搭建
环境搭建-Hadoop集群搭建 写在前面,前面我们快速搭建好了centos的集群环境,接下来,我们就来开始hadoop的集群的搭建工作 实验环境 Hadoop版本:CDH 5.7.0 这里,我想说一下 ...
- hadoop集群_Ambari搭建hadoop集群
Ambari搭建hadoop集群 Ambari提供了对Hadoop更加方便快捷的管理功能,主要包含: 通过一步一步的安装向导简化了集群供应. 预先配置好关键的运维指标(metrics),可以直接查看H ...
- 基于OSS存储搭建Hadoop集群
简介 本文以Ubuntu操作系统为例,介绍基于Aliyun OSS的hadoop-3.0.0-beta1的集群环境搭建过程,示例的集群环境包括1个master和2个slave节点(slave1和sla ...
最新文章
- 新兴解决方案增强了电动汽车电源(功耗)管理
- Spring注解标签详解@Autowired @Qualifier等
- C++的三种访问权限的继承
- 问题类像程序员一样思考
- docker 之volume
- SQL查询提速秘诀,避免锁死数据库的数据库代码
- Linux开机启动过程(4):切换到64位模式-长模式(直到内核解压缩之前)
- NuGet学习笔记001---了解使用NuGet给net快速获取引用
- 盘点实际项目应用中的最佳机器学习模型
- java参数传递的乱码问题
- 实现多国语言的Reporting Services项目
- 2.SQL里的聚合函数
- 关于appium的下载安装及环境配置(含nodejs下载安装)
- 安卓设备手柄无法映射线性扳机的解决思路(1)
- TeXLive2021+TeXStudio安装及配置,亲测有效!
- 小学语文生字表3087字(人教版)
- 清华大学计算机系黄子懿,清华大学2014年自主招生名单:(北京市)(一)
- 进入网络安全学习的感想
- 中国参与MOOC 建设的大学有多少所?
- Systemd基础篇:4:对服务启动出现的问题进行debug的方法
热门文章
- R爬虫可视化第五季-图解欧洲足球五大联赛
- Trustdata:《2018年Q1中国移动互联网行业发展分析报告》
- LeetCode 简单等级
- 团队作业:《构建之法》团队学习心得
- mvc:annotation-driven/与mvc:default-servlet-handler/之间的一个问题(转)
- 【优化】如何检测移动端 CPU 以及内存占用率
- JavaScript将JSON转换为字符串
- SQL Server 2008 Service Broker
- echarts Map(地图) 不同颜色区块显示
- 阿里开发者们的第15个感悟:做一款优秀大数据引擎,要找准重点解决的业务场景... 1