1.环境准备

CM和CDH版本为6.3
centos7.4 64位

CentOS Linux release 7.4.1708 (Core)

JDK1.8.0_181

java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
[root@t3-test-cq-ecs-dtpbu-incubator-01 ansible]# 

5.7.27-log
root用户安装

(1)ansible安装

yum -y install ansible

#修改配置文件
vim /etc/ansible/hosts
[incubator]
incubator--dc-006:53742
incubator--dc-007:53742
incubator--dc-008:53742
incubator--dc-009:53742
incubator--dc-010:53742
incubator--dc-011:53742
incubator--dc-012:53742

ansible incubator -m shell -a "yum -y install rsync"
ansible incubator -m shell -a "yum -y install telnet"
ansible incubator -m shell -a "yum -y install lrzsz"
ansible incubator -m shell -a "yum -y install iptraf"
ansible incubator -m shell -a "yum -y install ntpd"

(2)配置hosts

集群中各个节点之间能互相通信使用静态IP大发棋牌大发棋牌技巧技巧 地址 。IP大发棋牌大发棋牌技巧技巧 地址 和主机名通过/etc/hosts配置,主机名通过/etc/hostname进行配置。

172.16.16.244 incubator--dc-006
172.16.16.251 incubator--dc-007
172.16.16.252 incubator--dc-008
172.16.16.248 incubator--dc-009
172.16.16.245 incubator--dc-010
172.16.16.243 incubator--dc-011
172.16.16.247 incubator--dc-012

保存后执行

ansible incubator -m copy -a "src=/etc/hosts dest=/etc/"

(3)关闭防火墙

"systemctl stop firewalld"
"systemctl disable firewalld"
"systemctl status firewalld"

(4)关闭setlinux

临时修改"setenforce 0"。

配置文件修改。

集群所有节点修改/etc/selinux/config文件如下:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

(5)ssh大发棋牌大发棋牌技巧技巧 服务 root下启动

sed -i 's#PermitRootLogin no#PermitRootLogin yes#' /etc/ssh/sshd_config
echo "StrictHostKeyChecking no" >> /etc/ssh/ssh_config
systemctl reload sshd

(6)ssh免密登录

ssh-keygen -t rsa

一直回车。执行。

cat id_rsa.pub  > authorized_keys

拷贝 authorized_keys 到其他相关机器。
使用xshell多窗口操作功能一次性拷贝。

echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZq0X+BYWs0OxGDWqO7aZCTJ9YQL1kJB86uAkb6zQT1c+0MoEK0NMfcqiMe0To6JzjpWlHdTHeOgGo2zE+EgK/ofhQCdfNsdmgh4nq+NYMCQ6V4KaaXVC+hwGTTJTOsfgruw29ngbkwwq7nff8QmBTEnpRF4LDQWZOZvUP/Fn5Cp14iGT/t4hiCgQcT/DBI9iQQI3x6nGRKDuutApW0TZIbyipPzDGOBffL7bncjIp8wygj/h2uXKyRpdWTI3iQNjuu7Hbj0Kh1aXLphOHnYYqOl9CgbtvlhX0nwRiarwFxW+mwZeSbgeU40OxMcOrH6V1inWRdihK9360x/RP1z7t root@incubator--dc-012" > /root/.ssh/authorized_keys

ssh -p 53742 root@incubator--dc-011

注意:所有大发棋牌大发棋牌技巧技巧 服务 器全部要执行一次。

(7)ntp同步时间

设置NTP大发棋牌大发棋牌技巧技巧 服务 端使用大发棋牌大发棋牌技巧技巧 本地 时间进行同步。

# mv /etc/ntp.conf /etc/ntp.conf.original
# vim /etc/ntp.conf
restrict 172.16.16.0 mask 255.255.255.0 nomodify notrap #根据自己网段进行设置

server 127.127.1.0
fudge 127.127.1.0 stratum 10
driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntp.log

启动ntp大发棋牌大发棋牌技巧技巧 服务 。

# systemctl start ntpd
# systemctl enable ntpd

