前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Cloudera Manager环境搭建【二】

Cloudera Manager环境搭建【二】

作者头像
Maynor
发布2022-11-28 20:18:08
5930
发布2022-11-28 20:18:08
举报

文章目录

CM环境搭建

1. 目标

进行Linux优化配置

安装Cloudera Manager的Server和Agent

安装Cloudera Manager监控Service

使用CM安装大数据组件

使用CM添加新服务器

2. Linux配置优化

2.1 Swappiness虚拟内存

swappiness是Linux的一个内核参数,控制系统在使用swap虚拟内存时,内存使用的相对权重。

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

临时生效:

sysctl -w vm.swappiness=10

永久生效:

echo “vm.swappiness=10” >> /etc/sysctl.conf

2.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/defragecho never > /sys/kernel/mm/transparent_hugepage/enabled

永久生效:

echo “echo never > /sys/kernel/mm/transparent_hugepage/defrag” >> /etc/rc.localecho “echo never > /sys/kernel/mm/transparent_hugepage/enabled” >> /etc/rc.local

2.3 最大文件句柄

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

  • hard nofile 50000* soft nofile 50000

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

2.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

2.5 TCP Socket*端口数

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

sudo sysctl -w net.ipv4.ip_local_port_range =“10000 65000”

2.6 缩减Socket闲置*时间

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

sudo sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait =“1”

2.7 提高IO性能

默认的方式下linux会把文件访问的时间atime做记录,文件系统在文件被访问、创建、修改等的时候记录下了文件的一些时间戳,比如:文件创建时间、最近一次修改时间和最近一次访问时间;这在绝大部分的场合都是没有必要的。

因为系统运行的时候要访问大量文件,如果能减少一些动作(比如减少时间戳的记录次数等)将会显著提高磁盘 IO 的效率、提升文件系统的性能。

如果遇到机器IO负载高或是CPU WAIT高的情况,可以尝试使用noatime和nodiratime禁止记录最近一次访问时间戳。你会发现吞吐量有惊人的提高。

比如我要在根文件系统使用noatime,可以编辑/etc/fstab文件,如下:

/dev/mapper/centos-root / xfs defaults,noatime 0 0UUID=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

3. 安装Server和Agent

3.1 安装Server服务

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

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

注意:如果在yum源中添加了新的包时:

1.需要删除之前的repodata文件后,重新生成;

2.重启httpd服务

3.清除yum缓存 yum clean all

img
img

3.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目录下。

img
img

Mysql驱动在资料中已提供:

img
img

查看:cat /etc/cloudera-scm-server/db.properties

img
img

3.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

img
img

#查看端口号是否已经运行netstat -an | grep 7180

img
img

3.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

img
img

资料文件目录:

img
img

3.5 开始安装

访问Server:http://hadoop01:7180/cmf/login

账号密码均为admin

img
img

登录后,先不要安装,先返回首页:

img
img

先设置Parcel 更新频率:

img
img

修改为1分钟:

img
img

如果目录下已经有了后缀为torrent的文件,则证明识别成功:

img
img

然后重新进入添加集群页面:

img
img

下一步:

img
img

选择免费版本的ClouderaManager:

img
img

设置集群名称:

img
img

选择安装的服务器:

img
img

选择存储库:

img
img
img
img
img
img
img
img

运行安装:

img
img
img
img

测试网络和主机:

img
img

查看检查结果:

img
img

如果有问题,就需要修复后再继续

img
img

图中显示的问题,就是下一步要处理的,swappiness和透明化。

3.6 swappiness和透明化

临时生效:

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

永久生效:

echo “vm.swappiness=10” >> /etc/sysctl.confecho “echo never > /sys/kernel/mm/transparent_hugepage/defrag” >> /etc/rc.localecho “echo never > /sys/kernel/mm/transparent_hugepage/enabled” >> /etc/rc.local

3.7 继续创建集群

然后回到刚才的安装页面,选择继续创建集群:

img
img

安装成功,返回首页查看主机:

img
img

3.8 添加第二台主机

img
img
img
img

添加第二台服务器节点:

img
img
img
img
img
img
img
img
img
img
img
img
img
img

运行检查后,对hadoop02节点也要执行swappiness和透明化操作。然后继续下一步:

img
img

添加新节点完成:

img
img

4. 添加监控Service

4.0.1 功能

Cloudera Management Service可作为一组角色实施各种监控管理

1.Activity Monitor:收集关于MapReduce服务运行的活动的信息。默认情况下不添加此角色,实际生产环境也是不需要的。

2.Host Monitor:收集有关主机的运行状况和指标信息。

3.Service Monitor:从YARN和Impala服务中收集关于服务和活动信息的健康和度量信息。

4.Event Server:聚合组件的事件并将其用于警报和搜索。

5.Alert Publisher :为特定类型的事件生成和提供警报,实际情况下用的也少。

4.0.2 安装
  1. 开始添加
img
img
  1. 自定义角色分配服务器
img
img
  1. 分配权限后继续

mkdir -p /var/lib/cloudera-host-monitormkdir /var/lib/cloudera-service-monitorchown -R cloudera-scm:cloudera-scm /var/lib/cloudera-host-monitorchown -R cloudera-scm:cloudera-scm /var/lib/cloudera-service-monitor/

img
img
  1. 开始安装
img
img
  1. 可以看到报警信息
img
img
  1. 经过一段时间后,可以看到这段时间内的服务器监控信息
img
img

5. 添加大数据组件

5.1 添加HDFS服务

  1. 点击添加
img
img
  1. 选择HDFS
img
img
  1. 自定义角色分配服务器
img
img
  1. 审核更改使用默认配置下一步

  1. 运行安装命令
img
img
  1. 等待完全启动

安装以后,会有一些异常信息,这是还没有完全启动,需要等待一段时间。

img
img
  1. 抑制无关紧要的警告信息
img
img
  1. 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)

img
img
img
img

设置后需要重启服务

img
img
img
img
img
img
  1. 关闭safemode模型

#查看当前的safemode状态hdfs dfsadmin -safemode get#关闭safemodehdfs dfsadmin -safemode leave

  1. 查看Hadoop WebUI
img
img
img
img
  1. 测试HDFS

hdfs dfs -mkdir /test

5.2 添加Yarn服务

  1. 添加服务
img
img
img
img
  1. 角色分配服务器
img
img
  1. 使用默认配置
img
img
  1. 运行安装命令
img
img
  1. 对于无用的警告可以压制掉
img
img
  1. 测试

#新建一个文本文件vim testinput.txt

img
img

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

img
img

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

img
img

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

img
img

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

img
img

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

img
img

5.3 添加Zookeeper服务

  1. 添加
img
img
  1. 自定义角色服务器
img
img
  1. 如果有异常报警,请等待一段时间完全启动后再刷新看看
img
img
img
img

5.4 添加Hive服务

  1. 添加服务
img
img
  1. 选择依赖
img
img
  1. 自定义角色分配服务
img
img
  1. 设置元数据库
img
img
  1. 点击测试连接
img
img

提示ERROR JDBC Driver com.mysql.jdbc.Driver not found.

需要上传mysql驱动包jar到/opt/cloudera/cm/lib目录下。

  1. 继续测试
img
img

提示:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver。

需要先创建数据库:

mysql -uroot -pcreate database hive;

  1. 测试通过
img
img
  1. 审核更改
img
img
  1. 运行命令

发现报错

img
img

点击stderr查看报错详情

img
img

提示: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. 完成安装
img
img
  1. 查看HiveServer2 Web UI
img
img
img
img
  1. 验证Hive是否可用

hiveselect from_unixtime(1583781807, ‘yyyy-MM-dd’);

img
img

5.5 添加Oozie服务

  1. 添加服务
img
img
  1. 选择依赖
img
img
  1. 分配服务器
img
img
  1. 设置元数据库

先在mysql中创建数据库

mysql -uroot -pcreate database oozie;

然后配置并测试连接:

img
img
  1. 运行安装命令
img
img

提示: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. 安装成功
img
img

5.6 添加Sqoop服务

  1. 添加服务

虽然现在已经有sqoop2.x版本,但还是推荐大家使用1.x。

img
img
  1. 角色分配服务器
img
img
  1. 安装完成
img
img
img
img
  1. 测试sqoop

4.1 创建mysql测试库和表

