一定要细心
CDH:(Cloudera`s Distribution ,inclluding Apache Hadoop),是Hadoop众多分支中的一个,由Cloudera维护,基于稳定版本的Apache Hadoop构建,并集成了很多的补丁,稳定
Cloudera Manager 则是为了便于在集群中进行 Hadoop 等大数据处理相关
的服务安装和监控管理的组件,对集群中主机、Hadoop、Hive、Spark 等服务
的安装配置管理做了极大简化。
1、准备工作
cloudera-manager下载
下载地址http://archive.cloudera.com/cm5/cm/5/
cloudera-manager-centos7-cm5.5.x。tar.gz
tar -zxf 放入到/opt/
安装包下载http://archive.cloudera.com/cdh5/parcels/5.5.1.11/
CDH-5.5.X-1.cdh5.5.0.p0.8-el7.parcel
CDH-5.5.X-1.cdh5.5.0.p0.8-el7.parcel.sha1
manifest.json (用火狐下载,其他的浏览器只能查看,不能下载)
放入目录 /opt/cloudera/parcel-repo
1、linux的环境配置,关闭防火墙与selinux
在虚拟机中最小化方式安装的centos7中,无法上网,激活网卡,在文件、/etc/sysconfig/network-scripts/ifcfg-ens32中进入编辑模式,将ONBOOT=no 改为ONBOOT=yes,就OK
重新启动网卡:service network restart
查看是否关闭防火墙 firewall-cmd --state
关闭防火墙 systemctl stop firewalld.service
禁止开机启动 systemctl disable firewalld.service
关闭selinux
vim /etc/sysconfig/selinux
SELINUX=disabled
我之前安装测试的时候发现在安装的时候selinux没有关闭 没有出现什么问题 但是我建议关闭,因为不知道会出现什么问题
2、配置免密登录
#生成 ssh 免登陆密钥
ssh-keygen -t rsa (四个回车)
执行完这个命令后,会生成 id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免密登陆的目标机器上ssh-copy-id root@ip
ssh-copy-id node-02
测试是否成功
ssh root@node01
3、配置IP,主机名,映射(一定要注释或删除ipv6)不要有下划线
vi /etc/hosts
hostname +名字
192.168.86.231 node1
192.168.86.231 node1
192.168.86.231 node1
192.168.86.231 node1
192.168.86.231 node1
vi /etc/sysconfig/network
各节点hostname修改
NETWOKING=yes
HOSTNAME=cdh2 master
(修改完必须重新启动)
从节点
NETWORKING=yes
HOSTNAME=本机IP
。。。。。。
4、更新glibc
yum install glibc.i686
修改yum源
yum install wget
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
yum clean all
yum makecache
5、jdk、 (一定是orcale jdk rpm 包)
rpm -qa|gerp java 删除原生依赖
yum -y remove
依赖安装(最好都执行一遍 ,因为你不知道你会缺哪个)
yum install -y chkconfig
yum install -y Python
yum install -y bind-utils
yum install -y psmisc
yum install -y libxslt
yum install -y zlib
yum install -y sqlite
yum install -y cyrus-sasl-plain
yum install -y cyrus-sasl-gssapi
yum install -y fuse
yum install -y portmap
yum install -y fuse-libs
yum install -y redhat-lsb
yum install -y bind-utils
yum install -y libxslt
yum install -y sqlite
rpm -qa |grep jdk 查找已安装的jdk
卸载
rpm -evh --nodeps
安装rpm -ivh
安装 rpm -ivh jdk-8u151-linux-x64.rpm
1、查看并卸载openjdk
rpm -e --nodeps tzdata-java-2017b-1.el6.noarch rpm -e --nodeps java-1.8.0-openjdk-1.8.0.144-0.b01.el6_9.x86_64 rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.144-0.b01.el6_9.x86_64 rpm -e --nodeps java-1.8.0-openjdk-devel-1.8.0.144-0.b01.el6_9.x86_64
2、下载oracle jdk
3、安装
4、配置环境变量
JAVA_HOME=/usr/java/jdk1.8.0_151 JRE_HOME=$JAVA_HOME/jre CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export JAVA_HOME JRE_HOME CLASS_PATH PATH
5、安装成功
scp -r z/ node02:$PWD
6、ntp服务安装
yum install -y ntp
chkconfig ntpd on
ntpdate cn.pool.ntp.org
//主节点master245修改vi /etc/ntp.conf
去掉注释:restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
service ntpd start
//子节点设置
ntpdate -u master245
service ntpd start systemctl start mysqld.service
chkconfig ntpd on
8、MySQL 5.7
set global validate_password_policy=0;
判断密码的标准就基于密码的长度了。这个由validate_password_length参数来决定。
select @@validate_password_length;
set global validate_password_length=1;
select @@validate_password_mixed_case_count;
set global validate_password_mixed_case_count=2;
select @@validate_password_length;
安装cm报错 是mysql的密码过于简单 上面是解决方案 详情见http://www.cnblogs.com/ivictor/p/5142809.html
进入mysql命令行,创建数据库
//hive
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
//activity monitor
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
如果需要安装Oozie请创建
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
1). --hive 数据库
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
2). --集群监控数据库
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
3). --hue 数据库
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
4). --oozie 数据库
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
解除 Linux 系统的最大进程数和最大文件打开数限制:
vi /etc/security/limits.conf
# 添加如下的行
* soft noproc 11000
* hard noproc 11000
* soft nofile 65535
* hard nofile 65535
说明:* 代表针对所有用户,noproc 是代表最大进程数,nofile 是代表最大文件打开数
i) 特殊配置(CM 要求):
1、echo 0 > /proc/sys/vm/swappiness
2、echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
9、安装CM Server和Agent
1、vi /etc/sudoer 在 master 节点上
# Defaults requiretty
加一行:cloudera-scm ALL=(ALL) NOPASSWD: ALL
1 主节点解压安装
cloudera manager 的目录默认位置在/opt下,解压:将解压后的目录放在、opt目录下
2 为cloudera Mavager5创建数据库
在mysql官网砂锅面下载JDBD驱动http://dev.mysql.com/downloads/connector/j/,解压后,找到 mysql-connector-java-5.1.33-bin.jar,放到/opt/cm-5.1.3/share/cmf/lib/中。
在主节点初始化CM5的数据库
useradd --system --home=/opt/cm-5.5.3/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
3、Agent配置
修改/opt/cm-5.5.0/etc/clousera-scm-agent/config.ini中server_host为主节点的主机名
同步到Agent到其他节点
scp -r /opt/cm-5.5.0 root@cdh3:/opt/
4、在所有节点创建cloudera-scm用户
useradd --system --home=/opt/cm-5.5.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
最后将CDH-5.5.0-1.cdh5.5.0.p0.8-el7.parcel.sha1 从命名CDH-5.5.X-1.cdh5.5.0.p0.8-el7.parcel.sha,
5、启动CM ServerAgent
/opt/cm-5.5.0/etc/init.d/cloudera-scm-server start
/opt/cm-5.5.0/etc/init.d/cloudera-scm-server start(在每个节点上面启动)
注意 server 首次启动不要立即关闭或重启,因为首次启动会自动创建相关表以及数据,如果因为特
殊原因中途退出,请先删除所有表以及数据之后再次启动,否则将会出现启动不成功的情况。可以查看
CM 日志。
tail -f /opt/cm-5.4.5/log/cloudera-scm-server/cloudera-scm-server.log
通过浏览器访问主节点7180端口测试(由于CM Server的启动需要花点时间,这里可能等待一会才能访问)
默认的密码均是admin
接下来是服务器检查,可能会遇到以下问题:
Cloudera 建议将 /proc/sys/vm/swappiness 设置为 0。当前设置为 60。使用 sysctl 命令在
运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。您可以继续进行安装,但可能
会遇到问题,Cloudera Manager 报告您的主机由于交换运行状况不佳。以下主机受到影响:
通过 echo 0 > /proc/sys/vm/swappiness 即可解决
解决:echo never > /sys/kernel/mm/transparent_hugepage/defrag
如果没有什么特别需要的,按照默认即可
设置之后要设值namenode和secouderynamenode的物理内存,最低1G
出现安装失败后重装
1、安装失败之后重装
1、删除Agent节点的UUID
rm-rf /opt/cm-5.1.3/lib/cloudera-scm-agent/*
2、清空主节点CM数据库
进入主节点的Mysql数据库,drop database scm;
3、删除Agent节点namenode和datanode节点信息
rm-rf /opt/dfs/nn/*
rm-rf /opt/dfs/dn/*
4、在主节点上重新初始化CM数据库
useradd --system --home=/opt/cm-5.5.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
5、执行启动脚本
主节点:/opt/cm-5.1.3/etc/init.d/cloudera-scm-server start
从节点:/opt/cm-5.1.3/etc/init.d/cloudera-scm-server start
http://主节点IP:7180/cmf/login
1.段错误
访问的内存超过了系统所给这个程序的内存空间,由gdtr保存
[root@cdh2 ~]# /opt/cm-5.1.3/etc/init.d/cloudera-scm-agent start
Starting cloudera-scm-agent: /opt/cm-5.1.3/etc/init.d/cloudera-scm-agent: line 106: 5277 Segmentation fault nohup $AGENT_SCRIPT $CMF_AGENT_ARGS >> $AGENT_OUT 2>&1 < /dev/null
[FAILED]
错误:当程序试图访问了不被允许的内存区域,(比如,尝试写一块数据操作系统的内存,)或以错误的类型访问了内存区域(比如,尝试了一块只读内存),详细的说 段错误应该就是访问了不可访问的内存,这个内存要么不存在的 要么是受系统保护的。
解决:
1、装一个 wget "http://ftp.gnu.org/gnu/gdb/gdb-7.11.tar.gz"这个是帮助解决段错误的网址
2、提取它 tar -xvzf gdb-7.11.tar.gz
3、配置并编译 cd gdb-7.11.tar.gz ./configure make
4、安装GDB make install 默认情况下,这将在/ usr / local / bin和/ usr / local / lib中的libs中安 装gdb二进制文件
2.拒绝访问mysql数据库
错误 :你的密码太过于简单,5.7版本的密码策略,
解决:修改之后发现还是这个问题 ,在网上搜到修改mysql密码和密码策略之后就可以,但是这个还是没有解决这个问题 ,装的mysql5.6没有出现这个问题
3、cloudrea-scm-agent start 启动失败
查询日志 在/opt/cm-xxx/下面没有Agent目录
解决:
删除~/.ssh/known_hosts文件,或者如果你可以判断出known_hosts中原ssh服务器的公钥,删去那部分,然后后再次建立新的连接,即可获得新的公钥。
集群添加新的节点、新增主机
当ValueError: too many values to unpack
出现这个问题会导致parcel一直处于分发阶段
解决方案:
修改/usr/lib64/cmf/agent/build/env/lib/python2.7/site-packages/cmf-5.5.0-py2.7.egg/cmf/client_configs.py脚本的第444行代码.
修改为:(一定要粘贴复制,原因:python代码的格式要求比较严,)
for line in output.splitlines():
if line.startswith("/"):
if len(line.rstrip().split(" "))<=4:
path, _, _, priority_str = line.rstrip().split(" ")
# Ignore the alternative if it's not managed by CM.
if CM_MAGIC_PREFIX not in os.path.basename(path):
continue
try:
priority = int(priority_str)
except ValueError:
THROTTLED_LOG.info("Failed to parse %s: %s", name, line)
key = ClientConfigKey(name, path)
value = ClientConfigValue(priority, self._read_generation(path))
ret[key] = value
else:
pass
return ret