Cloudera Manager、CDH零基础入门、线路指导
http://www.aboutyun.com/thread-9219-1-1.html
(出处: about云开发)php
问题导读:
1.什么是cloudera CM 、CDH?
2.CDH、CM有哪些版本?
3.CDH、CM有哪些安装方式?
4.CDH如何开发?
<ignore_js_op>
咱们知道cloudera CDH 是为简化hadoop的安装,也对对hadoop作了一些封装。那么咱们就像尝试学习cloudera。
cloudera本质hadoop的封装,那么学起来,应该不难。不就是下载下来,而后自动安装,最后管理hadoop生态系统的一些服务。
的确是这样的,可是也没有咱们想象的那么简单。
基础知识
那么咱们就开始第一步吧,第一步以前,那就是你的基础,这个是很关键的,若是不会使用Linux,那么你须要看一下另一篇文章:零基础学习hadoop到上手工做线路指导(初级篇)。能够看看Linux的基础知识模块。须要掌握的内容仍是很多的:
html
集群搭建:主机宽带拨号上网,虚拟机使用桥接模式,该如何ping通外网
集群搭建必备:虚拟机之一实现Host-only方式上网
集群搭建必备:nat模式设置静态ip,达到上网与主机相互通讯
云技术基础:学习hadoop使用零基础linux(Ubuntu)笔记
搭建集群必知:Linux经常使用命令及修改文件总结(不断更新)
Linux网络接口ifconfig命令及认识网络接口lo
linux入门详细介绍
虚拟机安装linux网络配置资料大全
解决遇到Linux网络配置,从熟悉网络配置文件入手(大致了解便可)
linux入门大全:包括零基础入门,Linux详细介绍
Linux重启方式init 0 init1 init 3 init 5 init 6 这几个启动级别都表明什么意思?
Ubuntu经常使用命令总结及修改DNS的多种方法总结
Linux关机各类关机命令总结
Linux基础必懂:eth0,eth1,eth2,lo是什么意思?
Linux掌握了,那么咱们是否须要掌握虚拟机的基础知识,在搭建hadoop集群中,能够这些是必须掌握的,那么cloudera是否须要,也是须要的,这里就不在罗列了,详细参考零基础学习hadoop到上手工做线路指导(初级篇)。可是cloudera CM的安装比起hadoop集群的安装对硬件的要求更高。内存至少10G,为何会这么多,若是少于10G是否能够,答案是能够的,可是后面你会遇到各类问题,或许都找不到答案。
对于cloudera-scm-server就须要至少4G的内存,cloudera-scm-agent的内存至少也须要1.5G以上。那么若是你的机器是8G的,仍是很吃力的。
在安装的过程当中,后面有不少的服务安装遇到问题的可能性是很大的。
什么是CDH
hadoop是一个开源项目,因此不少公司在这个基础进行商业化,Cloudera对hadoop作了相应的改变。
Cloudera公司的发行版,咱们将该版本称为CDH。
不少新手问的最多的问题是,哪一个是收费的,那个是免费的。
Cloudera Express版本是免费的
Cloudera Enterprise是须要购买注册码的
更多内容:
Cloudera Hadoop什么是CDH及CDH版本介绍
CDH(Cloudera)与hadoop(apache)对比
大数据架构师基础:hadoop家族,Cloudera产品系列等各类技术
官网介绍
<ignore_js_op>
当咱们学习的时候,咱们该如何学习,有两种方式:第一种:先理论,后实践
第二种:先实践,后理论
上面两种方式各有各的场合,若是你要去面试、考试、搞理论思想类,第一种方式是没有问题的。由于这些都是停留在思想层面的。
对于一个编程技术人员来说,本人以为第二种方式更加的短平快。
上面两种方式都有些绝对,最佳的方式就是实践与理论相结合。
这里撰文一下,引用孔子的一句话java
学而不思则罔 思而不学则殆
只看书,不实践,或则只倒腾部署、停留在某些问题得不到解决,可是又不去看书、百度、谷歌查找解决问题,这样也是不行的。
好了,开始咱们的官网:
官网是咱们学习标准,因此咱们首先要记住官网地址:
主页:
http://www.cloudera.com/content/cloudera/en/home.html
进入官网咱们能够作些什么事情:
1.提供API
2.查看部署文档
3.下载安装包
那么咱们如何查找API,如何查找部署文档,如何下载安装包?
详细能够查看
cloudera(CDH)官网介绍:安装包、离线包该如何下载、官方文档等介绍
安装包下载:
同时附上各个版本包的地址:
Cloudera文档汇总
http://www.cloudera.com/content/support/en/documentation.html
CDH四、CDH5包汇总
http://archive.cloudera.com/cdh4/
http://archive.cloudera.com/cdh5/
CM四、CM5包汇总
http://archive.cloudera.com/cm4/
http://archive.cloudera.com/cm5/
官网CDH5下载
http://www.cloudera.com/content/ ... /cdh/cdh-5-1-0.html
之前版本地址:
CDH1~CDH3
http://archive-primary.cloudera.com/cdh/
当咱们看到安装的时候,同时也困扰着咱们,咱们该选择哪一个安装包。
首先须要介绍下CM(Cloudera Manager)及CDH的安装方式:
CM(Cloudera Manager)有三种安装方式:
1.第一种使用cloudera-manager-installer.bin安装
这种安装方式,只要从官网下载cloudera-manager-installer.bin,而后执行这个bin文件,剩下的就是等待下载和安装。可是这个时间不是通常的长,最好吃个饭,睡个觉,最后看到还在安装过程当中。此帖安装步骤及遇到问题记录很详细,可参考
Cloudera Manager5及CDH5在线(cloudera-manager-installer.bin)安装详细文档
Cloudera Manager5及CDH5安装指导(终极在线安装)
遇到的问题:
当咱们安装完毕CM,那么咱们就要添加主机,主机添加完毕,咱们会看到安装进度:
<ignore_js_op>
可是并非每一个人都能看到上面进度,而是看到下面错误:python
Detecting Cloudera Manager Server...
Detecting Cloudera Manager Server...
BEGIN host -t PTR 192.168.1.198
198.1.168.192.in-addr.arpa domain name pointer localhost.
END (0)
using localhost as scm server hostname
BEGIN which python
/usr/bin/python
END (0)
BEGIN python -c 'import socket; import sys; s = socket.socket(socket.AF_INET); s.settimeout(5.0); s.connect((sys.argv[1], int(sys.argv[2]))); s.close();' localhost 7182
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "<string>", line 1, in connect
socket.error: [Errno 111] Connection refused
END (1)
could not contact scm server at localhost:7182, giving up
waiting for rollback request
上面错误该如何解决:
可使用下面方法解决:mysql
2.第二种使用rpm、yum、apt-get方式在线安装
这种安装方式,在网上看的有点眼花缭乱,多是由于咱们对yum、apt、rpm了解的很少形成的,对于Linux基础缺少的,能够参考:yum与rpm、apt的区别:rpm的缺陷及yum的优点,总的来讲:因为rpm依赖关系很差,因此产生了yum,而yum和apt则都是Linux的包管理工具,而且解决了包与包的依赖关系。
这里列出一些安装文档
ubuntu 12.04 安装 Cloudera Manager5及CDH5(Mysql)【添加yum源方式安装集群】
遇到问题1:内存太小
使用yum安装由于mysql的配置至少须要对Cloudera server 4G的内存,不然mysql的重启过程当中,就会遇到unknown instance.
遇到问题2:界面没法访问
界面没法访问,分为两种状况
一种是Cloudera-manager-server没有彻底起来
当咱们运行下面命令:
<ignore_js_op>
若是如今,输入url,访问web,可能会是没法访问
host/ip:7180,我这里是172.16.77.60:7180
<ignore_js_op>
大概须要等10分钟左右,界面就能够访问了。
<ignore_js_op>
一种则是权限问题
因此咱们初次安装尽可能使用root.还有咱们须要会看日志。
Linux日志的位置:
下面为server日志
<ignore_js_op>
下面为agent日志
<ignore_js_op>
同时在咱们安装服务的过程当中,咱们还须要会查看角色日志,这样从web界面就是能够看到,由于在咱们安装过程当中,服务的安装没有那么顺利。
这里暂时没有截图,咱们只要记住角色日志,在界面中找到便可。
遇到问题3:没法找到cloudera agent客户端
咱们使用下面命令安装了agentlinux
固然还有不少其它须要安装,当咱们的agent安装成功后,为何咱们的的界面中不能发现agent.
原本咱们有三台,可是却只有一台,并且是cloudera server本地的agent
这是由于咱们的在安装的过程当中,agent都指向了本地localhost.
咱们打开配置文件web
修改
server_host为server ip地址
server_port为7180
下图CDH即为cloudera server的hostname
修改完毕:
首先重启Agent
sudo service cloudera-scm-agent restart
而后重启server
sudo service cloudera-scm-server restart
这时候会发现已经生效。
更详细内容能够参考
记录cloudera Manager安装Cloudera-Scm-Agent如何指向Cloudera-Scm-Server
更多文档能够参考:
Cloudera Manager 和 CDH 4 终极安装(一)
ClouderaManager以及CHD5.1.0集群部署安装
Cloudera Manager (centos)离线安装详细介绍
CM五、CDH5安装(CDH5半自动离线安装)
Cloudera Manager 5 和 CDH5 本地(离线)安装指南
Cloudera Manager 和 CDH5 本地(离线)安装指导
3.第三种使用是Tarballs的方式
这种方式网上资料不多
安装的命令以下:面试
这个跟hadoop的安装方式是同样的
安装的方法详细可参考:
spring
这里在列出官网给出的三种安装方式:sql
若是想安装CM,此次再次强调必定要有足够的内存。而且咱们安装完毕CM,通常会
4.安装失败处理
上面若是咱们安装失败该如何处理:使用 cloudera-manager-installer.bin(Parcles)安装失败后卸载cloudera
卸载 Cloudera Manager 5.1.x.和 相关软件【官网翻译:高可用】
5.目录结构:
因为咱们大多采用在线安装的方式,因此出血,咱们根本不知道cloudera安装在了什么位置,详细能够参考下面内容
解析Cloudera Manager内部结构、功能包括配置文件、目录位置等
亦可参考下面帖子:
卸载 Cloudera Manager 5.1.x.和 相关软件【官网翻译:高可用】
CDH安装方式:
Yum/Apt包,Tar包,RPM包,CM安装
这些包的下载,能够在上文安装包汇总中能够找到。
CDH1~CDH3
http://archive-primary.cloudera.com/cdh/
CDH4~CDH5
http://archive.cloudera.com/cdh4/
http://archive.cloudera.com/cdh5/
安装文档,下面能够参考
Linux(ubuntu12.04)单节点伪分布安装CDH5.1.X及提交wordcount到yarn高可靠文档
各个版本Linux单节点伪分布安装CDH5.1.X及提交wordcount到yarn高可靠文档
Hadoop CDH5 手动安装伪分布式模式
经过CM方式安装,大多在安装CM的时候,已经安装了CDH。
CDH开发
安装完毕,咱们还想开发提到开发,咱们就想到eclipse插件,其实咱们在开发过程当中,插件做用就是帮助咱们可以方便的看到在Linux的文件。
因此开发方式也有两种,
一种插件开发
咱们如何找到eclipse插件,能够参考
cloudera CDH(5)开发方式及CDH eclipse插件编译总结
一种是无插件开发
无插件开发,也就是直接添加开发包
能够参考:hadoop开发方式总结及操做指导
先总结到此,但愿你们有所收获。
有的同窗反映写的不够细,这里在补充一些内容:
Cloudera Manager Server启动后又挂掉的缘由总结
咱们安装CDH的时候,会碰到cloudera server启动后又挂掉了,这是什么缘由?
查看日志:包下面问题
但是明明已经安装jdk,而且已经设置了JAVA_HOME
也能返回版本
这是怎么回事,猜想cloudera server(5)认oracle jdk,对于sun jdk也须要是在线安装(至因而不识别sun jdk还未验证)。同时还必须是jdk1.7.
也就是须要执行下面命令:
缘由是在后面执行scm-server数据库配合的时候,若是找不到Java_home可能会初始化失败。
Java_home默认安装路径以下。
从上面咱们得出,若是想安装顺序,咱们最好使用下面命令来安装jdk1.7
sudo apt-get -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold -y install oracle-j2sdk1.7
执行上面命令,那么还须要作下面工做:
而后咱们接着执行命令:
认为终于好了,可是不幸的是,此次坚持了不到两分钟又挂掉了。
此次为何会挂掉,不得不查看日志了:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creati
ng bean with name 'entityManagerFactoryBean': FactoryBean threw exception on obj
ect creation; nested exception is javax.persistence.PersistenceException: org.hi
bernate.exception.GenericJDBCException: Could not open connection
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.
doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:149)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.
getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:102)
at org.springframework.beans.factory.support.AbstractBeanFactory.getObje
ctForBeanInstance(AbstractBeanFactory.java:1440)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBe
an(AbstractBeanFactory.java:247)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:192)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver
.resolveReference(BeanDefinitionValueResolver.java:322)
... 17 more
Caused by: javax.persistence.PersistenceException: org.hibernate.exception.Gener
icJDBCException: Could not open connection
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityMan
agerImpl.java:1387)
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityMan
agerImpl.java:1310)
at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException
(AbstractEntityManagerImpl.java:1397)
at org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:62)
at com.cloudera.enterprise.AbstractWrappedEntityManager.beginForRollback
AndReadonly(AbstractWrappedEntityManager.java:85)
at com.cloudera.enterprise.dbutil.DbUtil.isInnoDbEnabled(DbUtil.java:472
)
2014-09-22 17:51:27,328 ERROR [main:spi.SqlExceptionHelper@147] An attempt by a
client to checkout a Connection has timed out.
2014-09-22 17:51:27,339 INFO [main:support.DefaultListableBeanFactory@422] Dest
roying singletons in org.springframework.beans.factory.support.DefaultListableBe
anFactory@715dcdeb: defining beans [commandLineConfigurationBean,entityManagerFa
ctoryBean,com.cloudera.server.cmf.TrialState,com.cloudera.server.cmf.TrialManage
r,com.cloudera.cmf.crypto.LicenseLoader]; root of factory hierarchy
2014-09-22 17:51:27,341 ERROR [main:cmf.Main@202] Server failed.
org.springframework.beans.factory.BeanCreationException: Error creating bean wit
h name 'com.cloudera.server.cmf.TrialState': Cannot resolve reference to bean 'e
ntityManagerFactoryBean' while setting constructor argument; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean wi
th name 'entityManagerFactoryBean': FactoryBean threw exception on object creati
on; nested exception is javax.persistence.PersistenceException: org.hibernate.ex
ception.GenericJDBCException: Could not open connection
at org.springframework.beans.factory.support.BeanDefinitionValueResolver
.resolveReference(BeanDefinitionValueResolver.java:328)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver
.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
at org.springframework.beans.factory.support.ConstructorResolver.resolve
ConstructorArguments(ConstructorResolver.java:616)
at org.springframework.beans.factory.support.ConstructorResolver.autowir
eConstructor(ConstructorResolver.java:148)
at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1003)
at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:907)
at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getOb
ject(AbstractBeanFactory.java:293)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistr
y.getSingleton(DefaultSingletonBeanRegistry.java:222)
看完日志,你是否仍是云里雾里,这不得不说一下,咱们该如何利用日志。
日志的做用是什么?日志的做用是提示,它大部分会给咱们明确说遇到了什么问题,好比权限拒绝,等,可是有些你是看不明白的,那咱们该如何处理?只能靠你的灵感了, 没有灵感怎么办?那就须要本身缕顺序,本身是怎么安装、怎么操做的,而后从中可以发现问题。渐渐的你就能培养出灵感了。
上面其实我只知道报的是一个Java异常,并且还跟连接有关系。
灵感来了,就像到了,是由于没有执行下面命令:
配置cloudera-manager-server数据库
可是又出问题了,以下:
其实这个问题已经解决了,安装咱们能够进入上面步骤。
当咱们安装完毕,ok了,终于好了:
当咱们看到下面内容的时候,all done,说明咱们配置成功了。
而后咱们再次重启
ok始终在坚挺着,没有挂机,问题获得解决