文章转载:http://www.aboutyun.com/thread-14024-1-1.html

前期准备工作(系统环境搭建)
操作系统:CentOS 6.5 x64
CPU*2 64G 300G*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 -version和javac -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 和AgentServer配置(主节点)
下载地址: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 Manager Server和Agent都启动以后,就能够进行CDH5的安装配置了。
这时能够通过浏览器訪问主节点的7180port測试一下了(由于CM Server的启动须要花点时间,这里可能要等待一会才干訪问)。默认的username和password均为admin。

制作本地源
先下载CDH到本地http://archive-primary.cloudera.com/cdh5/parcels/5.3.4/,
这里须要下载三样东西,
首先是与自己系统版本号相相应的parcel包。然后是manifest.json文件。

CDH-5.2.0-1.cdh5.2.0.p0.12-el6.parcel、
CDH-5.2.0-1.cdh5.2.0.p0.12-el6.parcel.sha1、
manifest.json
下载完毕后,将这两个文件放到master节点的/opt/cloudera/parcel-repo下(文件夹在安装Cloudera Manager 5时已经生成),注意文件夹一个字都不能错。

[root@hadoop1 parcel-repo]# pwd
/opt/cloudera/parcel-repo
[root@hadoop1 parcel-repo]# ll
总用量 1533188
-rw-r-----. 1 root root 1569930781 6月  27 11:49 CDH-5.3.4-1.cdh5.3.4.p0.4-el6.parcel
-rw-r--r--. 1 root root         41 6月  27 11:49 CDH-5.3.4-1.cdh5.3.4.p0.4-el6.parcel.sha
-rw-r--r--. 1 root root      42475 6月  27 10:18 manifest.json
接下来打开manifest.json文件,里面是json格式的配置,我们须要的就是与我们系统版本号相相应的hash码,由于我们用的是Centos6.5,所以找到例如以下位置:
在这个大括号的最下面找到“hash”所相应的值。
将“hash”的值复制下来,然后,将CDH-5.2.0-1.cdh5.2.0.p0.12-el6.parcel.sha1文件名称改为CDH-5.2.0-1.cdh5.2.0.p0.12-el6.parcel.sha,将复制下来的hash值替换掉文本中的hash值,按理说应该是一致的。保存好了。这样,我们的本地源制作完毕了。
然后的操作就是控制台依照步骤安装就可以。

安装CDH
打开http://hadoop1:7180,登陆控制台。默认账户和password都是admin,安装时选择免费版。之后由于cm5对中文的支持非常强大。依照提示安装就可以,假设系统配置有什么问题在安装过程中会有提示。依据提示给系统安装组件就能够了。

登录界面

选取安装版本号

指定安装主机

选取本地Parcel包
接下来,出现下面包名。说明本地Parcel包配置无误,直接点继续就能够了。

集群安装

检查主机正确性
接下来是服务器检查,可能会遇到下面问题:

Cloudera 建议将 /proc/sys/vm/swappiness 设置为 0。当前设置为 60。
使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重新启动后保存该设置。
您能够继续进行安装,但可能会遇到问题,Cloudera Manager 报告您的主机由于交换运行状况不佳。

下面主机受到影响:
···
在会受到影响的主机上运行echo 0 > /proc/sys/vm/swappiness命令就可以解决。
选择安装服务

集群角色分配
普通情况下保持默认就能够了(Cloudera Manager会依据机器的配置自己主动进行配置,假设须要特殊调整。自行进行设置就能够了)。
集群数据库设置

集群审查更改
假设没有其他需求保持默认配置。
最终到安装各个服务的地方了。
注意,这里安装Hive的时候可能会报错,由于我们使用了MySql作为hive的元数据存储,hive默认没有带mysql的驱动,通过下面命令拷贝一个就可以了:

cp /opt/cm-5.3.4/share/cmf/lib/mysql-connector-java-5.1.25-bin.jar
/opt/cloudera/parcels/CDH-5.3.4-1.cdh5.3.4.p0.12/lib/hive/lib/
之后再继续安装就不会遇到问题了。

经过漫长的等待后。服务的安装完毕:
安装完毕后,就能够进入集群界面看一下集群的当前状况了。

測试

[root@hadoop1 /]# su hdfs
[hdfs@hadoop1 /]$ yarn jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar  pi 100 1000
Number of Maps  = 100
Samples per Map = 1000
Wrote input for Map #0
Wrote input for Map #1
Wrote input for Map #2
Wrote input for Map #3
Wrote input for Map #4
Wrote input for Map #5
Wrote input for Map #6
Wrote input for Map #7
Wrote input for Map #8
Wrote input for Map #9
Wrote input for Map #10
 
