CDH及软件安装部署

1. Linux配置优化

1.1 Swappiness虚拟内存

swappiness是Linux的一个内核参数,控制系统在使用swap虚拟内存时,内存使用的相对权重。
swappiness参数值可设置范围在0到100之间。 此参数值越低,就会让Linux系统尽量少用swap虚拟内存分区,多用内存;参数值越高就是反过来,使内核更多的去使用swap空间。推荐设置为10。根据服务器硬件配置会有变化。
临时生效:

sysctl -w vm.swappiness=10

永久生效:

echo "vm.swappiness=10" >> /etc/sysctl.conf

1.2 关闭内存动态分配(内存页透明化)

自CentOS6版本开始引入了Transparent Huge Pages(THP透明的巨大的页面),从CentOS7版本开始,该特性默认就会启用。
Transparent HugePages是在运行时动态分配内存的,而标准的HugePages是在系统启动时预先分配内存,并在系统运行时不再改变。
因为Transparent HugePages是在运行时动态分配内存的,所以会带来在运行时内存分配延误。
因此,尽管THP的本意是为提升内存的性能,不过某些数据库厂商还是建议直接关闭THP(比如说Cloudera、ORACLE、MariaDB、MongoDB等),否则可能会导致性能出现下降。
临时生效:

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

永久生效:

echo "echo never > /sys/kernel/mm/transparent_hugepage/defrag" >> /etc/rc.local
echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.local

1.3 最大文件句柄

Maximum File Handles,大数据服务可能会打开非常大量的文件句柄。通过编辑 /etc/security/limits.conf 来增加限制,添加类似的内容:

* hard nofile 50000
* soft nofile 50000

第一行是指定用户,前面的 * 代表所有用户。

1.4 最大派生进程数

Maximum Forked Processes,配置允许生成大量的线程。要增加Linux允许的数量,编辑 /etc/security/limits.conf

* hard nproc 10000
* soft nproc 10000

发行版Linux可能需要通过添加来编辑 /etc/security/limits.d/20-nproc.conf

* soft nproc 10000

1.5 TCP Socket端口数

增加可用的TCP套接字端口数(Increase the number of TCP socket ports available),如果你的流程会在很短的时间内创建并拆除大量socket,这一点尤为重要。

sudo sysctl -w net.ipv4.ip_local_port_range ="10000 65000"

1.6 缩减Socket闲置时间

socket连接闲置太长时间会影响并发量,设置socket在保持TIMED_WAIT状态的时间,能够快速创建和销毁新socket。

sudo sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait ="1"

1.7 提高IO性能

默认的方式下linux会把文件访问的时间atime做记录,文件系统在文件被访问、创建、修改等的时候记录下了文件的一些时间戳,比如:文件创建时间、最近一次修改时间和最近一次访问时间;这在绝大部分的场合都是没有必要的。
因为系统运行的时候要访问大量文件,如果能减少一些动作(比如减少时间戳的记录次数等)将会显著提高磁盘 IO 的效率、提升文件系统的性能。
如果遇到机器IO负载高或是CPU WAIT高的情况,可以尝试使用noatime和nodiratime禁止记录最近一次访问时间戳。你会发现吞吐量有惊人的提高。
比如我要在根文件系统使用noatime,可以编辑/etc/fstab文件,如下:

/dev/mapper/centos-root /      xfs     defaults,noatime        0 0
UUID=47f23406-2cda-4601-93b6-09030b30e2dd /boot     xfs     defaults        0 0
/dev/mapper/centos-swap swap     swap    defaults        0 0

修改后重新挂载

mount -o remount /
或者
mount -o remount /boot

2. 安装Server和Agent

2.1 安装Server服务

此步骤仅在第一台服务器安装。

yum install -y oracle-j2sdk1.8-1.8.0+update181-1.x86_64
yum install -y enterprise-debuginfo-6.2.1-1426065.el7.x86_64
yum install -y cloudera-manager-server-6.2.1-1426065.el7.x86_64
yum install -y cloudera-manager-server-db-2-6.2.1-1426065.el7.x86_64

注意:如果在yum源中添加了新的包时:
1.需要删除之前的repodata文件后,重新生成;
2.重启httpd服务
3.清除yum缓存 yum clean all
在这里插入图片描述

2.2 设置元数据库为mysql

设置元数据库为mysql–前提是安装ClouderaManager Server服务

/opt/cloudera/cm/schema/scm_prepare_database.sh -h localhost mysql scm root 123456

旧版本CM:

/usr/share/cmf/schema/scm_prepare_database.sh -h localhost mysql scm root 123456