NTP客户端配置——配置除ntp大发棋牌大发棋牌技巧技巧 服务 端外的其它所有节点。

配置ntp客户端。

# mv /etc/ntp.conf /etc/ntp.conf.original
# vim /etc/ntp.conf
server 172.16.16.247 #设置成大发棋牌大发棋牌技巧技巧
本地
的NTP大发棋牌大发棋牌技巧技巧
服务
端IP大发棋牌大发棋牌技巧技巧
地址

启动ntp大发棋牌大发棋牌技巧技巧 服务 。

# systemctl start ntpd
# systemctl enable ntpd

手动同步时间。

# ntpdate -u 172.16.16.247
21 Aug 16:49:35 ntpdate[2941]: step time server 172.16.16.247 offset -27900.911531 sec

同步硬件时间。
# hwclock --systohc --localtime

(8)文件句柄修改

用户级修改临时生效大发棋牌技巧方法 ,重启后失效。ulimit 命令身是分软限制和硬限制,加-H就是硬限制,加-S就是软限制。默认显示的是软限制,如果运行ulimit 命令修改时没有加上-H或-S,就是两个参数一起改变。硬限制就是实际的限制,而软限制是警告限制,它只会给出警告。

ulimit -SHn 10000

  
用户级修改永久有效方式。

vi /etc/security/limits.conf

修改/etc/security/limits.conf文件,添加如下内容:

 * soft nofile 204800  
    * hard nofile 204800

    * soft nproc 204800
    * hard nproc 204800

2.大发棋牌大发棋牌技巧技巧 服务 裁剪

2.1.禁用 RHEL7系列Linux的TUNED大发棋牌大发棋牌技巧技巧 服务

一套新的系统调优大发棋牌大发棋牌技巧技巧 工具 tuned/tuned-adm,其中 tuned 是大发棋牌大发棋牌技巧技巧 服务 端程序,用来监控和收集系统各个组件的数据,并依据数据提供的信息动态调整系统设置,达到动态大发棋牌大发棋牌技巧技巧 优化 系统的目的。

确保tuned大发棋牌大发棋牌技巧技巧 服务 已开启 。

systemctl start tuned
systemctl status tuned

关闭tuned大发棋牌大发棋牌技巧技巧 服务 tuned-adm off。
确保没有已激活的配置tuned-adm list。
如果输出内容中包含No current active profile表示关闭成功:

关闭并且禁用tuned大发棋牌大发棋牌技巧技巧 服务 。
关闭并且禁用tuned大发棋牌大发棋牌技巧技巧 服务 。

systemctl stop tuned
systemctl disable tuned

2.2.禁用THP

大多数Linux平台都包含一个名为transparent hugepages的功能,该功能可能会严重降低Hadoop集群的性能。

注意:该部分操作将在系统重启后生效。

检查THP是否启用。对于RHEL7系列Linux,查看大发棋牌技巧方法 如下所示:

cat /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/defrag

输出[always] never意味着THP已启用,always [never]意味着THP未启用,下图就表示THP已启用:

禁用THP。编辑/etc/rc.d/rc.local文件,最下面添加两行配置:

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

然后赋予/etc/rc.d/rc.local文件可执行权限:
chmod +x /etc/rc.d/rc.local

拷贝文件:

ansible incubator -m copy -a "src=/etc/rc.d/rc.local   dest=/etc/rc.d/"
ansible incubator -m shell -a "echo never > /sys/kernel/mm/transparent_hugepage/enabled "
ansible incubator -m shell -a "echo never > /sys/kernel/mm/transparent_hugepage/defrag "

2.3. 调整Linux内核参数

需要调整的参数为vm.swappiness,是一个0-100的值,用于控制应用数据从物理内存到磁盘上的虚拟内存的交换,值越高,交换越积极,值越小,交换的次数越少。

查看当前该项参数值:
cat /proc/sys/vm/swappiness
2.修改该项参数值(临时生效):
sysctl -w vm.swappiness=1

编辑/etc/sysctl.conf文件(重启后永久生效),添加一行vm.swappiness=1:

2.4通过rng-tools自动补充熵池

