管理节点数为1,总共4块盘(每块600G),做raid10,为系统盘;剩余2块硬盘(每块2.4T)整体做RAID1,为数据磁盘
图1-1 namenode服务器配置
Raid | 用途 | 容量GB | 分区目录 | 容量 | 用途 |
Raid1 | 系统盘 | ≥600 | / | 50G | *** 作系统根分区,包括所有目录,除去下面的目录 |
/tmp | 30G | 临时文件目录 | |||
/var | 300G | *** 作系统运行时目录 | |||
/home | All | 程序存放目录 | |||
Raid1 | 元数据盘 | ≥600 | /home/tpsys | 2.4T | 数据目录 |
数据节点数为2,选择4块600G的硬盘做raid10,为系统盘;5块2.4T的盘整体做JBOD,为数据盘。
Raid | 用途 | 容量GB | 分区目录 | 容量 | 用途 |
Raid1 | 系统盘 | ≥600 | / | 50G | *** 作系统根分区,包括所有目录,除去下面的目录 |
/tmp | 30G | 临时文件目录 | |||
/var | 300G | *** 作系统运行时目录 | |||
/home | All | 程序存放目录 | |||
JBOD | 数据盘 | ≥600 | /home/tpsys | All | 存档DataNode数据以及MR中间数据 |
JBOD | 数据盘 | ≥600 | /home/tpsys | All |
图1-2 date node服务器配置
2.服务器网络配置 2.1 配置IP登录linux系统配置服务器IP
2.2 禁用IPV6使用vi命令编辑 /etc/sysctl.conf 文件,加入如下内容
命令:vi /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
并在命令行执行:sysctl -p
3. 基础配置 3.1 配置hostsVi /etc/hosts 添加:
10.0.96.141 node1
10.0.96.142 node2
10.0.96.143 nod
注意事项:注意主机名的大小写,若是存在问题,可增加小写别名
设置主机名生效:
命令行执行命令:hostnamectl set-hostname node1
执行命令验证:hostname
3.2 关闭SELINUX修改文件/etc/selinux/config 将其中的SELINUX=enforcing修改为disabled
图3-3 禁用selinux
3.3 查看防火墙状态执行命令:systemctl status firewalld
图3-4 查看防火墙状态
如是启用状态关闭防火墙
执行命令:systemctl stop firewalld
3.4 配置ssh免密登录此处只配置主界面免密访问agent节点
执行生成秘钥:
执行命令:ssh-keygen -t rsa
图3-5 生成秘钥
执行如下命令分发秘钥
执行命令:ssh-copy-id -i ~/.ssh/id_rsa.pub root@sztpisjfxapp01t
3.5安装oracle JDK关于JDK的安装,根据存在机器的环境来 *** 作,有些机器已经配置好了,可以直接使用。
创建JDK存放目录
执行命令:
for target in `cat /etc/hosts | grep -v localhost | grep -v ^$ | awk '{print $3}'`
do
ssh root@$target "mkdir -p /usr/java"
Done
切换至JDK tar包存放路径,解压JDK tar包并移动至 /usr/java
图3-6 解压JDK
执行命令:mv jdk1.8.0_144 /usr/java
分发解压包至所有节点/usr/java目录下面
执行命令:
for target in `cat /etc/hosts | grep -v localhost | grep -v ^$ | awk '{print $3}'`
do
scp -r /usr/java/jdk1.8.0_144 root@$target:/usr/java/
done
配置环境变量:
Vi /etc/profile
添加jdk路径:
export JAVA_HOME=/usr/java/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
图3-7 配置JDK环境变量
使配置文件生效:
source /etc/profile
使用openjdk安装:
卸载所有节点上的oracle jdk,安装yum自带的openjdk
执行命令:yum install -y java-1.8.0-openjdk
编辑cm文件:vim /etc/default/cloudera-scm-server
添加:export JAVA_HOME=”usr/lib/jvm/java-1.8.0-opnejdk”
重启cm server:systemctl restart cloudera-scm-server
3.6配置系统yum源准备好安装linux系统的镜像,版本至少要高与当前的系统版本,执行如下命令挂载
执行命令:mount -o loop CentOS-7-x86_64-DVD-1804.iso /media 制作镜像挂载
切换至/etc/yum.repos.d/目录下面,配置本地系统yum源
图3-8 配置系统本地yum源
配置完成执行命令yum clean all && yum makecache
备注:如使用本地yum源则需要每台机器上都进行如下 *** 作,也可以使用ftp yum源!
3.7 安装HTTPD 服务在cm节点安装httpd
执行命令:yum install -y httpd
启动http服务,输入命令:systemctl start httpd
将httpd服务添加到开机启动项,输入命令:chkconfig httpd on
查看httpd 的状态 ,输入命令:systemctl status httpd
图3-9 检查httpd的状态
修改/etc/httpd/conf/httpd.conf配置文件,在
AddType application/x-gzip .gz .tgz .parcel
systemctl restart httpd
3.8 安装并配置ntp服务执行如下命令安装ntpd服务
执行命令:yum -y install ntpd
修改所有节点的ntp配置文件
vi /etc/ntp.conf
主节点添加:
server 127.127.1.0
fudge 127.127.1.0 stratum 10
图3-10 ntp主节点配置文件
从节点(node1 =sztpisjfxapp01t.cntaiping.com)添加:
server sztpisjfxapp01t.cntaiping.com
fudge 127.127.1.0 stratum 10
图3-10 ntp从节点配置文件
如服务器时间偏差较大则执行命令手动同步
执行命令: ntpdate sztpisjfxapp01t.cntaiping.com
重启ntp服务
执行命令: systemctl restart ntpd
执行命令: ntpdc -np
图3-11 验证ntp是否同步成功
验证同步情况 =变成*表示同步成功!
3.9 安装createrepo ,配置CDH本地yum源执行命令:yum install -y createrepo
切换至: /etc/yum.repos.d/
touch cloudera-manager.repo
添加内容:
name=cloudera-manager,version6.1.1
baseurl=http://10.0.96.141/cdh6.1.1
gpgcheck=0
enabled=1
图3-12 配置cm本地yum源
把cm的安装包放置/var/www/html/cdh6.1.1 目录下面
allkeys.asc
cloudera-manager-agent-6.1.1-769885.el7.x86_64.rpm
cloudera-manager-daemons-6.1.1-769885.el7.x86_64.rpm
cloudera-manager-server-6.1.1-769885.el7.x86_64.rpm
cloudera-manager-server-db-2-6.1.1-769885.el7.x86_64.rpm
enterprise-debuginfo-6.1.1-853290.el7.x86_64.rpm
执行命令:createrepo cdh6.1.1
执行命令:yum clean all
执行命令:yum makecache
图3-13 重建yum cache
打开浏览器输入:http://10.0.96.141/cdh6.1.1 如能正常显示,表示执行成功。此处注意常用端口被禁问题。
3.10 所有节点关闭透明大页vim /etc/rc.local
添加内容:
touch /var/lock/subsys/local
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
图3-14 关闭透明大页
执行如下命令使生效
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
3.11 修改交换内存执行命令:vim /etc/sysctl.conf
在文件/etc/sysctl.conf文件中如下内容
vm.swappiness=0
图3-15 禁用交换内存
并在命令行执行
sysctl -p
3.12 安装psycopg安装依赖包
yum install -y gcc postgresql postgresql-server postgresql-devel python-devel
如果是python3 则安装python3-dev
将之前下载的psycopg文件解压并进入解压的psycopg文件夹执行命令
图3-16 解压psycopg
python setup.py build
python setup.py install
4. MYSQL安装 4.1解压安装mysql安装包解压mysql安装包mysql-5.7.12-1.el7.x86_64.rpm-bundle.tar
删除mysql-community-server-minimal-5.7.12-1.el7.x86_64.rpm
图4-1 mysql安装包
安装mysql包:
yum -y install mysql-community-*
4.2 启动mysql数据库启动mysql:
systemctl start mysqld
加入开机启动项:
systemctl enable mysqld
在日志文件中查看root密码:
cat /var/log/mysqld.log | grep password
初始化mysql数据库:
4.3 初始化mysql数据库执行 /usr/bin/mysql_secure_installation
图4-2 初始化mysql数据库
图4-3 初始化mysql数据库
解压包方式安装及远程连接授权的地址:
Linux下安装mysql-5.7.24 - 简书
*** 作:
mysql -u root -p
修改mysql密码:
set password for root@localhost = password('yourpass');
开放远程连接:
mysql>use mysql;
msyql>update user set user.Host='%' where user.User='root';
mysql>flush privileges;
4.4 创建cm需要的库
执行创建cdh使用的数据库:
mysql -u root --password='P@ssw0rd' -e 'create database metastore default character set utf8;'
mysql -u root --password='P@ssw0rd' -e "CREATE USER 'hive'@'%' IDENTIFIED BY 'P@ssw0rd';"
mysql -u root --password='P@ssw0rd' -e "GRANT ALL PRIVILEGES ON metastore. * TO 'hive'@'%';"
mysql -u root --password='P@ssw0rd' -e "create user 'amon'@'%' identified by 'P@ssw0rd'"
mysql -u root --password='P@ssw0rd' -e 'create database amon default character set utf8'
mysql -u root --password='P@ssw0rd' -e "grant all privileges on amon .* to 'amon'@'%'"
mysql -u root --password='P@ssw0rd' -e "create user 'rman'@'%' identified by 'P@ssw0rd'"
mysql -u root --password='P@ssw0rd' -e 'create database rman default character set utf8'
mysql -u root --password='P@ssw0rd' -e "grant all privileges on rman .* to 'rman'@'%'"
mysql -u root --password='P@ssw0rd' -e "create user 'sentry'@'%' identified by 'P@ssw0rd'"
mysql -u root --password='P@ssw0rd' -e 'create database sentry default character set utf8'
mysql -u root --password='P@ssw0rd' -e "grant all privileges on sentry.* to 'sentry'@'%'"
mysql -u root --password='P@ssw0rd' -e "create user 'nav'@'%'identified by 'P@ssw0rd'"
mysql -u root --password='P@ssw0rd' -e 'create database nav default character set utf8'
mysql -u root --password='P@ssw0rd' -e "grant all privileges on nav.* to 'nav'@'%'"
mysql -u root --password='P@ssw0rd' -e "create user 'navms'@'%' identified by 'P@ssw0rd'"
mysql -u root --password='P@ssw0rd' -e 'create database navms default character set utf8'
mysql -u root --password='P@ssw0rd' -e "grant all privileges on navms.* to 'navms'@'%'"
mysql -u root --password='P@ssw0rd' -e "create user 'cm'@'%' identified by 'P@ssw0rd'"
mysql -u root --password='P@ssw0rd' -e 'create database cm default character set utf8'
mysql -u root --password='P@ssw0rd' -e "grant all privileges on cm.* to 'cm'@'%'"
mysql -u root --password='P@ssw0rd' -e "create user 'oozie'@'%'identified by 'P@ssw0rd'"
mysql -u root --password='P@ssw0rd' -e 'create database oozie default character set utf8'
mysql -u root --password='P@ssw0rd' -e "grant all privileges on oozie.* to 'oozie'@'%'"
mysql -u root --password='P@ssw0rd' -e "create user 'hue'@'%' identified by 'P@ssw0rd'"
mysql -u root --password='P@ssw0rd' -e 'create database hue default character set utf8'
mysql -u root --password='P@ssw0rd' -e "grant all privileges on hue.* to 'hue'@'%'"
mysql -u root --password='P@ssw0rd' -e "FLUSH PRIVILEGES;"
或者通过navicat工具连接mysql,然后执行下面语句:
create database metastore default character set utf8;
CREATE USER 'hive'@'%' IDENTIFIED BY 'Mlamp@123';
GRANT ALL PRIVILEGES ON metastore.* TO 'hive'@'%';
create user 'amon'@'%' identified by 'Mlamp@123';
create database amon default character set utf8;
grant all privileges on amon.* to 'amon'@'%';
create user 'rman'@'%' identified by 'Mlamp@123';
create database rman default character set utf8;
grant all privileges on rman.* to 'rman'@'%';
create user 'sentry'@'%' identified by 'Mlamp@123';
create database sentry default character set utf8;
grant all privileges on sentry.* to 'sentry'@'%';
create user 'nav'@'%' identified by 'Mlamp@123';
create database nav default character set utf8;
grant all privileges on nav.* to 'nav'@'%';
create user 'navms'@'%' identified by 'Mlamp@123';
create database navms default character set utf8;
grant all privileges on navms.* to 'navms'@'%';
create user 'cm'@'%' identified by 'Mlamp@123';
create database cm default character set utf8;
grant all privileges on cm.* to 'cm'@'%';
create user 'oozie'@'%' identified by 'Mlamp@123';
create database oozie default character set utf8;
grant all privileges on oozie.* to 'oozie'@'%';
create user 'hue'@'%' identified by 'Mlamp@123';
create database hue default character set utf8;
grant all privileges on hue.* to 'hue'@'%';
FLUSH PRIVILEGES;
此处初始化过程是必须的,后面c m服务及组件安装都用到。
5. 安装cm服务 5.1 使用JDBC文件放到cm server同一台机器上。
*** 作一:
创建mysql JDBC jar包存放的路径:
for target in `cat /etc/hosts | grep -v localhost | grep -v ^$ | awk '{print $3}'`
do
ssh root@$target "mkdir /usr/share/java/"
Done
移动mysql-connector-java-5.1.44-bin.jar至/usr/share/java/ 目录下面
分发至所有节点:
for target in `cat /etc/hosts | grep -v localhost | grep -v ^$ | awk '{print $3}'`
do
scp /usr/share/java/mysql-connector-java-5.1.44-bin.jar root@$target:/usr/share/java/
done
创建软连接:
for target in `cat /etc/hosts | grep -v localhost | grep -v ^$ | awk '{print $3}'`
do
ssh root@$target "ln -s /usr/share/java/mysql-connector-java-5.1.44-bin.jar /usr/share/java/mysql-connector-java.jar"
done
*** 作二:
启动脚本显示:默认位置 /usr/share/java/ ,默认驱动名 mysql-connector-java.jar
# 创建文件夹
mkdir -p /usr/share/java/
# 进入 MySQL 驱动文件目录
cd /usr/share/java/
# 下载 MySQL 驱动
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
# 或者下载jar包:
wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.49/mysql-connector-java-5.1.49.jar
# -bash: wget: 未找到命令
yum -y install wget
# 解压压缩包
tar zxvf mysql-connector-java-5.1.46.tar.gz
# 复制并且重命名
cp /usr/share/java/mysql-connector-java-5.1.46/mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar
图5-1 mysql jdbc
5.2 安装cm server并初始化数据库先获取以下资源:
使用yum 命令安装cloudera manager
yum install -y cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
yum install -y cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
yum install -y cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm
安装完成后,配置cm数据库。
语法地址:
https://docs.cloudera.com/documentation/enterprise/6/6.3/topics/prepare_cm_database.html
描述与实例:
/opt/cloudera/cm/schema/scm_prepare_database.sh 数据库类型 数据库 用户名 密码
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql cm cm P@ssw0rd
日志如下:
JAVA_HOME=/usr/java/latest
Verifying that we can write to /etc/cloudera-scm-server
Creating SCM configuration file in /etc/cloudera-scm-server
Executing:/usr/java/latest/bin/jav-cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java.jar:/opt/cloudera/cm/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor/etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
[main] DbCommandExecutor INFO Successfully connected to database.
All done, your SCM database is configured correctly!
然后启动 CM-server:systemctl start cloudera-scm-server
查看数据库cm,会出现一堆表,说明 *** 作成功。
存在问题:
启动失败,如:
解决思路:确认jdk安装路径
CM会去 /usr/java 目录下加载jdk,对于使用yum/rpm安装的jdk,/usr/java 是默认路径,不会有问题。但对于使用二进制文件手动安装的jdk,可能不在这个路径下,解决方法是使用软连接将java路径连接到 usr/java
ln -s /data/java/jdk1.8.0_333 /usr/java/default
还有存在这种原因:
ln -s /data/java/jdk1.8.0_333/bin/java /usr/bin/java
ln -s /data/java/jdk1.8.0_333/bin/java /bin/java
日志显示正常,但数据库没有表,问题及方案如下。
方案一:解决思路。
问题解决:CDH6.3.1初始化scm_prepare_database数据库scm为空 - 灰信网(软件开发博客聚合)
方案二:从已有版本的数据库手动导表出来, *** 作如下:
步骤一:在本地一台机器部署mysql,安装 clouder-scm-server 服务,将初始的 scm 表 sql 导出。
mysqldump -uroot -p
步骤二:将备份的 sql 语句导入到线上 scm 库所在的地址。
mysql -h
主节点执行:
*** 作一:将CDH目录文件复制到如下目录
mkdir -p /opt/cloudera/parcel-repo
CDH-6.1.1-1.cdh6.1.1.p0.875250-el7.parcel
manifest_6.11.json
生成sha文件:
sha1sum CDH-6.1.1-1.cdh6.1.1.p0.875250-el7.parcel | awk '{print $1}' > CDH-6.1.1-1.cdh6.1.1.p0.875250-el7.parcel.sha
*** 作二:将CDH压缩包解压后,复制如下文件:
CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1
manifest.json
并将 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 改为 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha
图5-2 CDH安装包存放目录
注意,此步骤的文件必须 *** 作
5.4 重启cm服务至节点安装重启cm服务:
执行命令:systemctl restart cloudera-scm-server.service
重启过程中,这个目录 /opt/cloudera/parcel-repo下会生成如下文件
CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.torrent
若没有这个文件,需要排查原因。可能没有创建这个文件的权限,查看日志文件如下:
tail -f 10 /var/log/cloudera-scm-server/cloudera-scm-server.log
等待1分钟,登录浏览器进入页面:10.0.96.141:7180
若是想修改7180,则执行如下 *** 作:
mysql -uroot -p
use CM;
select * from CONFIGS where ATTR='http_port';
update CONFIGS set VALUE='8089' where ATTR='http_port';
重启服务:systemctl restart cloudera-scm-server.service
若是没有这个记录,则插入一条数据。
修改端口资料链接:https://blog.csdn.net/zcb_data/article/details/80814245
6.网页界面安装 6.1 界面安装登录浏览器进入页面:10.0.96.141:7180 用户名admin, 密码 admin
是否已经设置了AUTO-TLS,如果已经在前面设置了,会看到如下的提示,然后进入下一步
如果是连续的IP地址,可以像截图那样写,10.0.96.[141-143],表示总共是3个节点,IP分别为141,142,143,点Search进行扫描,扫描成功后,进入下一步
这里是指定安装包的位置,Cloudera Manager Agent 选择Custom Repository, 使用之前安装CM6的地址,如 http://10.0.96.141/cdh6.1.1
下面是选择CDH的Parcel 包位置,点more options 查看Local Parcel 目录是否为一开始存放Parcel 的位置,默认为/opt/cloudera/parcel-repo
如果不需要修改,点Cancel 关闭选项窗口,这时候如果系统找到安装包,会在外面的主界面上显示相应的CDH版本。如下图所示:
安装JDK, 前面的步骤已经安装JDK了,所以这里直接点下一步就可以了
输入各节点的root 密码,注意: 所有节点的root 密码需一致,然后点击下一步就开始安装了。此处若没有root账号,则使用普通账号免密 *** 作,注意部署过程的文件写入权限问题,需要实时查看日志。
等待安装完成
此处容易出现agent检测问题,如下:
安装失败。 无法接收 Agent 发出的检测信号。
请确保主机的名称已正确配置。
请确保端口 7182 可在 Cloudera Manager Server 上访问(检查防火墙规则)。
请确保正在添加的主机上的端口 9000 和 9001 空闲。
检查正在添加的主机上 /var/log/cloudera-scm-agent/ 中的代理日志(某些日志可在安装详细信息中找到)。
如果在 Cloudera Manager 中启用为代理使用 TLS 加密(管理 -> 设置 -> 安全),请确保 /etc/cloudera-scm-agent/config.ini 在正在添加的主机上有 use_tls=1。重启相应的代理,并单击此处的重试链接。
排查方式:
-
检查主机名称是否一致,涉及文件(/etc/hostname、 /etc/hosts、/etc/sysconfig/network),network需要重启(service network restart)
-
确保server服务启动,7182端口可以访问。
-
查看9000 、9001、19001端口是否被占用。
-
排查 /var/log/cloudera-scm-agent/ 中的日志。
-
检查是否开启了t l s加密 *** 作
安装完成后等待健康检查,检查没问题进入下一步
指定节点模版,因为是新装的,所以没有模版,下一步就可以了
根据不同的场景选择,默认为Essentials
这是点击Esstials 方案后,系统自动为每个节点给了的角色分配方案,需根据实时项目情况调整,这里以默认为例,进入下一步
这一步填入MYSQL所在的服务器,及对应数据库的名字,用户名及密码,然后点击下方的“TEST CONNECTION” 进行测试。此处的数据库及账号密码是 4.4 创建c m需要的库 的设置库账号密码
对节点的参数进行设置,本手册以默认配置作为示例
对节点的参数进行设置,本手册以默认配置作为示例
到这一步说明节点配置引导已经全部完成了,点击“Finish”关闭
这时会返回主界面,并能查看各服务的状态,至此,CDH6 的安装完成!!!
6.2 flink组件安装安装教程:CDH6.3.2集成Apache Flink1.12.0 - whcsrl_技术网
问题系列:
/opt/cloudera/parcels/FLINK/lib/flink/bin/flink-yarn.sh: line 17: rotateLogFilesWithPrefix: command not found
解决方案:
flink/bin/flink-yarn.sh: line 17: rotateLogFilesWithPrefix: command not found_BigBig_Data的博客-CSDN博客
所有机器上,执行如下 *** 作:
cd /opt/cloudera/parcels/FLINK/lib/flink/lib/
wget https://repo.maven.apache.org/maven2/org/apache/flink/flink-shaded-hadoop-2-uber/2.7.5-10.0/flink-shaded-hadoop-2-uber-2.7.5-10.0.jar
若是flink-shaded-hadoop-2-uber-2.7.5-10.0.jar版本不行,可以升级jar包
6.3 Hue组件安装安装教程:【CDH6】Hue 的安装及使用 - 链滴
7.问题集合 7.1 hive问题Required table missing : "VERSION" in Catalog "" Schema "". DataNucleus requires this table to perform its persistence operations. Either your MetaData is incorrect, or you need to enable "datanucleus.schema.autoCreateTables"
解决方案:去hive安装目录下的bin执行下面命令:
bin/schematool -dbType mysql -initSchema --verbose
若是遇到初始化失败问题,参考如下文章处理:
Hive初始化源数据库失败:Schema initialization FAILED! Metastore state would be inconsistent_我在燕京有把刀的博客-CSDN博客_hive初始化元数据库报错
若是存在加载MySQL驱动问题,则下载MySQL驱动到hive的lib目录下
若是执行出现 :Duplicate key name 'PCS_STATS_IDX' (state=42000,code=1061)
则删除MySQL的hive表,再重新建库,最后执行如下命令:
bin/schematool -dbType mysql -initSchema --verbose
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)