如果提示ERROR JDBC Driver com.mysql.jdbc.Driver not found,需要上传mysql驱动包jar到/opt/cloudera/cm/lib目录下。
在这里插入图片描述
Mysql驱动在这里插入图片描述
查看:cat /etc/cloudera-scm-server/db.properties
在这里插入图片描述

2.3 启动server服务进程(查看7180端口)

启动:

systemctl start cloudera-scm-server

查看server启动日志:

tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

日志配置信息:/etc/cloudera-scm-server/log4j.properties
Agent日志目录:/var/log/cloudera-scm-agent/cloudera-scm-agent.log

查看启动状态:

systemctl status cloudera-scm-server

在这里插入图片描述
#查看端口号是否已经运行

netstat -an | grep 7180

在这里插入图片描述

2.4 配置本地parcel包

注意:必须要在数据库初始化后,将parcel文件放置到/opt/cloudera/parcel-repo目录中。

  1. 上传cdh6的parcel等文件到opt/cloudera/parcel-repo
  2. 重命名密钥文件名
mv CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha1 CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha

在这里插入图片描述
资料文件:
在这里插入图片描述

2.5 开始安装

访问Server:http://hadoop01:7180/cmf/login
账号密码均为admin
在这里插入图片描述
登录后,先不要安装,先返回首页:
在这里插入图片描述
先设置Parcel 更新频率:
在这里插入图片描述
修改为1分钟:
在这里插入图片描述
如果目录下已经有了后缀为torrent的文件,则证明识别成功:
在这里插入图片描述
然后重新进入添加集群页面:
在这里插入图片描述
下一步:
在这里插入图片描述
选择免费版本的ClouderaManager:
在这里插入图片描述
设置集群名称:
在这里插入图片描述
选择安装的服务器:
在这里插入图片描述
选择存储库:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
运行安装:
在这里插入图片描述
在这里插入图片描述
测试网络和主机:
在这里插入图片描述
查看检查结果:
在这里插入图片描述
如果有问题,就需要修复后再继续
在这里插入图片描述
图中显示的问题,就是下一步要处理的,swappiness和透明化。

2.6 swappiness和透明化

临时生效:

sysctl -w vm.swappiness=10
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled

永久生效:

echo "vm.swappiness=10" >> /etc/sysctl.conf
echo "echo never > /sys/kernel/mm/transparent_hugepage/defrag" >> /etc/rc.local
echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.local

2.7 继续创建集群

然后回到刚才的安装页面,选择继续创建集群:
在这里插入图片描述
安装成功,返回首页查看主机:
在这里插入图片描述

2.8 添加第二台主机

在这里插入图片描述
添加第二台服务器节点:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
运行检查后,对hadoop02节点也要执行swappiness和透明化操作。然后继续下一步:
在这里插入图片描述
添加新节点完成:
在这里插入图片描述

3. 添加监控Service

3.1.1 功能

Cloudera Management Service可作为一组角色实施各种监控管理
1.Activity Monitor:收集关于MapReduce服务运行的活动的信息。默认情况下不添加此角色,实际生产环境也是不需要的。
2.Host Monitor:收集有关主机的运行状况和指标信息。
3.Service Monitor:从YARN和Impala服务中收集关于服务和活动信息的健康和度量信息。
4.Event Server:聚合组件的事件并将其用于警报和搜索。
5.Alert Publisher :为特定类型的事件生成和提供警报,实际情况下用的也少。

3.1.2 安装

  1. 开始添加
    在这里插入图片描述
  2. 自定义角色分配服务器
    在这里插入图片描述
  3. 分配权限后继续
mkdir -p /var/lib/cloudera-host-monitor
mkdir /var/lib/cloudera-service-monitor
chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-host-monitor chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-service-monitor/

在这里插入图片描述
4. 开始安装
在这里插入图片描述
5. 可以看到报警信息
在这里插入图片描述
6. 经过一段时间后,可以看到这段时间内的服务器监控信息
在这里插入图片描述

4. 添加大数据组件

4.1 添加HDFS服务

  1. 点击添加
    在这里插入图片描述
  2. 选择HDFS
    在这里插入图片描述
  3. 自定义角色分配服务器
    在这里插入图片描述
  4. 审核更改使用默认配置下一步
  5. 运行安装命令
    在这里插入图片描述
  6. 等待完全启动
    安装以后,会有一些异常信息,这是还没有完全启动,需要等待一段时间。
    在这里插入图片描述
  7. 抑制无关紧要的警告信息
    在这里插入图片描述
  8. HDFS配置项dfs.permissions,改为false,否则会因为权限问题不能再hdfs中创建目录和文件。
Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Permission denied: user=admin, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x
        at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:400)