yum -y install rng-tools
echo 'EXTRAOPTIONS="--rng-device /dev/urandom"' > /etc/sysconfig/rngd
systemctl start rngd

3.Cloudera manager安装

3.1.角色列表

172.16.16.244 incubator--dc-006
172.16.16.251 incubator--dc-007
172.16.16.252 incubator--dc-008
172.16.16.248 incubator--dc-009
172.16.16.245 incubator--dc-010
172.16.16.243 incubator--dc-011
172.16.16.247 incubator--dc-012 CM平台

3.2.搭建私服

httpd私服安装宿主机:172.16.16.247 incubator--dc-012 大发棋牌大发棋牌技巧技巧 服务 器

安装http大发棋牌大发棋牌技巧技巧
服务

yum -y install httpd  
启动httpd大发棋牌大发棋牌技巧技巧
服务
并设置开机自启动:
systemctl start httpd
systemctl enable httpd

上传所需文件包到/var/www/html/,大发棋牌大发棋牌技巧技巧 下载 路径:

CM
http://archive.cloudera.com/cm6/6.3.0/redhat7/yum/RPMS/x86_64/cloudera-manager-agent-6.3.0-1281944.el7.x86_64.rpm
http://archive.cloudera.com/cm6/6.3.0/redhat7/yum/RPMS/x86_64/cloudera-manager-daemons-6.3.0-1281944.el7.x86_64.rpm
http://archive.cloudera.com/cm6/6.3.0/redhat7/yum/RPMS/x86_64/cloudera-manager-server-6.3.0-1281944.el7.x86_64.rpm
http://archive.cloudera.com/cm6/6.3.0/redhat7/yum/RPMS/x86_64/cloudera-manager-server-db-2-6.3.0-1281944.el7.x86_64.rpm
http://archive.cloudera.com/cm6/6.3.0/redhat7/yum/RPMS/x86_64/enterprise-debuginfo-6.3.0-1281944.el7.x86_64.rpm
http://archive.cloudera.com/cm6/6.3.0/redhat7/yum/RPMS/x86_64/oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
http://archive.cloudera.com/cm6/6.3.0/allkeys.asc

CDH
http://archive.cloudera.com/cdh6/6.3.0/parcels/CDH-6.3.0-1.cdh6.3.0.p0.1279813-el7.parcel
http://archive.cloudera.com/cdh6/6.3.0/parcels/CDH-6.3.0-1.cdh6.3.0.p0.1279813-el7.parcel.sha1
http://archive.cloudera.com/cdh6/6.3.0/parcels/CDH-6.3.0-1.cdh6.3.0.p0.1279813-el7.parcel.sha256
http://archive.cloudera.com/cdh6/6.3.0/parcels/manifest.json

cm6.3私服 http://172.16.16.247/cm6.3/

cdh6.3私服 http://172.16.16.247/cdh6.3/

#配置cm-yum源
vim /etc/yum.repos.d/cloudera-manager.repo

[cloudera-manager]
name = Cloudera Manager, Version
baseurl = http://172.16.16.247/cm6.3/
gpgcheck = 1
enable = 1

拷贝yum源到其他大发棋牌大发棋牌技巧技巧
服务
器:
ansible incubator -m copy -a "src=/etc/yum.repos.d/cloudera-manager.repo  dest=/etc/yum.repos.d/"

3.3.jdk大发棋牌大发棋牌技巧技巧 服务 安装

JDK安装包
 在incubator--dc-012 机器上配置bigdata.sh
#set default jdk1.8 env
JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
JRE_HOME=/usr/java/jdk1.8.0_181-cloudera/jre
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME JRE_HOME PATH

文件拷贝:
ansible incubator -m copy -a "src=/etc/profile dest=/etc/"
ansible incubator -m copy -a "src=/etc/profile.d/bigdata.sh dest=/etc/profile.d/"
ansible incubator -m copy -a "src=/etc/yum.repos.d/cloudera-manager.repo  dest=/etc/yum.repos.d/"

//其他机器 ssh  -p 53742 root@incubator--dc-011
 ansible incubator -m shell -a "yum -y install  oracle-j2sdk1.8-1.8.0+update181*"
