这几天一直在安装CDH,头都搞大了,安装第三次,最终成功了。

第一次问题非常多。后面卸载了。由于没有卸载干净导致第二次安装失败。

后来索性重装系统了。直接使用了纯净系统进行安装。一个人跑到学院机房去装系统,苦逼慘了。

。不扯了,记录下安装流程。

系统环境

操作系统:CentOS 6.5 x64,配置例如以下:



Cloudera Manager:5.3.4

CDH: 5.3.4

前期准备工作(系统环境搭建)

所需软件

cloudera-manager-el6-cm5.3.4_x86_64.tar.gz
mysql-connector-java-5.1.25-bin.jar

1、设置静态IP地址

vi /etc/sysconfig/network-scripts/ifcfg-eth0 

由于我重装系统时已经设置了,这里就不设置了。

2、改动主机名

hostname 主机名  (当前生效)
vi /etc/sysconfig/network (下次启动生效) [root@hadoop2 opt]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hadoop2
GATEWAY=172.23.253.1
NTPSERVERARGS=iburst

由于我重装系统时已经设置了,这里就不设置了。

3、绑定 IP与HostName

在hadoop1节点上操作

 vi /etc/hosts
172.23.253.20 hadoop1
172.23.253.22 hadoop2
172.23.253.23 hadoop3
172.23.253.24 hadoop4
172.23.253.25 hadoop5
172.23.253.26 hadoop6

拷贝到其他节点(hadoop2~hadoop6)

scp /etc/hosts hadoop2:/etc/
···
scp /etc/hosts hadoop6:/etc/

4、设置SSH免password登录(全部节点)

1、又一次生成密钥 (各个节点)

[root@hadoop1 /]# cd /root/.ssh/
[root@hadoop1 .ssh]# ssh-keygen -t rsa
[root@hadoop1 .ssh]# cat id_rsa.pub >> authorized_keys

測试是否成功ssh localhost

其他其他节点相同的方式生成密钥。

2、设置两两结点间的免password登录

hadoop2~hadoop6将自己的公钥复制给对方主机

ssh-copy-id -i hadoop1

hadoop1复制自己的authorized_keys给其他主机 hadoop2~hadoop6,这样都能够互相免password登录了。

scp /root/.ssh/authorized_keys hadoop2:/root/.ssh/
...
scp /root/.ssh/authorized_keys hadoop6:/root/.ssh/

5、安装Oracle的Java

CentOS自带Open Jdk,只是运行CDH5须要使用Oracle的jdk,须要Java 7的支持。jdk安装的时候,一定要採用rpm的安装方式,而不要採用tar解压的安装方式。由于rpm的安装方式,会在/usr/lib下新建两个软连接。

首先,卸载自带的OpenJdk,使用rpm -qa | grep java查询java相关的包,使用rpm -e --nodeps 包名卸载掉。

由于是rpm包并不须要我们来配置环境变量,我们仅仅须要配置一个全局的JAVA_HOME变量就可以,运行命令:

echo "JAVA_HOME=/usr/java/latest/" >> /etc/environment

运行命令java -versionjavac -version,查看Jdk是否安装正确。

1、卸载系统自带OPEN-JDK(全部节点)

[root@hadoop1 .ssh]# rpm -qa | grep java
java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
tzdata-java-2013g-1.el6.noarch
java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
[root@hadoop1 .ssh]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
tzdata-java-2013g-1.el6.noarch java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64

2、安装Oracle的JDK(全部节点)

[root@hadoop1 opt]# rpm -ivh jdk-7u80-linux-x64.rpm
Preparing... ########################################### [100%]
1:jdk ########################################### [100%]
Unpacking JAR files...
rt.jar...
jsse.jar...
charsets.jar...
tools.jar...
localedata.jar...
jfxrt.jar...
[root@hadoop1 opt]# echo "JAVA_HOME=/usr/java/latest/" >> /etc/environment
[root@hadoop1 opt]# java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
[root@hadoop1 opt]# javac -version
javac 1.7.0_80

6、安装和配置MySql(主节点)

通过yum install mysql-server安装mysql服务器。

设置开机启动chkconfig mysqld on

并启动mysql服务service mysqld start

