CM 安装及部署操作

2 篇文章 0 订阅

@[topic]

一、CM 概述及架构

1. CM概述

cloudera managerment 简称,是由cloudera公司开源 ,对以Hadoop为基础的生态圈框架所组件的集成的分布式的自动化安装部署集群,并且会对安装部署后的集群的资源信息、框架的服务运作状态进行实时监控及报警的平台软件。CM框架只能安装cdh版本的大数据框架,Apache版本的Hadoop可以使用ambari框架进行安装及监控工作

2.CDH版本的Hadoop框架的优点

1.版本划分清晰

2.支持Kerberos安全认证

3.完善的集群,计算资源,网络状态实时监控及报警

4.方便快捷安全的数据倾斜迁移及滚动升级

5.支持多种安装方式(Cloudera Manager方式)
tar包安装 (Apache版本和cdh版本都支持)
yum安装 (Apache版本和cdh版本都支持)
rpm安装 (Apache版本和cdh版本都支持)

3.CM框架技术架构

  • server
    CM框架的主节点(主服务进程),通常部署在一台单独的服务器上 ,与各个agent从节点保持心跳获取从节点发送的所在节点的服务器信息,负责集群安装部署文件的分发、安装命令的发布 ,server负责整个集群的启动和停止命令的发布,一个server节点可以同时管理和部署多套集群。

  • agent
    CM框架的从节点,负责所在服务器节点上的大数据框架的安装及后续资源状态监控的具体工作,agent节点又称为主机节点 ,CM只能在启动了agent服务进程的主机节点上去安装部署大数据框架及启动服务进程。

  • database
    CM需要一个数据库的支持存储集群的元数据信息 ,mysql oracle postgresql ,需要临时存储监控信息
    注:5mysql 5.5 -不支持impala的使用

  • managerment service
    是由一些服务进程组成的一组监控组件 ,通过这组服务进程可以监控各台agent主机上的资源信息及提供实时报警功能

  • web-ui
    CM内置了一个基于web的用户交互管理界面,是用户进行组件安装部署,日常操作和维护的主要操作对象,安装部署集群,监控到整个集群上服务的资源信息及各个大数据框架的运行状态

二、安装概述

(一)软件环境

1.软件配置清单

序号软件名称版本
1操作系统CentOS 7.8 64位
2JDKjdk-8u112-linux-x64
3Cloudera manager5.16.2
4CHD precel5.16.2
5MySQL5.7

【扩展:查看服务的硬件信息】

基本参数

Physical id #相同表示为同一个物理CPU
Processor #逻辑CPU
Cpu cores #CPU核数,内核个数
Core id #内核id号
Siblings #每个物理CPU里面的逻辑CPU个数

  • 1 查看cpu型号
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
  • 2 查看物理cpu个数
cat /proc/cpuinfo | grep "physical id" | sort -u | wc -l
  • 3 查看逻辑cpu
cat /proc/cpuinfo | grep "processor" | wc -l 
  • 查看CPU内核数
cat /proc/cpuinfo | grep "cpu cores" | uniq  

2.所需的软件资源

  1. JDK环境

    JDK版本:jdk-8u112-linux-x64.tar.gz

    scala版本:scala-2.11.8

  2. Cloudera Manager

    cm版本:5.16.2

  3. CDH

    cdh版本:5.16.2

安装包下载地址:cdh5.16.2版本

  1. JDBC连接jar包

    版本:5.14.43

    mysql-connector-java-5.1.43.jar

  2. MySQL包

    版本:5.7.25

    mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar

    安装包下载地址:mysql

(二)、配置规划

本次安装共5台服务器,服务器配置及用途如下表所示:

序号主机名ip地址核/内存/硬盘角色
1cdh01172.23.201.19110C/16G/100Gcm-server,mysql
2cdh02172.23.201.19210C/16G/100Gcm-agent
3cdh03172.23.201.19310C/16G/100Gcm-agent
4cdh04172.23.201.19410C/16G/100Gcm-agent
5cdh05172.23.201.19510C/16G/100Gcm-agent

三、安装步骤

提前声明:整个安装过程使用root用户

(一)、基本环境

1.修改主机名(所有节点)

#按照规划依次修改,修改完成记得重启服务器
vi /etc/hostname

2.配置主机映射(所有节点)

vi /etc/hosts
172.23.201.191 cdh01
172.23.201.192 cdh02
172.23.201.193 cdh03

3.关闭防火墙和安全子系统(所有节点)

#关闭防火墙
systemctl stop firewalld.service 
systemctl stop firewalld.service
# 禁止firewall开机启动
systemctl disable firewalld.service