mysql -uroot -pcreate 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.txtleo|12|class1leo1|13|class2leo2|14|class3leo3|15|class4leo4|16|class5leo5|17|class6

#上传到HDFShdfs dfs -mkdir -p /data/test/hdfs dfs -put ./test.txt /data/test/

#查看是否上传成功hdfs dfs -cat /data/test/*

img
img

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 发现报错,缺少驱动

img
img

复制驱动,然后重试sqoop脚本:

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

4.4 查看mysql表是否有数据

img
img

5.7 添加Hue服务

  1. 添加服务
img
img
  1. 选择依赖
img
img
  1. 分配服务器
img
img
  1. 创建元数据库

mysql -uroot -pcreate database hue default character set utf8 collate utf8_general_ci;

  1. 数据库设置并测试连接
img
img
  1. 成功
img
img
  1. 访问WEB UI
img
img
  1. 成功
img
img

6. 添加新服务器

  1. 启动新的服务器
img
img
  1. 配置host 和 ip

vim /etc/hosts192.168.52.150 hadoop01192.168.52.151 hadoop02192.168.52.152 hadoop03192.168.52.153 hadoop04

  1. 安装依赖包

yum install -y cyrus-sasl-plain cyrus-sasl-gssapi portmap fuse-libs bind-utils libxslt fuseyum install -y /lib/lsb/init-functions createrepo deltarpm python-deltarpmyum 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

  1. 关闭selinux

#临时生效setenforce 0 #永久生效#将SELINUX=enforcing改为SELINUX=disabledvim /etc/selinux/config

img
img

#在配置文件中第一次设置时需要重启服务器reboot

  1. 确保第一台主机的httpd服务正常使用

#查看当前状态systemctl status httpd.service

img
img

#启动systemctl start httpd.service

确保访问正常

img
img
  1. 配置本地yum源

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

img
img
  1. 创建cloudera-scm用户

useradd cloudera-scmpasswd cloudera-scmtest123456#免密钥登录echo “cloudera-scm ALL=(root)NOPASSWD:ALL” >> /etc/sudoerssu - cloudera-scmexit

  1. 使用CM添加新主机

9.1 添加新主机

img
img

9.2 使用原来的集群

img
img

9.3 搜索选择服务器

img
img

9.4 选择存储库

img
img

9.5 安装JDK

img
img

9.6 root登录凭据

img
img

9.7 开始安装

img
img
  1. 检查主机正确性
img
img
  1. 修复监测问题

临时生效:

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

永久生效:

echo “vm.swappiness=10” >> /etc/sysctl.confecho “echo never > /sys/kernel/mm/transparent_hugepage/defrag” >> /etc/rc.localecho “echo never > /sys/kernel/mm/transparent_hugepage/enabled” >> /etc/rc.local

然后回到刚才的安装页面,选择继续创建集群:

img
img

安装成功,返回首页查看主机:

img
img
  1. 针对已安装的不同服务,添加新服务器的角色实例
img
img
wps176
wps176
img
img
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-11-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • CM环境搭建
    • 1. 目标
      • 2. Linux配置优化
        • 2.1 Swappiness虚拟内存
        • 2.2 关闭内存动态分配(内存页透明化)
        • 2.3 最大文件句柄
        • 2.4 最大派生进程数
        • 2.5 TCP Socket*端口数
        • 2.6 缩减Socket闲置*时间
        • 2.7 提高IO性能
      • 3. 安装Server和Agent
        • 3.1 安装Server服务
        • 3.2 设置元数据库为mysql
        • 3.3 启动server服务进程(查看7180端口)
        • 3.4 配置本地parcel包
        • 3.5 开始安装
        • 3.6 swappiness和透明化
        • 3.7 继续创建集群
        • 3.8 添加第二台主机
      • 4. 添加监控Service
        • 5. 添加大数据组件
          • 5.1 添加HDFS服务
          • 5.2 添加Yarn服务
          • 5.3 添加Zookeeper服务
          • 5.4 添加Hive服务
          • 5.5 添加Oozie服务
          • 5.6 添加Sqoop服务
          • 5.7 添加Hue服务
        • 6. 添加新服务器
        相关产品与服务
        云数据库 SQL Server
        腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档