执行 java –version

3.4.mysql大发棋牌大发棋牌技巧技巧 服务 安装

安装包准备

wget http://repo.mysql.com/mysql57-community-release-el7-7.noarch.rpm
rpm -ivh  mysql57-community-release-el7-7.noarch.rpm
yum -y install mysql-community-server

配置编辑

vim /etc/my.cnf

[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
validate_password = off # 关闭强密码验证策略

启动大发棋牌大发棋牌技巧技巧 服务

systemctl enable mysqld
systemctl start mysqld
systemctl restart mysqld

查看密码

grep 'temporary password' /var/log/mysqld.log

初始密码: XHtRqLNhl0:7
授权

 mysql -uroot -p;
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码'  WITH GRANT OPTION;
FLUSH PRIVILEGES;

3.5.安装manager-server

yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
配置大发棋牌大发棋牌技巧技巧 本地 Parcel存储库
拷贝文件到/opt/cloudera/parcel-repo
改名:

mv CDH-6.3.0-1.cdh6.3.0.p0.1279813-el7.parcel.sha1 CDH-6.3.0-1.cdh6.3.0.p0.1279813-el7.parcel.sha

然后执行下面的命令修改文件所有者:

chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/*

3.6.安装mysqljdbc驱动

配置mysqljdbc驱动
大发棋牌大发棋牌技巧技巧 下载 好的mysql-connector-java-5.1.47.tar.gz包中解压出mysql-connector-java-5.1.47-bin.jar文件
ansible incubator -m shell -a "mkdir -pv /usr/share/java"

将mysql-connector-java-5.1.47-bin.jar 移动到/usr/share/java/下
mv mysql-connector-java-5.1.47-bin.jar /usr/share/java/mysql-connector-java.jar

其他机器安装:
ansible incubator -m copy -a "src=/usr/share/java/mysql-connector-java.jar dest=/usr/share/java/"

3.6.初始化数据库

建库

CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

创建用户和授权

GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'scm[root密码]';
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'amon[root密码]';
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'rman[root密码]';
GRANT ALL ON metastore.* TO 'metastore'@'%' IDENTIFIED BY 'metastore[root密码]';
GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY 'hive[root密码]';
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie[root密码]';
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'hue[root密码]';
FLUSH PRIVILEGES;

查看授权是否正确

SHOW GRANTS FOR 'scm'@'%';

Scm数据库初始化

mysql数据库与CM Server不在同一台主机上
执行命令:

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql   -h incubator--dc-012 -P3306 -uroot –p[root账号密码]  --scm-host incubator--dc-012 scm scm [scm密码]

3.6.cm server启动

systemctl start cloudera-scm-server
systemctl status cloudera-scm-server
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

//会自动在scm建表

然后等待Cloudera Manager Server启动,可能需要稍等一会儿,可以通过命令tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log去监控大发棋牌大发棋牌技巧技巧 服务 启动状态。
当看到INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.日志打印出来后,说明大发棋牌大发棋牌技巧技巧 服务 启动成功,可以通过浏览器访问Cloudera Manager WEB界面了。
http://172.16.16.247:7180

默认账号和密码都为admin:

添加主机
incubator--dc-[006-012]
ssh端口:53742

自定义库
http://172.16.16.247/cm6.3/

JDK选项

私钥配置

分配

完成

4.hadoop组件自定义安装



角色分配:

5.streamsets的集成安装

5.1.streamsets介绍

Streamsets是一款大数据实时采集和ETL大发棋牌大发棋牌技巧技巧 工具 ,可以实现不写一行代码完成数据的采集和流转。通过拖拽式的可视化界面,实现数据管道(Pipelines)的设计和定时任务调度。最大的特点有:

可视化界面操作,不写代码完成数据的采集和流转;
内置监控,可是实时查看数据流传输的基本信息和数据的质量;
强大的整合力,对现有常用组件全力支持,包括50种数据源、44种数据操作、46种目的地。

对于Streamsets来说,最重要的概念就是数据源(Origins)、操作(Processors)、目的地(Destinations)。创建一个Pipelines管道配置也基本是这三个方面。

常见的Origins有Kafka、HTTP、UDP、JDBC、HDFS等;Processors可以实现对每个字段的过滤、更改、编码、聚合等操作;Destinations跟Origins差不多,可以写入Kafka、Flume、JDBC、HDFS、Redis等。

5.2.streamsets安装

Httpd源安装
yum install -y httpd
service httpd start 

大发棋牌大发棋牌技巧技巧
下载
straeamsets.parcel
$ ll
total 5178852
-rw-r--r-- 1 root root       1277 Aug 15 10:35 manifest.json
-rw-r--r-- 1 root root 5303133804 Aug 15 10:36 STREAMSETS_DATACOLLECTOR-3.8.2-el7.parcel

STREAMSETS源
mkdir -p /var/www/html/cloudera-repos/streamsets3.8.2
cp STREAMSETS-3.8.2.jar /opt/cloudera/csd/


重启大发棋牌大发棋牌技巧技巧 服务

cloudera-scm-server

Cdh上分配激活streamsets
在CM界面中点击Parcel > 配置 > 添加StreamSets的Parcel包路径,并保持修改
http://172.16.16.247/cloudera-repos/streamsets3.8.2



5.3.CM页面安装streamsets大发棋牌大发棋牌技巧技巧 服务





5.4.登陆streamsets后台

用户名admin密码admin

5.5.安装驱动和sdc-extras(每个节点)


大发棋牌大发棋牌技巧技巧 搜索 -配置-env.sh添加

export STREAMSETS_LIBRARIES_EXTRA_DIR="/opt/cloudera/parcels/STREAMSETS_DATACOLLECTOR/sdc-extras/"
export SDC_JAVA_OPTS="-Xmx5120m -Xms5120m"

创建目录修改权限

mkdir /opt/cloudera/parcels/STREAMSETS_DATACOLLECTOR/sdc-extras/
chown -R sdc:sdc /opt/cloudera/parcels/STREAMSETS_DATACOLLECTOR/sdc-extras/


在 Streamsets 中大发棋牌大发棋牌技巧技巧 搜索 sdc-security.policy,添加
grant codebase "file:///opt/cloudera/parcels/STREAMSETS_DATACOLLECTOR/sdc-extras/-" {
permission java.security.AllPermission;
};

6.FAQ

6.1 CM-uuid错误

change the UUID in '/var/lib/cloudera-scm-agent/uuid' to the expected value of 94c2c90f-75bf-45fc-9387-6233476772f5, and then restart the Cloudera Manager Agent service.


原因:
大发棋牌大发棋牌技巧技巧 服务 器强制重启,uuid不识别,需要修改uuid一样的。
并且需要echo -n“uuid”,否则scm无法识别uuid文件符号。
解决:

cd /var/lib/cloudera-scm-agent/
echo -n "13345f3d-0f23-4e8e-b97d-64ee4609db3c" >> uuid
file uuid
重启scm-server

6.2Mount point / should not be configured

Mount point / should not be configured for any nameservice as overlapping mount points are not currently supported in HDFS.

解决方案:
不能是/目录,修改装入点

6.3Log not rolled. Name node is in safe mode

org.apache.hadoop.hdfs.server.namenode.SafeModeException: Log not rolled. Name node is in safe mode.

解决方案:

bash-4.2$ hdfs dfsadmin -safemode enter
Safe mode is ON in incubator-t3-dc-006/172.16.16.244:8020
Safe mode is ON in incubator-t3-dc-007/172.16.16.251:8020
bash-4.2$ hdfs dfsadmin -safemode leave
Safe mode is OFF in incubator-t3-dc-006/172.16.16.244:8020
Safe mode is OFF in incubator-t3-dc-007/172.16.16.251:8020
bash-4.2$ 

6.4报错 Canary 测试无法在目录

报错 Canary 测试无法在目录 /tmp/.cloudera_health_monitoring_canary_files 中创建文件。

经过查看日志,发现 Name node is in safe mode.

解决:

sudo -uhdfs hdfs dfsadmin -safemode leave