Cloudera Manager、CDH零基础入门、线路指导
http://www.aboutyun.com/thread-9219-1-1.html
(出处: about云开发)

问题导读:
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的基础知识模块。需要掌握的内容还是不少的:

集群搭建:主机宽带拨号上网,虚拟机使用桥接模式,该如何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> 
当我们学习的时候,我们该如何学习,有两种方式:第一种:先理论,后实践
第二种:先实践,后理论

上面两种方式各有各的场合,如果你要去面试、考试、搞理论思想类,第一种方式是没有问题的。因为这些都是停留在思想层面的。
对于一个编程技术人员来讲,本人觉得第二种方式更加的短平快。
上面两种方式都有些绝对,最佳的方式就是实践与理论相结合。
这里撰文一下,引用孔子的一句话

学而不思则罔 思而不学则殆

只看书,不实践,或则只倒腾部署、停留在某些问题得不到解决,但是又不去看书、百度、谷歌查找解决问题,这样也是不行的。

好了,开始我们的官网:
官网是我们学习标准,所以我们首先要记住官网地址:
主页:
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
CDH4、CDH5包汇总
http://archive.cloudera.com/cdh4/
http://archive.cloudera.com/cdh5/
CM4、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>

但是并不是每个人都能看到上面进度,而是看到下面错误:

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

上面错误该如何解决:
可以使用下面方法解决:

  1. mv /usr/bin/host /usr/bin/host.bak

复制代码

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客户端

我们使用下面命令安装了agent

  1. sudo apt-get install cloudera-manager-agent cloudera-manager-daemons

复制代码

当然还有很多其它需要安装,当我们的agent安装成功后,为什么我们的的界面中不能发现agent.

本来我们有三台,但是却只有一台,而且是cloudera server本地的agent

这是因为我们的在安装的过程中,agent都指向了本地localhost.
我们打开配置文件

  1. sudo nano  /etc/cloudera-scm-agent/config.ini

复制代码

修改
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)离线安装详细介绍

CM5、CDH5安装(CDH5半自动离线安装)

Cloudera Manager 5 和 CDH5 本地(离线)安装指南

Cloudera Manager 和 CDH5 本地(离线)安装指导

3.第三种使用是Tarballs的方式

这种方式网上资料很少
安装的命令如下:

  1. $ tar xzf cloudera-manager*.tar.gz -C /opt/cloudera-manager

复制代码

这个跟hadoop的安装方式是一样的
安装的方法详细可参考:

这里在列出官网给出的三种安装方式:

如果想安装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

  1. java -version

复制代码

也能返回版本
这是怎么回事,猜测cloudera server(5)认oracle jdk,对于sun jdk也需要是在线安装(至于是不识别sun jdk还未验证)。同时还必须是jdk1.7.

也就是需要执行下面命令:

  1. sudo apt-get -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold -y install oracle-j2sdk1.7

复制代码

原因是在后面执行scm-server数据库配合的时候,如果找不到Java_home可能会初始化失败。
Java_home默认安装路径如下。

  1. /usr/lib/jvm/java-7-oracle-cloudera

复制代码

从上面我们得出,如果想安装顺序,我们最好使用下面命令来安装jdk1.7

sudo apt-get -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold -y install oracle-j2sdk1.7

执行上面命令,那么还需要做下面工作:

然后我们接着执行命令:

  1. service cloudera-scm-server restart

复制代码

认为终于好了,但是不幸的是,这次坚持了不到两分钟又挂掉了。


这次为什么会挂掉,不得不查看日志了:

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数据库

  1. sudo /usr/share/cmf/schema/scm_prepare_database.sh mysql  -uroot -p --scm-host localhost scm scm scm_password

复制代码

但是又出问题了,如下:

其实这个问题已经解决了,安装我们可以进入上面步骤。
当我们安装完毕,ok了,终于好了:

当我们看到下面内容的时候,all done,说明我们配置成功了。

然后我们再次重启

  1. service cloudera-scm-server restart

复制代码

ok始终在坚挺着,没有挂机,问题得到解决