在这里插入图片描述
在这里插入图片描述
设置后需要重启服务
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
9. 关闭safemode模型

#查看当前的safemode状态
hdfs dfsadmin -safemode get
#关闭safemode
hdfs dfsadmin -safemode leave
  1. 查看Hadoop WebUI
    在这里插入图片描述
    在这里插入图片描述
  2. 测试HDFS
hdfs dfs -mkdir /test

4.2 添加Yarn服务

  1. 添加服务
    在这里插入图片描述
    在这里插入图片描述
  2. 角色分配服务器
    在这里插入图片描述
  3. 使用默认配置
    在这里插入图片描述
  4. 运行安装命令
    在这里插入图片描述
  5. 对于无用的警告可以压制掉
    在这里插入图片描述
  6. 测试
#新建一个文本文件
vim testinput.txt

在这里插入图片描述

#创建HDFS目录
hadoop fs -mkdir /input

在这里插入图片描述

#上传文件到HDFS
hadoop fs -put /home/hadoop/data/testiinput.txt /input

在这里插入图片描述

#运行WordCount
yarn jar /opt/cloudera/parcels/CDH/jars/hadoop-mapreduce-examples-3.0.0-cdh6.2.1.jar wordcount /input /output

在这里插入图片描述

#执行结束后,查看输出目录
hadoop fs -ls /output

在这里插入图片描述

#查看输出结果
hadoop fs -cat /output/part-r-00000

在这里插入图片描述

4.3 添加Zookeeper服务

  1. 添加
    在这里插入图片描述
  2. 自定义角色服务器
    在这里插入图片描述
  3. 如果有异常报警,请等待一段时间完全启动后再刷新看看
    在这里插入图片描述
    在这里插入图片描述

4.4 添加Hive服务

  1. 添加服务
    在这里插入图片描述

  2. 选择依赖
    在这里插入图片描述

  3. 自定义角色分配服务
    在这里插入图片描述

  4. 设置元数据库
    在这里插入图片描述

  5. 点击测试连接
    在这里插入图片描述
    提示ERROR JDBC Driver com.mysql.jdbc.Driver not found.
    需要上传mysql驱动包jar到/opt/cloudera/cm/lib目录下。

  6. 继续测试
    在这里插入图片描述
    提示:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver。
    需要先创建数据库:

mysql -uroot -p
create database hive;
  1. 测试通过
    在这里插入图片描述
  2. 审核更改
    在这里插入图片描述
  3. 运行命令
    发现报错
    在这里插入图片描述
    点击stderr查看报错详情
    在这里插入图片描述
    提示:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    之前是CM找不到驱动,现在是Hive找不到mysql驱动:
cp /opt/cloudera/cm/lib/mysql-connector-java-5.1.40.jar /opt/cloudera/parcels/CDH/lib/hive/lib/
  1. 完成安装
    在这里插入图片描述
  2. 查看HiveServer2 Web UI
    在这里插入图片描述
  3. 验证Hive是否可用
hive
select from_unixtime(1583781807, 'yyyy-MM-dd');

在这里插入图片描述

4.5 添加Oozie服务

  1. 添加服务
    在这里插入图片描述
  2. 选择依赖
    在这里插入图片描述
  3. 分配服务器
    在这里插入图片描述
  4. 设置元数据库
    先在mysql中创建数据库
mysql -uroot -p
create database oozie;

然后配置并测试连接:
在这里插入图片描述
5. 运行安装命令
在这里插入图片描述
提示:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
需要复制驱动jar:

cp /opt/cloudera/cm/lib/mysql-connector-java-5.1.40.jar /opt/cloudera/parcels/CDH/lib/oozie/lib/
cp /opt/cloudera/cm/lib/mysql-connector-java-5.1.40.jar /var/lib/oozie/

  1. 安装成功
    在这里插入图片描述

4.6 添加Sqoop服务

  1. 添加服务
    虽然现在已经有sqoop2.x版本,但还是推荐大家使用1.x。
    在这里插入图片描述
  2. 角色分配服务器
    在这里插入图片描述
  3. 安装完成
    在这里插入图片描述
    在这里插入图片描述
  4. 测试sqoop
    4.1 创建mysql测试库和表
mysql -uroot -p
create schema test;
create table test
(
	id bigint auto_increment,
	name varchar(127) not null,
	age bigint null,
	class varchar(255) null,
	primary key (id)
);