并依据提示设置root的初始password:mysqladmin -u root password 'xxxx'

[root@hadoop1 opt]# yum install mysql-server
[root@hadoop1 opt]# chkconfig mysqld on
[root@hadoop1 opt]# service mysqld start
[root@hadoop1 opt]# service mysqld status [root@hadoop1 opt]# mysqladmin -u root password 'liguodong'

进入mysql命令行mysql -uroot -pxxxx,创建下面数据库:

[root@hadoop1 opt]# mysql -uroot -pliguodong

mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec) mysql> create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec) mysql> create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

设置root授权訪问以上全部的数据库。

mysql> grant all privileges on *.* to 'root'@'hadoop1' identified by 'liguodong' with grant option;
Query OK, 0 rows affected (0.00 sec) mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

Cloudera官方MySql配置文档:

http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cm_ig_mysql.html#cmig_topic_5_5

7、关闭防火墙和SELinux(全部节点)

注意: 须要在全部的节点上运行。由于涉及到的port太多了,暂时关闭防火墙是为了安装起来更方便(防火墙会引起hadoop相关组件通讯的各种异常。),安装完毕后能够依据须要设置防火墙策略,保证集群安全。

关闭防火墙:

service iptables stop (暂时关闭)

chkconfig iptables off (重新启动后生效)

关闭SELINUX:

(实际安装过程中发现没有关闭也是能够的,不知道会不会有问题,还需进一步进行验证)

setenforce 0(暂时生效)

改动/etc/selinux/config 下的 SELINUX=disabled(重新启动后永久生效)

[root@hadoop1 opt]# service iptables stop
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:清除防火墙规则: [确定]
iptables:正在卸载模块: [确定]
[root@hadoop1 opt]# chkconfig iptables off [root@hadoop1 opt]# setenforce 0
[root@hadoop1 opt]# vi /etc/selinux/config
[root@hadoop1 opt]# cat /etc/selinux//config
SELINUXTYPE=targeted
SELINUX=disabled

8、安装和配置NTP服务(全部节点)

集群中全部主机必须保持时间同步,假设时间相差较大会引起各种问题。

详细思路例如以下:

master节点作为ntp服务器与外界对时中心同步时间,随后对全部datanode节点提供时间同步服务。全部datanode节点以master节点为基础同步时间。

全部节点安装相关组件:yum install ntp

完毕后,配置开机启动:chkconfig ntpd on

检查是否设置成功:chkconfig --list ntpd。当中2-5为on状态就代表成功。

[root@hadoop1 opt]# yum install ntp
[root@hadoop1 opt]# chkconfig ntpd on
[root@hadoop1 opt]# chkconfig --list ntpd
ntpd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

配置内网NTP服务器(主节点)

在配置之前,先使用ntpdate手动同步一下时间,免得本机与对时中心时间差距太大。使得ntpd不能正常同步。

这里选用202.112.10.36作为对时中心,命令例如以下:ntpdate -u 202.112.10.36

# ntpdate -u 202.112.10.36
22 Dec 16:52:38 ntpdate[6400]: adjust time server 202.112.10.36 offset 0.012135 sec

ntp服务仅仅有一个配置文件,配置好就能够。

这里仅仅给出实用的配置,不须要的配置都用#注掉。这里就不在给出。

[root@hadoop1 opt]# vi /etc/ntp.conf
[root@hadoop1 opt]# cat /etc/ntp.conf
driftfile /var/lib/ntp/drift
restrict 127.0.0.1
restrict -6 ::1
restrict default nomodify notrap
server 202.112.10.36 prefer
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys

配置文件完毕。保存退出。

启动服务,运行例如以下命令:

[root@hadoop1 opt]# service ntpd start

检查是否成功,用ntpstat命令查看同步状态,出现下面状态代表启动成功:

[root@hadoop1 ~]# ntpstat
synchronised to NTP server (202.112.10.36) at stratum 3
time correct to within 133 ms
polling server every 1024 s

假设出现异常请等待几分钟,一般等待5-10分钟才干同步。

配置ntpclient(hadoop2~hadoop6)

driftfile /var/lib/ntp/drift
restrict 127.0.0.1
restrict -6 ::1
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
#这里是主节点(内网NTP服务器)的主机名或者ip
server hadoop1 includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys

保存退出,请求服务器前。请先使用ntpdate手动同步一下时间:ntpdate -u hadoop1 (主节点ntp服务器)

这里可能出现同步失败的情况。请不要着急。通常是本地的ntp服务器还没有正常启动,一般须要等待5-10分钟才干够正常同步。

启动服务:service ntpd start

[root@hadoop2 ~]# ntpdate -u hadoop1
27 Jun 08:14:38 ntpdate[1899]: adjust time server 172.23.253.20 offset 0.000293 sec [root@hadoop2 ~]# service ntpd start
[root@hadoop2 ~]# chkconfig ntpd on

安装与配置Cloudera Manager Server 和Agent

Server配置(主节点)

下载地址:http://archive-primary.cloudera.com/cm5/cm/5/(选择适合你的一款)

依据自己的系统选择对应的版本号。本次安装选用的是cloudera-manager-el6-cm5.3.4_x86_64.tar.gz,下载完毕后仅仅上传到主节点就可以。

然后解压到/opt文件夹下,不能解压到其他地方。

由于cdh5的源会默认在/opt/cloudera/parcel-repo寻找。怎么制作cdh5的本地源文件会在之后介绍。

[root@hadoop1 opt]# tar -zxvf cloudera-manager-el6-cm5.3.4_x86_64.tar.gz

全部节点加入cloudera-scm用户:

[root@hadoop1 lib]# useradd --system --home=/opt/cm-5.3.4/run/cloudera-scm-server/ --no-create-home --shell=/bin/false
--comment "Cloudera SCM User" cloudera-scm

为Cloudera Manager 5建立数据库:

由于我们用的是Mysql数据库。所以我们须要下载Mysql的JDBC驱动。本次从官网上下载的版本号是:mysql-connector-java-5.1.25-bin.jar放到/opt/cm-5.3.4/share/cmf/lib/文件夹下。

[root@hadoop1 opt]# mv mysql-connector-java-5.1.25-bin.jar /opt/cm-5.3.4/share/cmf/lib/

然后。建立数据库:

[root@hadoop1 opt]#/opt/cm-5.3.4/share/cmf/schema/scm_prepare_database.sh mysql
cm -hlocalhost -uroot -pliguodong --scm-host localhost scm scm scm

格式是:scm_prepare_database.sh 数据库类型 数据库 服务器 username password –scm-host Cloudera_Manager_Server所在的机器,后面那三个不知道代表什么。直接照抄官网的了。

开启Cloudera Manager 5 Server端:

[root@hadoop1 lib]# /opt/cm-5.3.4/etc/init.d/cloudera-scm-server start

注意:

server首次启动不要马上关闭或重新启动,由于首次启动会自己主动创建相关表以及数据,

假设由于特殊原因中途退出,请先删除全部表以及数据之后再次启动。否则将会出现启动不成功的情况。

Agent配置(全部节点)

开启Cloudera Manager 5 Agents端。

如今主节点改动/opt/cm-5.3.4/etc/cloudera-scm-agent/config.ini下面的serer_host为主节点的主机名。

[root@hadoop1 lib]# vi /opt/cm-5.3.4/etc/cloudera-scm-agent/config.ini
server_host=hadoop1

先复制/opt/cm-5.3.4到hadoop2~hadoop6节点上,

scp -r /opt/cm-5.3.4 hadoop2:/opt/
···
scp -r /opt/cm-5.3.4 hadoop6:/opt/

等待拷贝成功,在全部节点上启动Agent:(注意必须以管理员权限启动)

[root@hadoop1 lib]# /opt/cm-5.3.4/etc/init.d/cloudera-scm-agent start

浏览器启动Cloudera Manager 5 控制台(默认port号是7180),启动成功就会看到登陆页面。