····
 
15/06/27 22:45:55 INFO mapreduce.Job:  map 100% reduce 0%
15/06/27 22:46:00 INFO mapreduce.Job:  map 100% reduce 100%
15/06/27 22:46:01 INFO mapreduce.Job: Job job_1435378145639_0001 completed successfully
15/06/27 22:46:01 INFO mapreduce.Job: Counters: 49
        Map-Reduce Framework
                Map input records=100
                Map output records=200
                Map output bytes=1800
                Map output materialized bytes=3400
                Input split bytes=14490
                Combine input records=0
                Combine output records=0
                Reduce input groups=2
                Reduce shuffle bytes=3400
                Reduce input records=200
                Reduce output records=0
                Spilled Records=400
                Shuffled Maps =100
                Failed Shuffles=0
                Merged Map outputs=100
                GC time elapsed (ms)=3791
                CPU time spent (ms)=134370
                Physical memory (bytes) snapshot=57824903168
                Virtual memory (bytes) snapshot=160584515584
                Total committed heap usage (bytes)=80012115968
        Shuffle Errors
                BAD_ID=0
                CONNECTION=0
                IO_ERROR=0
                WRONG_LENGTH=0
                WRONG_MAP=0
                WRONG_REDUCE=0
        File Input Format Counters
                Bytes Read=11800
        File Output Format Counters
                Bytes Written=97
Job Finished in 50.543 seconds
Estimated value of Pi is 3.14120000000000000000

查看mapreduce作业

检查Hue
首次登陆Hue会让设置一个初试的username和password,设置好,登陆到后台,会做一次检查,一切正常后会提示。
到这里表明我们的集群能够使用了。

离线安装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.2.0和CDH5 2.0

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

  3. 离线安装Cloudera Manager5.3.4与CDH5.3.4(一)

    这几天一直在安装CDH,头都搞大了,安装第三次,最终成功了. 第一次问题非常多.后面卸载了.由于没有卸载干净导致第二次安装失败. 后来索性重装系统了.直接使用了纯净系统进行安装.一个人跑到学院机房去装 ...

  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. HDU_1542_(树状数组)

    Stars Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  2. CREATE RULE - 定义一个新的重写规则

    SYNOPSIS CREATE [ OR REPLACE ] RULE name AS ON event TO table [ WHERE condition ] DO [ INSTEAD ] { N ...

  3. 02Hibernate基本配置

    Hibernate基本配置 1.引入jar 2.建立项目 3.创建实体类 package com.sqlserver.domain; public class Customer { long cust ...

  4. JS正则表达式验证(一)

    目录: 手机号验证 固定电话验证 手机号验证: 写法[1]--->!(/^1[34578]\d{9}$/.test(phone)):以1开头,第二位可能是3/4/5/7/8等的任意一个,在加上后 ...

  5. BZOJ 3996 线性代数 最小割

    题意: 给出一个N*N的矩阵B和一个1*N的矩阵C.求出一个1*N的01矩阵A.使得 D=(A*B-C)*A^T最大.其中A^T为A的转置.输出D 分析: 这道题比较绕,我们需要看清题目中那个式子的本 ...

  6. 计算机网络概述下(OSI模型)

    1. 用什么作为计算机网络的性能的指标? 1. 速率:即数据率或称数据传输速率或者比特率.(计算机网络的最重要的一个性能指标) 单位时间(秒)传输的信息(比特)量.单位:b/s(bps),kb/s,M ...

  7. 笔试算法题(28):删除乱序链表中的重复项 & 找出已经排好序的两个数组中的相同项

    出题:给定一个乱序链表,节点值为ASCII字符,但是其中有重复项,要求去除重复项并保证不改变剩余项的原有顺序: 分析:创建一个256(2^8)大小的bool数组,初始化为false,顺序读取链表,将字 ...

  8. C#基础学习(一)

    ---恢复内容开始--- 1.最近被安排去做C#开发,然后开始一连串的看文档·看视屏,发现学C#给自己补了很多基础,C#每个函数变量什么都要先声名,而python可以直接定义: 一.数据类型 1.整数 ...

  9. 用element-ui的走马灯carousel轻松实现自适应全屏banner图

    写在前面:网站轮播图建议使用swiper组件,非常方便快捷.vue轮播图插件之vue-awesome-swiper 接手一个项目,轮播图是用element-ui的carousel实现的,看起来效果还不 ...

  10. windows下mysql 5.7版本中修改编码为utf-8的方法

    方法如下 首先通过 show variables like 'character_set_%';查看mysql字符集情 默认编码为 latin1 然后关闭数据库 在mysql安装目录下找到my.ini ...