Cloudera Manager、CDH零基础入门、线路指导 http://www.aboutyun.com/thread-9219-1-1.html (出处: about云开发)的更多相关文章

  1. 【JAVA零基础入门系列】Day13 Java类的继承与多态

    继承是类的一个很重要的特性,什么?你连继承都不知道?你是想气死爸爸好继承爸爸的遗产吗?(滑稽) 开个玩笑,这里的继承跟我们现实生活的中继承还是有很大区别的,一个类可以继承另一个类,继承的内容包括属性跟 ...

  2. .NET零基础入门09:SQL必知必会

    一:前言 仿佛到了更进一步的时候了,每一个程序员迟早都会遇到数据存储的问题.我们拿什么来存储程序产生的数据?举例来说,用什么来存储我们的打老鼠游戏每次的成绩呢?选择如下: 1:内存中.缺点,退出游戏, ...

  3. 【Linux开发】Linux及Arm-Linux程序开发笔记(零基础入门篇)

    Linux及Arm-Linux程序开发笔记(零基础入门篇) 作者:一点一滴的Beer http://beer.cnblogs.com/ 本文地址:http://www.cnblogs.com/beer ...

  4. 从零基础入门JavaScript(1)

    从零基础入门JavaScript(1) 1.1  Javascript的简史 1995年的时候   由网景公司开发的,当时的名字叫livescript    为了推广自己的livescript,搭了j ...

  5. 函数:我的地盘听我的 - 零基础入门学习Python019

    函数:我的地盘听我的 让编程改变世界 Change the world by program 函数与过程 在小甲鱼另一个实践性超强的编程视频教学<零基础入门学习Delphi>中,我们谈到了 ...

  6. 【JAVA零基础入门系列】Day2 Java集成开发环境IDEA

    开发环境搭建好之后,还需要一个集成开发环境也就是IDE来进行编程.这里推荐的IDE是IDEA,那个老掉牙的Eclipse还是先放一边吧,(手动滑稽). IDEA的下载地址:http://www.jet ...

  7. 【JAVA零基础入门系列】Day4 变量与常量

    这一篇主要讲解Java中的变量,什么是变量,变量的作用以及如何声明,使用变量. 那么什么是变量?对于初学者而言,可以将变量理解为盒子,这些盒子可以用来存放数据,不同类型的数据需要放在对应类型的盒子里. ...

  8. 【JAVA零基础入门系列】Day5 Java中的运算符

    运算符,顾名思义就是用于运算的符号,比如最简单的+-*/,这些运算符可以用来进行数学运算,举个最简单的栗子: 已知长方形的长为3cm,高为4cm,求长方形的面积. 好,我们先新建一个项目,命名为Rec ...

  9. 【JAVA零基础入门系列】Day6 Java字符串

    字符串,是我们最常用的类型,每个用双引号来表示的串都是一个字符串.Java中的字符串是一个预定义的类,跟C++ 一样叫String,而不是Char数组.至于什么叫做类,暂时不做过多介绍,在之后的篇章中 ...

随机推荐

  1. oracle 数据库数据迁移解决方案

    大部分系统由于平台和版本的原因,做的是逻辑迁移,少部分做的是物理迁移,接下来把心得与大家分享一下   去年年底做了不少系统的数据迁移,大部分系统由于平台和版本的原因,做的是逻辑迁移,少部分做的是物理迁 ...

  2. table常用

    <style> table,table td { border: 1px solid #ccc; border-collapse:collapse; } </style> 注意 ...

  3. CDialogSK - A Skinnable Dialog Class

    Introduction This class is derived from the MFC CDialog. It supports the following features :- If ru ...

  4. 51nod 1237 最大公约数之和 V3(杜教筛)

    [题目链接] https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1237 [题目大意] 求[1,n][1,n]最大公约数之和 ...

  5. How to get the xpath by clicking an html element

    How to get the xpath by clicking an html element How to get the xpath by clicking an html element

  6. jquery 使用ajax调用c#后台方法

    $.ajax({                         type: "get",                         cache: false,        ...

  7. GridView行编辑、更新、取消、删除事件使用方法

    注意:当启用编辑button时,点击编辑button后会使一整行都切换成文本框.为了是一行中的一部分是文本框,须要把以整行的全部列都转换成模板,然后删掉编辑模板中的代码.这样就能使你想编辑的列转换成文 ...

  8. PID教程

    PID教程 介绍 本教程将向您展示了比例每一个比例项 (P)的特点,积分项(I)和微分项 (D) 控制,以及怎样使用它们来获得所需的响应.在本教程中,我们会考虑下面单位反馈系统: Plant[被控对象 ...

  9. POJ 3623 Best Cow Line, Gold(字符串处理)

    题意:给你一个字符串,让你重新排列,只能从头或者尾部取出一个放到新字符串队列的最后.按照字典序. 解决方法:比较前后两个的大小,谁小输出谁,相等,就往当中比来确定当前应该拿最前面的还是最后面的,如果再 ...

  10. SqlCacheDependency的使用

    最近项目需要几秒就获取一次数据,查数据库服务器压力会很大,因此用缓存技术来缓解服务器压力. 使用SqlCacheDependency采用轮询的方式来获取缓存,SqlDependency查询通知的方式来 ...