离线安装Cloudera Manager5.3.4与CDH5.3.4(一)的更多相关文章

  1. 离线安装Cloudera Manager5.3.4与CDH5.3.4(二)

    Cloudera Manager Server和Agent所有后发先至.也能够进行CDH5的安装和配置. 然后,主节点可以通过浏览器访问7180port测试(因为CM Server需要花时间来启动,可 ...

  2. 离线安装Cloudera Manager5.3.4与CDH5.3.4

    文章转载:http://www.aboutyun.com/thread-14024-1-1.html 前期准备工作(系统环境搭建) 操作系统:CentOS 6.5 x64 CPU*2 64G 300G ...

  3. 离线安装Cloudera Manager5.2.0和CDH5 2.0

    第一次安装出现了各种问题,尤其是对于不是太熟悉linux系统的更是头疼不已呀!特此记录一下,希望能够让小伙伴们少走点弯路. 1.给机器添加路由 (根据自己的机器情况,可以忽略)   route add ...

  4. 离线安装Cloudera Manager 5和CDH5(最新版5.1.3) 完全教程

    关于CDH和Cloudera Manager CDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloud ...

  5. 离线安装 Cloudera Manager 5 和 CDH5.10

    关于CDH和Cloudera Manager CDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloud ...

  6. 离线安装Cloudera Manager 5和CDH5(最新版5.9.3) 完全教程(六)CM的安装

    一.角色分配 Cloudera Manager Agent:向server端报告当前机器服务状态. Cloudera Manager Server:接受agent角色报告服务状态,以视图界面展现,方便 ...

  7. 离线安装Cloudera Manager 5和CDH5(最新版5.9.3) 完全教程(一)环境说明

    关于CDH和Cloudera Manager CDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloud ...

  8. 离线安装Cloudera Manager 5和CDH5

    关于CDH和Cloudera Manager CDH (Cloudera's Distribution, including Apache Hadoop),是Cloudera 完全开源的Hadoop  ...

  9. CentOS 6.4 离线安装 Cloudera 5.7.1 CDH 5.7.1

    因为项目开发需要要在本地组建一个Hadoop/Spark集群,除了Hadoop/Spark还要同时安装多个相关的组件,如果一个个组件安装配置,对于一个由多台服务器组成的集群来说,工作量是巨大的. 所以 ...

随机推荐

  1. 关于expect脚本输出的问题

    写了一个expect脚本 执行ssh命令远程登录 然后telnet另外一台机器 大致如下: #!/usr/bin/expect -f set timeout set port_type [lindex ...

  2. ZOJ 3593.One Person Game-扩展欧几里得(exgcd)

    智障了,智障了,水一水博客. 本来是个水题,但是for循环遍历那里写挫了... One Person Game Time Limit: 2 Seconds      Memory Limit: 655 ...

  3. 51nod 1050 循环数组最大子段和【环形DP/最大子段和/正难则反】

    1050 循环数组最大子段和 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 N个整数组成的循环序列a[1],a[2],a[3],…,a[n],求该 ...

  4. [Machine Learning with Python] Cross Validation and Grid Search: An Example of KNN

    Train model: from sklearn.model_selection import GridSearchCV param_grid = [ # try 6 (3×2) combinati ...

  5. Decrease (Judge ver.)

    题目描述 We have a sequence of length N consisting of non-negative integers. Consider performing the fol ...

  6. getServletConfig().getInitParameter("count1") java.lang.NullPointerException

    通常在doget中 System.out.println(getServletConfig()); System.out.println(getServletConfig().getInitParam ...

  7. ABS已死: Archlinux 放弃支持 ABS

    今天访问archlinux官网,突然看到官方放弃支持ABS的新闻,声明如下: 由于 Arch Build System 的相关服务器端脚本的维护开销日益增高,我们决定放弃 abs及其相关的通过 rsy ...

  8. 【div+css】两个div,如何让内层的div在外层div中水平垂直居中

    好久没有写样式,很是很生疏 ==================================================================== 方法1: .parent { wi ...

  9. iOS开发中地图与定位

    不管是QQ还是微信的移动client都少不了定位功能,之前在微信demo中没有加入定位功能,今天就写个定位的小demo来了解一下定位和地图的东西. 地图和定位看上去是挺高大上一东西.其有使用方法比Ta ...

  10. 环信ONE SDK架构介绍

    环信ONE SDK架构介绍 摘要 环信即时通讯SDK自2014年6月正式公布2.0版本号至今已走过一个年头.从主要的单聊功能,到群聊功能,再到聊天室的实现.SDK无论是功能.稳定性,还是易集成性都在一 ...