4.2 创建文本文件并上传到HDFS

#创建文件
vim text.txt

leo|12|class1
leo1|13|class2
leo2|14|class3
leo3|15|class4
leo4|16|class5
leo5|17|class6

#上传到HDFS
hdfs dfs -mkdir -p /data/test/
hdfs dfs -put ./test.txt /data/test/
#查看是否上传成功
hdfs dfs -cat /data/test/*

在这里插入图片描述
4.3 执行sqoop命令

sqoop export \
--connect jdbc:mysql://hadoop01:3306/test \
--username root \
--password 123456 \
--table test \
--columns 'name,age,class' \
--export-dir /data/test \
--input-fields-terminated-by '|' \
--num-mappers 1

4.4 发现报错,缺少驱动
在这里插入图片描述
复制驱动,然后重试sqoop脚本:

cp /opt/cloudera/cm/lib/mysql-connector-java-5.1.40.jar /opt/cloudera/parcels/CDH/lib/sqoop/lib/

4.4 查看mysql表是否有数据
在这里插入图片描述

4.7 添加Hue服务

  1. 添加服务
    在这里插入图片描述
  2. 选择依赖
    在这里插入图片描述
  3. 分配服务器
    在这里插入图片描述
  4. 创建元数据库
mysql -uroot -p
create database hue default character set utf8 collate utf8_general_ci;
  1. 数据库设置并测试连接
    在这里插入图片描述
  2. 成功
    在这里插入图片描述
  3. 访问WEB UI
    在这里插入图片描述
  4. 成功(端口:8889)
    在这里插入图片描述

5. 添加新服务器

  1. 启动新的服务器
    在这里插入图片描述
  2. 配置host 和 ip
vim /etc/hosts
192.168.52.150 hadoop01
192.168.52.151 hadoop02
192.168.52.152 hadoop03
192.168.52.153 hadoop04
  1. 安装依赖包
yum install -y cyrus-sasl-plain cyrus-sasl-gssapi portmap fuse-libs bind-utils libxslt fuse
yum install -y /lib/lsb/init-functions createrepo deltarpm python-deltarpm
yum install -y mod_ssl openssl-devel python-psycopg2 MySQL-python
  1. 关闭防火墙
    查看防火墙状态: systemctl status firewalld.service
    绿的running表示防火墙开启
    执行关闭命令: systemctl stop firewalld.service
    再次执行查看防火墙命令:systemctl status firewalld.service
    执行开机禁用防火墙自启命令 : systemctl disable firewalld.service

  2. 关闭selinux

#临时生效
setenforce 0

#永久生效
#将SELINUX=enforcing改为SELINUX=disabled
vim /etc/selinux/config

在这里插入图片描述

#在配置文件中第一次设置时需要重启服务器
reboot
  1. 确保第一台主机的httpd服务正常使用
#查看当前状态
systemctl status httpd.service

在这里插入图片描述

#启动
systemctl start httpd.service

确保访问正常
在这里插入图片描述
7. 配置本地yum源

cd /etc/yum.repos.d/
vim cloudera-manager.repo
[cloudera-manager]
name=Cloudera Manager
baseurl=http://hadoop01/cm6/6.2.1/redhat7/yum/
gpgcheck=0
enabled=1
yum clean all
	yum list | grep cloudera

在这里插入图片描述
8. 创建cloudera-scm用户

useradd cloudera-scm
passwd cloudera-scm
test123456
#免密钥登录
echo "cloudera-scm ALL=(root)NOPASSWD:ALL" >> /etc/sudoers
su - cloudera-scm
exit
  1. 使用CM添加新主机
    9.1 添加新主机
    在这里插入图片描述
    9.2 使用原来的集群
    在这里插入图片描述
    9.3 搜索选择服务器
    在这里插入图片描述
    9.4 选择存储库
    在这里插入图片描述
    9.5 安装JDK
    在这里插入图片描述
    9.6 root登录凭据
    在这里插入图片描述
    9.7 开始安装
    在这里插入图片描述
  2. 检查主机正确性
    在这里插入图片描述
  3. 修复监测问题
    临时生效:
sysctl -w vm.swappiness=10
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled

永久生效:

echo "vm.swappiness=10" >> /etc/sysctl.conf
echo "echo never > /sys/kernel/mm/transparent_hugepage/defrag" >> /etc/rc.local
echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.local

然后回到刚才的安装页面,选择继续创建集群:
在这里插入图片描述
安装成功,返回首页查看主机:
在这里插入图片描述
12. 针对已安装的不同服务,添加新服务器的角色实例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

erainm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值