cdh数据库
① 为什么安装cdh需要安装mysql
你需要先使用mysql链接mysqld(第一步开启的服务端),之后手动创建blog_db数据库,rails是不会自动创建mysql的数据库的(里面的各个表你不需要创建,这是active_record的工作)。
看你error
log应该是mysqld没运行!
② cdh集群角色如何合理分配
如无特殊情况(如指定数据库安装节点等),采用默认分配就可以了。CDH的默认分配会考虑到你集群的状况的
③ cdh5 flume只是从kafka接收数据么
1,hadoop是大数据分析的完整生态系统,从数据采集,存储,分析,转运,再到页面展示,构成了整个流程采集可以用flume,存储用hbase,hdfs,mangodb就相当于hbase,分析用Maprece自己写算法,还有hive做数据仓库,pig做数据流处理,转储方面有sqoop,可以将hdfs中的数据转换存储到mysql,oracle等传统数据库,这就构成了一整套大数据分析的整个流程2,mangodb只是充当存储功能,是一款nosql数据库,支持以json的格式存储3,所以从功能上来讲,hadoop和mangodb是不一样的,hadoop中可以用mangodb替换hbase,但是mangodb不能替换hadoop,一个是完整的生态系统,一个是数据库,两个不一样的概念4,至于选择用mangodb还是hbase,各有优劣,不过使用较多的还是hbase,mangodb社区没有hbase活跃,所以还是hbase吧
④ cdh 5.2怎么修改hive元数据库
修改 hive 的元数据库需要修改 hive-site.xml配置文件,比如我们使用mysql数据库修改其配置如下所示:
< property>
< name>javax.jdo.option.ConnectionDriverName< /name>
< value>com.mysql.jdbc.Driver< /value>
< description>Driver class name for a JDBC metastore< /description>
< /property>
< property>
< name>javax.jdo.option.ConnectionURL< /name>
< value>jdbc:mysql://dajiangtai.com:3306/hive?characterEncoding=UTF-8< /value>
< description>JDBC connect string for a JDBC metastore< /description>
< /property>
< property>
< name>javax.jdo.option.ConnectionUserName< /name>
< value>hive< /value>
< description>Username to use against metastore database< /description>
< /property>
< property>
< name>javax.jdo.option.ConnectionPassword< /name>
< value>hive< /value>
< description>password to use against metastore database< /description>
< /property>
⑤ 如何进入cloudera的scm数据库
在采用Cloudera-Manager安装cdh时,通常使用内嵌的PostgreSQL数据库。
Cloudera-Manager除了保存CDH集群的配置元数据的scm数据库外,还为Activity Monitor(活动监控)、Service Monitor(服务监控)、Report Manager(报告管理)、Host Monitor(主机监控)、Cloudera Navigator(Cloudera导航)等信息分别创建数据amon、smon、rmon、hmon、nav相应的数据。
⑥ 如何将在CDH清洗好的数据存入到数据库里
有个连接数据库的jar包用来驱动
2.连接数据库,具体代码网上有,主要就是设置数据库类型,名字,用户名,密码之类的
3.调用连接,写入数据,
Connection con=new Connection();
String sql="insert into 表名 (列名1,列名2) values(值1,值2)";
PreparedStatement ps=con.getPerpareStatment();
⑦ CDH版的hadoop有没有源码提供
首先,不得不说,hadoop发展到现在这个阶段,代码已经变得非常庞大臃肿,如果你直接阅读最新版本的源代码,难度比较大,需要足够的耐心和时间,所以,如果你觉得认真一次,认真阅读一次hadoop源代码,一定要有足够的心理准备和时间预期。 其次,需要注意,阅读Hadoop源代码的效率,因人而异,如果你有足够的分布式系统知识储备,看过类似的系统,则能够很快地读它的源代码进行通读,并快速切入你最关注的局部细节,比如你之前看过某个分布式数据库的源代码,对分布式系统的网络通信模块,调度模块等有一定了解,这对阅读hadoop源代码有极大帮助;如果你是一个初学者,对hadoop一无所知,只了解一些java语法,那阅读hadoop源代码是极具挑战的一件事情,尤其是从无到开始入门的过程,是极度煎熬和困惑的,这时候需要你在阅读代码过程中,不断补充缺乏的相关知识(比如RPC,NIO,设计模式等),循序渐进,直到入门。 接下来进入主题,说一下阅读源代码的个人经验。由于我也是从无到入门,再到修改源代码,逐步过渡的,所以,对于很多人而言,具有借鉴意义。 ============ 第一个阶段:学习hadoop基本使用和基本原理,从应用角度对hadoop进行了解和学习 这是第一个阶段,你开始尝试使用hadoop,从应用层面,对hadoop有一定了解,比如你可以使用hadoop shell对hdfs进行操作,使用hdfs API编写一些程序上传,下载文件;使用MapRece API编写一个数据处理程序。一旦你对hadoop的基本使用方法比较熟悉了,接下来可以尝试了解它的内部原理,注意,不需要通过阅读源代码了解内部原理,只需看一些博客,书籍,比如《Hadoop权威指南》,对于HDFS而言,你应该知道它的基本架构以及各个模块的功能;对于MapRece而言,你应该知道其具体的工作流程,知道partition,shuffle,sort等工作原理,可以自己在纸上完整个画完maprece的流程,越详细越好。 在这个阶段,建议你多看一些知名博客,多读读《hadoop权威指南》(可选择性看相关的几章)。如果你有实际项目驱动,那是再好不过了,理论联系实际是最好的hadoop学习方法;如果你没有项目驱动,那建议你不要自己一个人闷头学,多跟别人交流,多主动给别人讲讲,最好的学习方式还是“讲给别人听”。 ============ 第二个阶段:从无到入门,开始阅读hadoop源代码 这个阶段是最困苦和漫长的,尤其对于那些没有任何分布式经验的人。 很多人这个阶段没有走完,就放弃了,最后停留在hadoop应用层面。 这个阶段,第一件要做的事情是,选择一个hadoop组件。如果你对分布式存储感兴趣,那么你可以选择HDFS,如果你读分布式计算感兴趣,你可以选择MapRece,如果你对资源管理系统感兴趣,你可以选择YARN。 选择好系统后,接下来的经历是最困苦的。当你把hadoop源代码导入eclipse或intellij idea,沏上一杯茶,开始准备优哉游哉地看hadoop源代码时,你懵逼了:你展开那数不尽的package和class,觉得无从下手,好不容易找到了入口点,然后你屁颠屁颠地通过eclipse的查找引用功能,顺着类的调用关系一层层找下去,最后迷失在了代码的海洋中,如同你在不尽的压栈,最后栈溢出了,你忘记在最初的位置。很多人经历过上面的过程,最后没有顺利逃出来,而放弃。 如果你正在经历这个过程,我的经验如下:首先,你要摸清hadoop的代码模块,知道client,master,slave各自对应的模块(hadoop中核心系统都是master/slave架构,非常类似),并在阅读源代码过程中,时刻谨记你当前阅读的代码属于哪一个模块,会在哪个组件中执行;之后你需要摸清各个组件的交互协议,也就是分布式中的RPC,这是hadoop自己实现的,你需要对hadoop RPC的使用方式有所了解,然后看各模块间的RPC protocol,到此,你把握了系统的骨架,这是接下来阅读源代码的基础;接着,你要选择一个模块开始阅读,我一般会选择Client,这个模块相对简单些,会给自己增加信心,为了在阅读代码过程中,不至于迷失自己,建议在纸上画出类的调用关系,边看边画,我记得我阅读hadoop源代码时,花了一叠纸。注意,看源代码过程中,很容易烦躁不安,建议经常起来走走,不要把自己逼得太紧。 在这个阶段,建议大家多看一些源代码分析博客和书籍,比如《Hadoop技术内幕》系列丛书(轩相关网站:Hadoop技术内幕)就是最好的参考资料。借助这些博客和书籍,你可以在前人的帮助下,更快地学习hadoop源代码,节省大量时间,注意,目前博客和书籍很多,建议大家广泛收集资料,找出最适合自己的参考资料。 这个阶段最终达到的目的,是对hadoop源代码整体架构和局部的很多细节,有了一定的了解。比如你知道MapRece Scheler是怎样实现的,MapRece shuffle过程中,map端做了哪些事情,rece端做了哪些事情,是如何实现的,等等。这个阶段完成后,当你遇到问题或者困惑点时,可以迅速地在Hadoop源代码中定位相关的类和具体的函数,通过阅读源代码解决问题,这时候,hadoop源代码变成了你解决问题的参考书
⑧ 如何设置外部数据库作为cdh的数据库
如何设置外部数据库作为cdh的数据库
: 把LM换成ip地址
⑨ 针对cdh的组件oozie适合apache版本的hadoop组件一起使用么
CDH5.3 Oozie服务搭建
编写人:胡旻 版本:V_0.5 修改时间:20150215(Oozie版本CDH5.3组件V4.0.0)
版权所有转载请注明
一.Oozie简介
Oozie是一个管理Hdoop作业(job)的工作流程调度管理服务。
1. Oozie的工作流是一系列动作的直接周期图(Directed Acyclical Graphs)。这些动作是典型的Hadoop任务(MapRece,Streaming, Pipes, Pig, Hive, Sqoop, etc)2. Oozie协调作业就是通过时间(频率)和有效数据触发当前的Oozie工作流程3. Oozie可以将一系列协调作业捆绑作为一个任务进行管理4. Oozie 是一个可扩展,数据感知的服务,允许你在Hadoop上使用运行一系列独立的任务二.软件包
Oozie采用服务器客户端模式,对于安装Oozie有两种包选择,针对Oozie服务器(oozie)和客户端(oozie-client)的独立的RPM包。
三.安装需求
安装Oozie服务器需要满足
1. 操作系统的支持(如:支持CDH5的操作系统)2. Oracle JDK的支持
3. 如果不想用自带的derby还需要一个可以支持的数据库安装Oozie Client需要满足
Oracle JDK的支持
四.安装Oozie
Oozie包含两个独立包;一个是客户端包(oozie-client)另一个是服务包(oozie)。选择你需要的合适的包进行安装。
使用yum方式安装Oozie服务包
$ sudo yum install oozie
使用yum方式安装Oozie客户端包
$ sudo yum install oozie-client
五.配置Oozie
1.配置Hadoop任务的使用版本
Oozie客户端不会和HadoopMapRece任务进行直接的交互,所以其不需要任何MapRece的设置Oozie服务能够对接使用MRv1或YARN,但是不能同时使用。
文件类型
安装路径
二进制包
/usr/lib/oozie/
配置信息
/etc/oozie/conf/
文档
/usr/share/doc/oozie-4.0.0+cdh5.3.0+334
例子
/usr/share/doc/oozie-4.0.0+cdh5.3.0+334
数据
/usr/share/doc/oozie-4.0.0+cdh5.3.0+334
日志
/var/log/oozie
临时文件
/var/tmp/oozie/
PID文件
/var/run/oozie/
2. 使用MySQL配置Oozie
安装和启动mysql,使用mysql命令台工具,创建Oozie数据库和Oozie的mysql用户$ mysql -u root -p
Enter password: ******
mysql> create database oozie;
Query OK, 1 row affected (0.03 sec)
mysql> grant all privileges on oozie.* to 'oozie'@'localhost' identified by 'oozie';Query OK, 0 rows affected (0.03 sec)
mysql> grant all privileges on oozie.* to 'oozie'@'%' identified by 'oozie';Query OK, 0 rows affected (0.03 sec)
mysql> exit
Bye
3.配置Oozie使用MySQL,编辑oozie-site.xml中属性文件如下,配置oozie-site.xml$ sudo vim /etc/oozie/conf/oozie-site.xml...
<property>
<name>oozie.service.JPAService.jdbc.driver</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>oozie.service.JPAService.jdbc.url</name>
<value>jdbc:mysql://localhost:3306/oozie</value>
</property>
<property>
<name>oozie.service.JPAService.jdbc.username</name>
<value>oozie</value>
</property>
<property>
<name>oozie.service.JPAService.jdbc.password</name>
<value>oozie</value>
</property>
...
4. 添加MySQL JDBC 驱动包(JAR文件)给Oozie.
拷贝或软连接mysql的JDBC驱动JAR文件到/var/lib/oozie/ 文件夹5. 建立Oozie数据库模式
在设置完Oozie 数据库信息和创建相应的数据库,创建Oozie数据库模式,Oozie为这个目的提供了一个数据库工具运行Oozie数据库工具
$ sudo -u oozie /usr/lib/oozie/bin/ooziedb.sh create -run你应该看到以下输出
Validate DB Connection.
DONE
Check DB schema does not exist
DONE
Check OOZIE_SYS table does not exist
DONE
Create SQL schema
DONE
DONE
Create OOZIE_SYS table
DONE
Oozie DB has been created for Oozie version '4.0.0-cdh5.3.0'
The SQL commands have been written to: /tmp/ooziedb-5737263881793872034.sql6. 允许Oozie Web Console
为了允许Oozie webconsole, 下载添加ExtJS库到 Oozie服务器步骤1:下载库
从http//archive.cloudera.com/gplextras/misc/ext-2.2.zip下载ExtJS版本2.2库文件并将其放在合适的位置。
步骤2:安装库文件
提取文件ext-2.2.zip并将其放在/var/lib/oozie下. 并解压说明:1.以前同事何敏在测试机上安装oozie 时,将ext-2.2.zip直接放到该目录下即可。但是现在clouderamanger 中不行2. 同事以前aparch 正式使用的ext-2.2.zip 在cloueramanger 下放到/var/lib/oozie下,解压后也不能正常。后来网友世界提供的解压后正常步骤3. 在Hadoop的HDFS上安装Oozie Shared Libraryoozie安装绑定了Oozie的分享库,包含了所有允许工作流任务运行的动作(streaming, DistCp, Pig, Hive, Sqoop).
步骤4.oozie安装绑定了两个共享库,一个是MRv1 另一个是 YARN。请确保你安装了合适你使用的MapRece版本The shared library file for MRv1 isoozie-sharelib-mr1.tar.gz.
The shared library file for YARN isoozie-sharelib-yarn.tar.gz.
(我系统是运行在YARN上运行MapRece,所以注意)$ sudo -u hdfs hadoop fs -mkdir /user/oozie$ sudo -u hdfs hadoop fs -chown oozie:oozie /user/oozie$ sudo oozie-setup sharelib create -fs <FS_URI> -locallib /usr/lib/oozie/oozie-sharelib-yarn.tar.gz其中FS_URI是文件系统HDFS URI分享库应该安装的位置(例如 hdfs://<HOST>:<PORT>).
7. 设置支持Oozie的Uber JARs
为了使集群支持uber Jars我们设定oozie-site.xml以下属性...
<property>
<name>oozie.action.maprece.uber.jar.enable</name>
<value>true</value>
...
六. 启动、停止和访问Oozie
1.启动Oozie服务器
$ sudo service oozie start
如果能看见消息Oozie系统ID[oozie-oozie] 开始在oozie.log日志文件中,说明系统已经成功开始2.停止Oozie服务器
$ sudo service oozie stop
3.通过Oozie客户端访问Oozie服务器
Oozie客户端是一个命令行单元可以通过Oozieweb-services API和Oozie 服务器进行交互$ oozie admin -oozie http//localhost:11000/oozie -statusSystem mode: NORMAL
为了方便使用这个组件,设置环境变量OOZIE_URL指向Oozie服务器的URL.后续你能跳过-oozie 选项$ export OOZIE_URL=http//localhost:11000/oozie$ oozie admin -version
Oozie server build version: 4.0.0-cdh5.3.04.通过Web浏览器访问Oozie服务器
如果你添加了ExtJS库,允许了Oozie web控制台,你可以通过http//<OOZIE_HOSTNAME>:11000/oozie.
oozie is not allowed to impersonate oozie问题的解决在主控节点(NameNode和ResourceManage)中修改hdfs-site.xml文件添加如下属性<!-- OOZIE -->
<property>
<name>hadoop.proxyuser.oozie.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.oozie.groups</name>
<value>*</value>
</property>
<!-- -->
然后更新
主控节点:NameNode
hdfs dfsadmin -fs hdfs://hcdream1:8020 - dfsadmin -fs hdfs://hcdream2:8020 –主控节点:ResourceManager
yarn rmadmin -
⑩ 不是cm安装的cdh能用cm监控吗
不能,CM有一个postGre数据库存储节点与每台节点的服务和性能监控信息