CDH clouder manger安装方式
一、准备工作
1、修改主机名修改/etc/sysconfig/network文件,并修改/etc/hosts文件或者配置DNS。
#vim /etc/sysconfig/network
NETWORKING=yes
GATEWAY=10.0.0.254
HOSTNAME=DataNode-03.toppay.com
#vim /etc/hosts
2、打通所有ssh
所有机器,使用 ssh-keygen -t rsa 一路按回车就行了
刚才都作甚了呢?主要是生成ssh的密钥和密钥的存放路径。 在 ~/.ssh下。
打开~/.ssh 下面至少有两个文件
id_rsa,私钥
id_rsa.pub,公钥
在主结点上:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
scp文件到其他机器:
scp ~/.ssh/authorized_keys root@yc02:~/.ssh/
现在登陆到其他机器就不用密码了。
3、安装Java
考虑到 CDH5 只支持 JAVA7及以上,
从Oracle官网下载解压JDK 。 tar zxvf jdk-7u51-linux-x64.gz 放到 /opt/java 下。
以前好像在哪看到过说,CDH 需要一个 /usr/java/default 的软链,才会识别。以防万一,建了一个,至少这样也更容易管理:
# mkdir -p /usr/java
# cd /usr/java
# ln -s /opt/java/jdk1.7.0_51 latest
# ln -s latest default
最后JAVA添加环境变量
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
使配置生效
# source /etc/profile
4、安装mysql数据库
(直接 yum -y install mysql-server 再建需要的数据库)
Cloudera Manager 自身的需要数据库,它现在支持 Mysql 、PostgreSQL 和 Oracle。
(Installing and Configuring a MySQL Database官网安装过程)
配置MySql 自身的一些参数,和 CDH 没任何关系。只着重强调了一下 max_connections 的值。建议是 数据库数*100+50。大集群(50台以上)建议必须分开放。过程: vi /etc/my.cnf ,修改哪些参数,参考上面那个链接。只为一般性目的的可直接跳过此步骤。
建数据库,授权。需要哪些库呢,免费版:amon、hmon、hive、smon、scm(Cloudera Manager 自身,我自己命名的) 这些库的名字其实是可以自定义的。其它都是官网示例的名字,就这样吧。保持一致。只有最后一个库是我自己命名的。
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database smon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hmon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
给用户授权,类似如下:
grant all on *.* to root@"%" Identified by "Abcd1234";
5、关闭防火墙和selinux
关闭防火墙:
service iptables stop (临时关闭)
chkconfig iptables off (重启后生效)
关闭SELINUX:
setenforce 0 (临时生效)
修改 /etc/selinux/config 下的 SELINUX=disabled (重启后永久生效)
二、开始安装部署CDH
1、创建用户
useradd --system --home=/opt/cm-5.4.5/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
2、安装Cloudera Manager
解压下载好的Cloudera Manager解压至/opt下,产生2个文件夹cloudera和cm-5.3.0
cloudera-manager-el6-cm5.4.5_x86_64.tar.gz
(下载地址http://archive.cloudera.com/cm5/cm/5/)
3、添加mysql connector包
将mysql-connector-java-5.1.36-bin.jar拷贝至/opt/cm-5.4.5/share/cmf/lib/和/opt/cloudera/parcels/CDH-5.4.5-1.cdh5.3.0.p0.30/lib/hive/lib/下
(下载地址http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.36/mysql-connector-java-5.1.36.jar)
4、初始化数据库
/opt/cm-5.4.5/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -p123456 --scm-host localhost scm scm scm
5、修改Agent配置
将/opt/cm-5.4.5/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名
6、同步Agent到其他节点
scp -r /opt/cm-5.4.5 root@slave[1-xx]:/opt/
7、准备Parcels
将下载好的CDH-xxx.parcels文件、CDH-xxx.parcels.sha1文件和manifest.json文件移至/opt/cloudera/parcel-repo/中,并将CDH-xxx.parcels.sha1重命名为CDH-xxx.parcels.sha
(下载地址http://archive.cloudera.com/cdh5/parcels/5.4.5/)
8、启动Cloudera Manager
在主节点上
# /opt/cm-5.4.5/etc/init.d/cloudera-scm-server start
在所有slave节点
/opt/cm-5.4.5/etc/init.d/cloudera-scm-agent start
等待1-3分钟后可通过http://主节点IP:7180来访问CM,用户名密码都为admin。剩下的就是一直点下一步和根据具体的需求来配置集群了。
三、使用cloudera Manger部署服务
1、访问http://ip:7180如下图,默认用户名和密码都是admin,点击登录
2、来到一个介绍界面,直接点击继续
3、输入指定主机的IP或者域名多台机器之间用逗号隔开。然后点击搜索
4、点击当前管理主机选定主机,然后点击继续
5、集群安装,选择默认的parcel即可,点击继续
6、等待集群安装
7、等待安装完成点击继续
8、等待检查集群的结果
9、要保证没有错误,检查完成没有错误点击完成。
10、然后选择在集群上所需要安装的服务(这里选择了所有服务),点击继续
11、然后根据自己的规划将不同的服务分不到不同的机器当中,然后点击继续。
12、设置数据库,注意数据库主机应为准备工作时创建数据库的机器,数据库类型为MySQL,数据库名称位对应的库,用户名和密码为当初设定的,注意用户需有远程访问数据库的权限。然后测试连接
13、当测试结果为Successful时,点击继续。
14、然后审核更改,查看一下目录,没问题点击继续。
15、然后等待创建和启动服务,没有错误则点击继续。时间较长,请耐心等待。
16、到此服务已经部署完成,点击完成,就能进入管理界面
17、进入管理界面
各组件介绍:
Apache Hadoop: 是Apache开源组织的一个分布式计算开源框架,提供了一个分布式文件系统子项目(HDFS)和支持MapReduce分布式计算的软件架构。
Apache Hive: 是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
Apache Pig: 是一个基于Hadoop的大规模数据分析工具,它提供的SQL-LIKE语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。
Apache HBase: 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
Apache Sqoop: 是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
Apache Zookeeper: 是一个为分布式应用所设计的分布的、开源的协调服务,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,简化分布式应用协调及其管理的难度,提供高性能的分布式服务
Apache Mahout:是基于Hadoop的机器学习和数据挖掘的一个分布式框架。Mahout用MapReduce实现了部分数据挖掘算法,解决了并行挖掘的问题。
Apache Cassandra:是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存简单格式数据,集Google BigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身
Apache Avro: 是一个数据序列化系统,设计用于支持数据密集型,大批量数据交换的应用。Avro是新的数据序列化格式与传输工具,将逐步取代Hadoop原有的IPC机制
Apache Ambari: 是一种基于Web的工具,支持Hadoop集群的供应、管理和监控。
Apache Chukwa: 是一个开源的用于监控大型分布式系统的数据收集系统,它可以将各种各样类型的数据收集成适合 Hadoop 处理的文件保存在 HDFS 中供 Hadoop 进行各种 MapReduce 操作。
Apache Hama: 是一个基于HDFS的BSP(Bulk Synchronous Parallel)并行计算框架, Hama可用于包括图、矩阵和网络算法在内的大规模、大数据计算。
Apache Flume: 是一个分布的、可靠的、高可用的海量日志聚合的系统,可用于日志数据收集,日志数据处理,日志数据传输。
Apache Giraph: 是一个可伸缩的分布式迭代图处理系统, 基于Hadoop平台,灵感来自 BSP (bulk synchronous parallel) 和 Google 的 Pregel。
Apache Oozie: 是一个工作流引擎服务器, 用于管理和协调运行在Hadoop平台上(HDFS、Pig和MapReduce)的任务。
Apache Crunch: 是基于Google的FlumeJava库编写的Java库,用于创建MapReduce程序。与Hive,Pig类似,Crunch提供了用于实现如连接数据、执行聚合和排序记录等常见任务的模式库
Apache Whirr: 是一套运行于云服务的类库(包括Hadoop),可提供高度的互补性。Whirr学支持Amazon EC2和Rackspace的服务。
Apache Bigtop: 是一个对Hadoop及其周边生态进行打包,分发和测试的工具。
Apache HCatalog: 是基于Hadoop的数据表和存储管理,实现中央的元数据和模式管理,跨越Hadoop和RDBMS,利用Pig和Hive提供关系视图。
Cloudera Hue: 是一个基于WEB的监控和管理系统,实现对HDFS,MapReduce/YARN, HBase, Hive, Pig的web化操作和管理。
spark:Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法sentry:
Sentry是Cloudera 公司发布的一个Hadoop开源组件,它提供细粒度基于角色的安全控制
solr:Solr是一个基于Lucene java库的企业级搜索服务器,包含XML/HTTP,JSON API, 高亮查询结果,faceted search(不知道该如何翻译,片段式搜索),缓存,复制还有一个WEB管理界面。Solr运行在Servlet容器中。所以Solr和Lucene的本质区别有以下三点:搜索服务器,企业级和管理。Lucene本质上是搜索库,不是独立的应用程序,而Solr是。Lucene专注于搜索底层的建设,而Solr专注于企业应用。Lucene不负责支撑搜索服务所必须的管理,而Solr负责。所以说,一句话概括Solr: Solr是Lucene面向企业搜索应用的扩展。