#关闭安全子系统
vi /etc/selinux/config
SELINUX=disabled

4.配置ssh免密钥登陆(所有节点)

ssh-keygen

ssh-copy-id cdh01
ssh-copy-id cdh02
ssh-copy-id cdh03
ssh-copy-id cdh04
ssh-copy-id cdh05

# 做完之后必须要做测试

如果不成功,怎么办:

  • 删除用户主目录下的.ssh目录,重新来

    rm -r /root/.ssh
    

5.修改linxu内核参数(所有节点)

5.1 设置swappiness,控制换出运行时内存的相对权重,Cloudera 建议将 swappiness 设置为 10:

# 查看swappiness 
cat /proc/sys/vm/swappiness 

#永久性修改,执行下面两条命令 
sysctl -w vm.swappiness=10 
echo vm.swappiness = 10 >> /etc/sysctl.conf

5.2 关闭透明大页面:

自CentOS6版本开始引入了Transparent Huge Pages(THP),从CentOS7版本开始,该特性默认就会启用。尽管THP的本意是为提升内存的性能,不过某些数据库厂商还是建议直接关闭THP,否则可能会导致性能出现下降。

# 临时关闭(重启机器会变回默认开启状态): 
echo never > /sys/kernel/mm/transparent_hugepage/defrag 
echo never > /sys/kernel/mm/transparent_hugepage/enabled 
# 永久关闭: 
# 编辑/etc/rc.d/rc.local 
vi /etc/rc.d/rc.local 
# 在文件后添加下面内容: 
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then 
echo never > /sys/kernel/mm/transparent_hugepage/enabled 
fi 
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then 
echo never > /sys/kernel/mm/transparent_hugepage/defrag 
fi 
# 保存退出,然后赋予rc.local文件执行权限: 
chmod +x /etc/rc.d/rc.local 
# 重启系统,以后再检查THP状态,显示状态被禁用了。

5.3 修改文件句柄数

# 查看文件句柄数,显示1024,显然太小 
ulimit -n 
1024 
# 修改系统文件句柄数限制 
vim /etc/security/limits.conf 
# 在文件后加入下面内容: 
* soft nofile 100000 
* hard nofile 100000 
# 修改后需要重启机器。

6.安装jdk(所有节点)

注意:JDK必须安装在/usr/java目录

#1.查询java相关的安装包
rpm -qa | grep java

#2.卸载查询出来的所有的包
rpm -e --nodeps  xxx

#3.解压
tar -zxf jdk-8u112-linux-x64.tar.gz /usr/java

#4.配置环境变量
vi /etc/profile
# 增加一下配置
export JAVA_HOME=/usr/java/jdk1.8.0_171
export PATH=$PATH:$JAVA_HOME/bin

#5.source生效并测试
source /etc/profile

java -version

7.配置NTP时间同步服务

基本原理:

将cdh01节点作为整套集群的时间同步服务器,其他的节点都向cdh01节点同步时间,这样即使cdh01节点不是标准的互联网时间,但是其他节点也只能向cdh01节点同步时间,并以其为统一的集群时间

timedatectl set-timezone Asia/Shanghai
确定三台电脑都是 上海时间

7.1 所有节点安装ntp服务
yum -y install ntp
7.2 在cdh01节点
vi /etc/ntp.conf 

# 增加,限制只允许172.23.201,也就是集群中其他节点向cdh01节点同步时间
restrict 172.23.201.0 mask 255.255.255.0

# 增加 设置cdh01节点为集群的时间同步服务器
server 127.127.1.0 

# 同时将以下四行进行注释掉,不主动同以下时间服务器同步时间
#server 0.centos.pool.nep.org iburst
#server 1.centos.pool.nep.org iburst
#server 2.centos.pool.nep.org iburst
#server 3.centos.pool.nep.org iburst
7.3 在cdh02-cdh05节点
vi /etc/ntp.conf 
# 增加 设置cdh01节点为集群的时间同步服务器
server 172.23.201.191

# 同时将以下四行进行注释掉,不主动同以下时间服务器同步时间
#server 0.centos.pool.nep.org iburst
#server 1.centos.pool.nep.org iburst
#server 2.centos.pool.nep.org iburst
#server 3.centos.pool.nep.org iburst
7.4 所有节点(cdh01-cdh05)
  1. 先与网络服务器同步时间

    ntpdate ntp1.aliyun.com
    
  2. 启动ntp服务,并设置其为开机启动

    systemctl start ntpd.service
    systemctl enable ntpd.service
    
7.5 测试其它节点能否向cdh01同步时间
ntpdate -u cdh01

7.6 为了进一步保证,也可以编写定时任务来每10分钟同步一次

crontab -e

*/10 * * * * /usr/sbin/ntpdate -u hadoop-3

8. 安装依赖(所有节点)

yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs redhat-lsb   mod_ssl unzip
yum -y install libaio
yum -y install net-tools
yum -y install  perl


#1 下载并安装MySQL官方的 Yum Repository https://www.cnblogs.com/ianduin/p/7679239.html 按照这个配置
[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
# 使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。
[root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm
 # 之后就开始安装MySQL服务器。
[root@localhost ~]# yum -y install mysql-community-server
 ##### 这步可能会花些时间,安装完成后就会覆盖掉之前的mariadb。

## (二)MySQL安装

### 1.下载
 wget https://cdn.mysql.com//archives/ mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar

2.解压

 tar -xvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar

mysql-community-embedded-compat-5.7.25-1.el7.x86_64.rpm
mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar

mysql-community-embedded-devel-5.7.25-1.el7.x86_64.rpm
mysql-community-client-5.7.25-1.el7.x86_64.rpm

mysql-community-libs-5.7.25-1.el7.x86_64.rpm
mysql-community-common-5.7.25-1.el7.x86_64.rpm

mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
mysql-community-devel-5.7.25-1.el7.x86_64.rpm

mysql-community-server-5.7.25-1.el7.x86_64.rpm
mysql-community-embedded-5.7.25-1.el7.x86_64.rpm mysql-community-test-5.7.25-1.el7.x86_64.rpm

3.卸载自带的mysql和mariadb

#查询
 rpm -qa | grep MariaDB
 rpm -qa | grep  mysql

#卸载
rpm -e mariadb-libs-1:5.5.56-2.el7.x86_64 --nodeps

4.依次安装各个rpm的mysql组件包

rpm -ivh mysql-community-common-5.7.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.27-1.el7.x86_64.rpm 
rpm -ivh mysql-community-client-5.7.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.271.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.27-1.el7.x86_64.rpm

注意:可能出现的报错

warning: mysql-community-libs-5.7.25-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
mysql-community-common(x86-64) >= 5.7.9 is needed by mysql-community-libs-5.7.25-1.el7.x86_64

Preparing… ################################# [100%]
file /usr/share/mysql/czech/errmsg.sys from install of mysql-community-common-5.7.25-1.el7.x86_64 conflicts with file from package mariadb-libs-1:5.5.60-1.el7_5.x86_64
file /usr/share/mysql/danish/errmsg.sys from install of mysql-community-common-5.7.25-1.el7.x86_64 conflicts with file from package mariadb-libs-1:5.5.60-1.el7_5.x86_64

出现以上报错的主要原因还是自带的mysql和mariadb没有卸载干净,注意一定要检查和卸载

另外可能还需要其他的安装其他的依赖包

在线安装

5.启动服务

# systemctl start mysqld
开机自启动mysql服务
# systemctl enable mysqld

6.查询初始密码

# cat /var/log/mysqld.log | grep passw

2019-06-27T06:53:17.393288Z 1 [Note] A temporary password is generated for root@localhost: Gzja+qiU3BQ9

如果无法找到密码,请按照以下步骤

  1. 设置无密码登录
# vi /etc/my.cnf

# 在如下位置添加一项配置
# Disabling symbolic-links is recommended to prevent assorted security risks
#添加这句话,这时候登入mysql就不需要密码
skip-grant-tables     
  1. 重启mysql服务
# systemctl restart mysqld
  1. 无密码登录
mysql

7.登陆,修改密码安全策略,授权远程登陆

mysql -u root -p

# 修改密码安全策略
#修改密码长度限制
set global validate_password_policy=0;
set global validate_password_length=1;

#设置密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'anming123456!';

#授权外部主机访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'anming123456!' WITH GRANT OPTION;

#刷新授权
FLUSH PRIVILEGES;

# 测试能否进行外部访问,在window的cmd中,或者其他节点的命令行终端
mysql -h cdh01 -u root -p

(三)cloudera manager Server & Agent 安装

  1. 所有节点上创建 /opt/cloudera-manager
mkdir /opt/cloudera-manager
  1. 将cm的tar安装包上传到每个节点的/opt/software(这个目录需要提前创建)目录下,并解压
 tar -zxvf cloudera-manager-centos7-cm5.16.2_x86_64.tar.gz -C /opt/cloudera-manager/
  1. 所有节点上创建cloudera-scm伪(系统)用户
useradd --system --home=/opt/cloudera-manager/cm-5.16.2/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
  1. 配置cm-agent(可以为所有的agent节点,也可以是所有节点)

cd /opt/cloudera-manager/cm-5.16.2/etc/cloudera-scm-agent

vi config.ini
server_host=172.23.201.191 
  1. 配置CM数据库

    拷贝mysql-connector-java.jar到/usr/share/java/目录下,注意jdbc驱动包的名称必须是mysql-connector-java.jar

    1. 所有节点上,如果没有/usr/share/java目录,请先自己 创建
    cp mysql-connector-java-5.1.45-bin.jar /usr/share/java/mysql-connector-java.jar
    
    1. 在主节点上
    cp mysql-connector-java-5.1.45-bin.jar /opt/cloudera-manager/cm-5.16.2/share/cmf/lib/
    
    1. 配置cm数据库

    进入到/opt/cloudera-manager/cm-5.16.2/share/cmf/schema,执行mysql的建库建表语句

    ./scm_prepare_database.sh mysql -h 10.0.6.117 -uroot –p123456 --scm-host 10.0.6.117 scm scm scm
    

./scm_prepare_database.sh mysql -uscm –p123456 --scm-host amxx01 scm scm scm
格式:
数据库类型、 数据库名称、 数据库服务器地址、 用户名 、密码 、server主机名
、数据库、授权访问scm的用户名和密码

# 1.先选择在直接执行
./scm_prepare_database.sh mysql -h 192.168.220.138 -uroot –p123456 --scm-host 192.168.220.138 scm scm scm
# 2.在cdh02的MySQL主机上授权外部主机
GRANT ALL PRIVILEGES ON scm.* TO 'scm'@'%' IDENTIFIED BY 'anming123456!' WITH GRANT OPTION;

FLUSH PRIVILEGES;

在cdh01上,部署cm的数据库

./scm_prepare_database.sh mysql -uroot -p123456 --scm-host 192.168.220.138 scm scm 123456

JAVA_HOME=/usr/java/jdk1.8.0_112
Verifying that we can write to /opt/cloudera-manager/cm-5.16.2/etc/cloudera-scm-server
Sun Jun 30 15:49:50 CST 2019 WARN: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
Creating SCM configuration file in /opt/cloudera-manager/cm-5.16.2/etc/cloudera-scm-server
Executing: /usr/java/jdk1.8.0_112/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java.jar:/opt/cloudera-manager/cm-5.16.2/share/cmf/schema/…/lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /opt/cloudera-manager/cm-5.16.2/etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
Sun Jun 30 15:49:52 CST 2019 WARN: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
[ main] DbCommandExecutor INFO Successfully connected to database.
All done, your SCM database is configured correctly!

  1. 创建后续部署hive,hue等组件所需的数据库
   create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 
   create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 
   create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 
   create database monitor DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 
   create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 

   --可以使用以下方式进行授权外部主机访问
   GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'*' IDENTIFIED BY 'hive' WITH GRANT OPTION;
   GRANT ALL PRIVILEGES ON amon.* TO 'amon'@'*' IDENTIFIED BY 'amon' WITH GRANT OPTION;
   GRANT ALL PRIVILEGES ON hue.* TO 'hue'@'*' IDENTIFIED BY 'hue' WITH GRANT OPTION;
   GRANT ALL PRIVILEGES ON monitor.* TO 'monitor'@'*' IDENTIFIED BY 'monitor' WITH GRANT OPTION;
   GRANT ALL PRIVILEGES ON oozie.* TO 'oozie'@'*' IDENTIFIED BY 'oozie' WITH GRANT OPTION;
   
--也可以使用以下方式进行授权外部主机访问,推荐用这种
   grant all on hive.* TO 'hive'@'%' IDENTIFIED BY 'anming123456!';
   grant all on hue.* TO 'hue'@'%' IDENTIFIED BY 'anming123456!';
   grant all on oozie.* TO 'oozie'@'%' IDENTIFIED BY 'anming123456!';
   grant all on amon.* TO 'amon'@'%' IDENTIFIED BY 'anming123456!';
   grant all on monitor.* TO 'monitor'@'%' IDENTIFIED BY 'anming123456!';  
   flush privileges;
  1. 制作parcels

    • 在chd01节点上创建/opt/cloudera/parcel-repo目录

      mkdir -p /opt/cloudera/parcel-repo
      
  • 在agent(cdh02-cdh05)节点上创建/opt/cloudera/parcels目录

       mkdir -p /opt/cloudera/parcels
    
    • 上传以下文件到cdh01节点的/opt/cloudera/parcel-repo的目录下
  • 在agent(cdh02-cdh05)/opt/cloudera/parcels目录

     >**CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel**
    

    CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel.sha1
    manifest.json

    • 注意:必须将CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel.sha1最后的1去掉,否则无法生效

      mv CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel.sha1 CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel.sha
      
    • 更改 /opt/cloudera/parcel-repo(server)和/opt/cloudera/parcels(agent)目录的所属者与所属组为cloudera-scm

      agent(cdh02-cdh05)

      chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcels/  
      

      server(cdh01)

      chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/ 
      
    1. 启动 CM Manager&Agent 服务

      注意:首次启动,耗时较长

      • 在server(cdh01)节点启动cloudera-scm-server

        cd /opt/cloudera-manager/cm-5.16.2/etc/init.d
        ./cloudera-scm-server start
        
      • 在agent(cdh02-cdh05)节点启动cloudera-scm-agent

        cd /opt/cloudera-manager/cm-5.16.2/etc/init.d
        ./cloudera-scm-agent start
        
      1. 启动成功后,打开web浏览器

        访问http://10.0.5.26:7180

        设置用户名和密码均为 admin

(四)大透明页面等异常处理

  1. 已启用“透明大页面”,它可能会导致重大的性能问题。

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


2. Cloudera 建议将 /proc/sys/vm/swappiness 设置为 10。当前设置为 60。

```shell
echo 10 > /proc/sys/vm/swappiness

四、参数设置和基本操作

(一)测试HDFS和yarn

1.调整yarn的资源参数

yarn.nodemanager.resource.memory-mb     #默认值是8G
yarn.nodemanager.resource.cpu-vcores    #默认值是8核

#假设服务器是16core 64G,分配给yarn的资源是这样,必须为服务器上其他的必要的应用预留一份部分资源
yarn.nodemanager.resource.memory-mb  #设置为54G
yarn.nodemanager.resource.cpu-vcores  #设置为12

2.在任一agent节点的命令行创建目录

hdfs dfs -mkdir /input

报错:

mkdir: Permission denied: user=root, access=WRITE, inode=“/”:hdfs:supergroup:drwxr-xr-x

解决办法:

声明HDFS的操作用户(窗口变量,只在当前窗口有效)
hdfs-site.xml

dfs.permissions.enabled
false

 export HADOOP_USER_NAME=hdfs

3.上传一个文件

hdfs dfs -put data.txt /input

4.运行mapreuce的测试程序

cd /opt/cloudera/parcels/CDH-5.16.2-1.cdh5.16.2.p0.8/jars

ls | grep hadoop-mapreduce-examples
hadoop-mapreduce-examples-2.6.0-cdh5.16.2.jar

yarn jar hadoop-mapreduce-examples-2.6.0-cdh5.16.2.jar pi 300 500 

(二) 测试Hive

1.在任一agent节点运行hive

hive

hive > show databases;

2.配置显示数据库名称

hive -->

配置 -->

搜索框 --> “hive-site.xml 的 Hive 客户端高级配置代码段(安全阀)

<!--显示命令行提示头-->
<property>
  <name>hive.cli.print.header</name>
  <value>true</value>
</property>
<!--# 显示数据库名-->
<property>
  <name>hive.cli.print.current.db</name>
  <value>true</value>
</property>

部署客户端配置 --> 重启

3.在beeline中测试创建表,导入数据,基本查询


beeline> !connect jdbc:hive2://cdh03:10000 
	   > show databases;
	   > use mydb;
	   > show tables;
	   > select * from emp;
	   > !quit

虎扑体育-NBA球员得分数据排行

create table plaryers(
id int,
name string,
team string,
score float,
goal  string,
goalPercent  string,
threeGoal string,
threePercent  string,
freeThrow string,
freeThrowPercent string,
times int,
long float   
)
row format delimited fields terminated by '\t';

load data inpath /input/score.txt into table players;

(三) 测试Sqoop

如果导入的数据库是 mysql8 那么就要重新导入 驱动jar包

mysql-connector-java-8.0.19.jar

将这个jar 包 分别放到 集群各个节点的
/var/lib/sqoop
/opt/cloudera-manager/cm-5.16.2/share/cmf/lib/

这两个目录下

1.在任一agent节点

sqoop list-databases --connect jdbc:mysql://cdh02:3306 --username root --password 123456

报错:

java.lang.RuntimeException: Could not load db driver class: com.mysql.jdbc.Driver

解决:

cd /usr/share/java

scp -r mysql-connector-java.jar cdh02:/usr/share/java/

2.测试导入操作

在数据库中创建测试用表

create  database mydb;
use mydb;
--创建表
create table if not exists customer(
cid char(6) primary key,
name varchar(30)not null,
location varchar(30),
salary decimal(8,2)
);

--插入数据
insert into customer 
values('101001','sunyang','guangzhou',1234),
('101002','guohai','nanjing',3526),
('101003','lujing','suzhou',6892),
('101004','guihui','jinan',3492);

sqoop导入

sqoop import \
--connect jdbc:mysql://cdh02:3306/mydb \
--username root \
--password 123456 \
--table customer \
--delete-target-dir \
--target-dir /sqoop/data \
-m 1 \
--fields-terminated-by ','

(四) Flume

1.编辑flume agent

在flume“配置”中的“Agent Default Group”,设置代理名称为 “a1”,配置文件用如下配置替换

a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Describe/configure the source
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /opt/cloudera-manager/cm-5.16.2/log/cloudera-scm-agent/supervisord.log
a1.sources.r1.channels = c1

# Describe the sink
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = hdfs://nameservice1/cmagent/logs/%Y-%m-%d
# default:FlumeData
a1.sinks.k1.hdfs.filePrefix = cmagent-
# useLocalTimeStamp set true
a1.sinks.k1.hdfs.useLocalTimeStamp = true
a1.sinks.k1.hdfs.rollInterval = 0
a1.sinks.k1.hdfs.rollCount = 0
# block 128 120 125
a1.sinks.k1.hdfs.rollSize = 10240
a1.sinks.k1.hdfs.fileType = DataStream
#a1.sinks.k1.hdfs.round = true
#a1.sinks.k1.hdfs.roundValue = 10
#a1.sinks.k1.hdfs.roundUnit = minute

# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1	

2.启动并查看日志信息

3.查看结果

报错:

org.apache.hadoop.security.AccessControlException: Permission denied: user=flume, access=WRITE, inode=“/”:hdfs:supergroup:drwxr-xr-x

原因:flume 会以flume用户访问hdfs

解决办法:

在hdfs上手动将cmagent/logs创建出来,更改该目录的所属者为flume

 export HADOOP_USER_NAME=hdfs
 hdfs dfs -mkdir /cmagent
 
 hdfs dfs -chown -R flume /cmagent

(五) Hue和Oozie的部署及测试

1.上传Oozie的依赖包

上传Oozie的Web console的依赖的 Web console的依赖的ext-2.2.zip到某个agent节点(cdh02)

2.分发到其他的agent节点

scp ext-2.2.zip cdh03:/opt/software/
scp ext-2.2.zip cdh04:/opt/software/
scp ext-2.2.zip cdh05:/opt/software/

#每个节点上都进行
cp ext-2.2.zip /opt/cloudera/parcels/CDH/lib/oozie/libext/
cd /opt/cloudera/parcels/CDH/lib/oozie/libext/
unzip ext-2.2.zip
chown oozie:oozie -R ext-2.2

3. 检查或者创建所需的数据库表并授权访问

--创建oozie 所需要的库
create database oozie default character set utf8; 
grant all privileges on oozie.* to 'oozie'@'%' identified by 'oozie' with grant option;
flush privileges; 

--创建hue所需要的库:
create database hue default character set utf8; 
grant all privileges on hue.* to 'hue'@'%' identified by 'huehue' with grant option;
flush privileges; 

五 升级Spark2.4

(一)升级spark2.4 的系统及组件版本要求

CDS Powered by Apache Spark Requirements | 2.4.x | Cloudera Documentation

要求如下:

  • java : jdk1.8
  • scala: 只支持2.11.x(不需要提前安装)
  • **python:**python2.7 或者 python3.4 python3.5 更高
  • cm: Cloudera Manager 5.11 and any higher Cloudera Manager 5.x versions

(二)下所需的csd和parcels文件

csd和parcels文件下载地址

csd文件:

SPARK2_ON_YARN-2.4.0.cloudera2.jar

parcels文件及校验文件:

manifest.json

SPARK2-2.4.0.cloudera2-1.cdh5.13.3.p0.1041012-el7.parcel

SPARK2-2.4.0.cloudera2-1.cdh5.13.3.p0.1041012-el7.parcel.sha1

(三)安装步骤

1.停止整个集群和cm

#停止集群
在7180的web界面,集群 -》 停止

# cm-server节点
/opt/cloudera-manager/cm-5.16.2/etc/init.d/cloudera-scm-server stop

# cm-agent节点
/opt/cloudera-manager/cm-5.16.2/etc/init.d/cloudera-scm-agent stop

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FEDGO4Vh-1652940689293)(http://m.qpic.cn/psb?/V13iGoh31cNcAG/06SMjT6KtbBQYWhbjbmClgniBZ4NHkaHhCH44fOXcrQ!/b/dMUAAAAAAAAA&bo=7gHRAgAAAAADBx4!&rf=viewer_4)]

2. 上传CSD包到CM主节点(cdh01)的/opt/cloudera/csd目录

# 如果没有/opt/cloudera/csd,手动创建
mkdir /opt/cloudera/csd

#拷贝csd包到/opt/cloudera/csd/
mv /opt/software/SPARK2_ON_YARN-2.4.0.cloudera2.jar /opt/cloudera/csd/

#修改所属用户为cloudera-scm
chown -R cloudera-scm:cloudera-scm /opt/cloudera/csd/

#效果如下
ll /opt/cloudera/csd/

-rw-r--r-- 1 cloudera-scm cloudera-scm 19066 72 11:56 SPARK2_ON_YARN-2.4.0.cloudera2.jar

3. 上传parcel的3个包到CM主节点(cdh02)的/opt/cloudera/parcel-repo目录下

# 由于之前该目录下已经有cdh的parcel的manifest.json
mv /opt/cloudera/parcel-repo/manifest.json /opt/cloudera/parcel-repo/manifest.json.bak

#上传之后,修改/opt/cloudera/parcel-repo目录所属用户
chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo

ll /opt/cloudera/parcel-repo/
-rw-r--r-- 1 cloudera-scm cloudera-scm 2132782197 630 15:54 CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel
-rw-r--r-- 1 cloudera-scm cloudera-scm         40 630 15:54 CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel.sha
-rw-r----- 1 cloudera-scm cloudera-scm      81526 630 16:02 CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel.torrent
-rw-r--r-- 1 cloudera-scm cloudera-scm       5327 72 11:56 manifest.json
-rw-r--r-- 1 cloudera-scm cloudera-scm      68484 630 15:54 manifest.json.bak
-rw-r--r-- 1 cloudera-scm cloudera-scm  198924405 72 11:56 SPARK2-2.4.0.cloudera2-1.cdh5.13.3.p0.1041012-el7.parcel
-rw-r--r-- 1 cloudera-scm cloudera-scm         41 72 11:56 SPARK2-2.4.0.cloudera2-1.cdh5.13.3.p0.1041012-el7.parcel.sha

(四) 启动CM和集群

# cm-server节点
/opt/cloudera-manager/cm-5.16.2/etc/init.d/cloudera-scm-server start

# cm-agent节点
/opt/cloudera-manager/cm-5.16.2/etc/init.d/cloudera-scm-agent start
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
【课程大纲】 01.Storm项目实战课程大纲 02.CDH5搭建之CM5安装部署 03.CDH5搭建和CM界面化集群管理 04.Hadoop、HBase、Zookeeper集群管理和角色分配 05.Kafka基础知识和集群搭建 06.Kafka基本操作和最优设置 07.Kafka Java API 简单开发测试 08.storm-kafka 详解和实战案例 09.S图表框架HighCharts介绍 10.HBase快速入门 11.基于HBase的Dao基类和实现类开发一 12.基于HBase的Dao基类和实现类开发二 13.项目1-地区销售额-需求分析和架构设计 14.项目1-地区销售额-Spout融合Kafka Consumer及线程安全测试 15.项目1-地区销售额-Bolt业务逻辑处理一 16.项目1-地区销售额-优化Bolt支持重启及结果数据核查 17.项目1-地区销售额-HighCharts图表开发一及Web端架构设计 18.项目1-地区销售额-HTTP长链接实现实时推送 19.项目1-地区销售额-HighCharts图表开发二及jquery运用 20.项目1-地区销售额-Web端完善和细节优化 21.项目1-地区销售额-项目发布及总结 22.项目1-地区销售额-项目需求分析和分区Trident Spout开发 23.项目1-地区销售额-Trident代码开发一 24.项目1-地区销售额-Trident代码开发二 25.项目1-地区销售额-基于HBase存储的State运用 26.项目2-省份销售排行-双纵轴HighCharts图表开发一 27.项目2-省份销售排行-双纵轴HighCharts图表开发二 28.项目2-省份销售排行-双纵轴HighCharts图表开发三 29.项目2-省份销售排行-前台和图表交互开发和Top N实现 30.项目2-省份销售排行-Top N展示优化和项目开发思路总结 31.项目2-效果展示及项目3需求分析梳理 32.项目3-非跳出UV-Storm topology开发一 33.项目3-非跳出UV-Storm topology开发二 34.项目3-非跳出UV-Web端Servlet开发 35.项目3-非跳出UV-Web端Highcharts图表开发 36.项目3-非跳出UV-项目效果调试 37.项目3-非跳出UV-项目整体运行 38.项目3-非跳出UV-升级图表增加柱图一 39.项目3-非跳出UV-升级图表增加柱图二 40.JStorm介绍 41.会员问题收集和解答
服务器种类及区别 按照不同的分类标准,服务器分为许多种,主要有按网络规模、按架构(芯片)、 按用途、按外观 1、按网络规模划分 按网络规模划分,服务器分为工作组级服务器、部门级服务器、企业级服务器。 工作组级服务器 用于联网计算机在几十台左右或者对处理速度和系统可靠性要求不高的小型网络,其硬 件配置相对比较低,可靠性不是很高。 部门级服务器 用于联网计算机在百台左右、对处理速度和系统可靠性中等的中型网络,其硬件配置相 对较高,其可靠性居于中等水平。 企业级服务器 用于联网计算机在数百台以上、对处理速度和数据安全要求最高的大型网络,硬件配置 最高,系统可靠性要求最高。 需要注意的是,这三种服务器之间的界限并不是绝对的,而是比较模糊的,比如工作组 级服务器和部门级服务器的区别就不是太明显,有的干脆统称为"工作组/部门级"服务器 。 2、按架构划分(芯片) 按照服务器的结构,可以分为CISC(复杂指令集)架构的服务器和RISC(精简指令集) 架构的服务器: IA架构服务器(Intel Architecture Server)- 即通常所讲的PC服务器,采用x86(CISC)芯片并且主要采用Windows NT/Windows2000、Linux、FreeBSD等操作系统的服务器,如Intel PentiumIII(P4)和Intel (P4)Xeon(至强)等。 RISC架构的服务器指采用非英特尔架构技术的服务器, 使用RISC芯片并且主要采用UNIX操作系统的服务器,如SUN公司的SPARC、HP公司的PA- RISC、DEC的Alpha芯片、SGI公司的MIPS等; 由于RISC架构服务器的性能和价格比CISC架构的服务器高得多。近几年来,随着PC技术 的迅速发展,IA架构服务器与RISC架构的服务器之间的技术差距已经大大缩小,用户基 本上倾向于选择IA架构服务器,但是RISC架构服务器在大型、关键的应用领域中仍然居 于非常重要的地位。 3、按用途划分 按照使用的用途,服务器又可以分为通用型服务器和专用型(或称"功能型")服务器。 通用型服务器是没有为某种特殊服务专门设计的可以提供各种服务功能的服务器,当前 大多数服务器是通用型服务器。 专用型(或称"功能型")服务器是专门为某一种或某几种功能专门设计的服务器,在 某些方面具有与通用型服务器有所不同。如光盘镜像服务器是用来存放光盘镜像的,那 么需要配备大容量、高速的硬盘以及光盘镜像软件。 4、按外观划分 按照服务器的外观,可以分为台式服务器和机架式服务器以及刀片服务器 台式服务器(工作站、塔式机)有的采用大小与立式PC台式机大致相当的机箱,有的采 用大容量的机箱,像一个硕大的柜子一样,主要分为单塔式和双塔式,如下。 单塔式(支持单颗CPU) 双塔式(支持两颗CPU) 机架式服务器的外形看起来不像计算机,而是像交换机,有1U(1U=1.75英寸)、2U、 4U等规格,如下。 2U机架式服务器 机架式服务器由于满足企业的密集部署,形成的以19英寸机架作为标准宽度的服务 器类型。 将服务器放置到机架上,并不仅仅有利于日常的维护及管理,也可能避免意想不到 的故障。首先,放置服务器不占用过多空间。机架服务器整齐地排放在机架中,不会浪 费空间。其次,连接线等也能够整齐地收放到机架里。电源线和LAN线等全都能在机柜中 布好线,可以减少堆积在地面上的连接线,从而防止脚踢掉电线等事故的发生。规定的 尺寸是服务器的宽(48.26cm=19英寸)与高(4.445cm的倍数)。由于宽为19英寸,所 以有时也将满足这一规定的机架称为"19英寸机架"。 刀片服务器 刀片服务器是一种称之为"HAHD(High Availability High Density,高可用高密度)"的低成本服务器平台,是专门为特殊应用行业和高密度计算 机环境设计的。在结构上它比前面介绍的机架式服务器更紧凑,因为它像刀片一样非常 薄,而且可以根据需要选择是否插入整个服务器系统的机柜中,所以称之为"刀片服务器 ",主要应用集群服务。 ----------------------- 服务器种类及区别全文共4页,当前为第1页。 服务器种类及区别全文共4页,当前为第2页。 服务器种类及区别全文共4页,当前为第3页。 服务器种类及区别全文共4页,当前为第4页。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

张折耳

此处应有打赏,就看兄弟你的了!

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

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

打赏作者

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

抵扣说明:

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

余额充值