CDH集群安装文档

实时大数据平台安装文档

文档编号版本号V1.0
名称实时大数据平台安装文档
总页数正文
编写日期审批

1. 引言

1.1 编写目的

该手册旨在记录部署大数据CDH集群的流程,为后续作业提供参考,提高利用CM部署集群的效率和减少出现问题的可能性,帮助现场部署人员更好,更快地完成部署任务。

1.2 环境及术语

该手册要求,现场部署环境已经安装好操作系统,建议centos7.4,且网络已经配置完毕,磁盘空间达到TB级别

Cloudera Manager(CM):Cloudera公司的Hadoop系统组件的安装管理工具 CDH:Cloudera's Distribution Hadoop,是Cloudera公司发布的Hadoop版本

1.3 整体安装步骤

2. 资源下载

2.1 下载 CDH CM

  • 安装包位置
    • 服务器:scdh01
    • 目录:/opt/software

3. 环境配置

3.1 机器配置

iphosts节点
10.106.**.**scdh01主机
10.106.**.**scdh02从机
10.106.**.**scdh03从机

3.2 配置 hosts

(ps: 所有节点执行)

在台机器上输入: vim /etc/hosts

(省略)

修改本机显示hostname

vi /etc/sysconfig/network

HOSTNAME=scdh01

3.3 卸载自带的jdk(如果有)

(ps: 所有节点执行)

[root@scdh01 ~]# rpm -qa |grep jdk
java-1.8.0-openjdk-headless-1.8.0.222.b03-1.el7.x86_64
java-1.7.0-openjdk-headless-1.7.0.221-2.6.18.1.el7.x86_64
copy-jdk-configs-3.3-10.el7_5.noarch
java-1.8.0-openjdk-1.8.0.222.b03-1.el7.x86_64
java-1.7.0-openjdk-1.7.0.221-2.6.18.1.el7.x86_64

[root@scdh01 ~]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.222.b03-1.el7.x86_64
[root@scdh01 ~]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.221-2.6.18.1.el7.x86_64
[root@scdh01 ~]# rpm -e --nodeps copy-jdk-configs-3.3-10.el7_5.noarch
[root@scdh01 ~]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.222.b03-1.el7.x86_64
[root@scdh01 ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.221-2.6.18.1.el7.x86_64

3.4 卸载自带的 mariadb

(ps: 所有节点执行)

[root@scdh01 ~]# rpm -qa | grep -i mariadb | xargs rpm -e --nodeps

删除残留文件

[root@scdh01 ~]# find / -name mysql | xargs rm -rf
[root@scdh01 ~]# find / -name my.cnf find / -name my.cnf | xargs rm -rf
[root@scdh01 ~]# cd /var/lib/
[root@scdh01 ~]# rm -rf mysql/

3.5 关闭防火墙

(ps: 所有节点执行)

[root@scdh01 ~]# systemctl stop firewalld.service
[root@scdh01 ~]# systemctl disable firewalld.service

三台都关闭SELINUX,编辑/etc/selinux/config配置文件,把SELINUX的值改为disabled

[root@scdh01 ~]# vim /etc/selinux/config

SELINUX=disabled

3.6 配置免密登录

(ps: 所有节点执行)

ssh-keygen -t rsa  # 直接回车

ssh-copy-id scdh01   # 输入 yes, 输入密码 
ssh-copy-id scdh02   # 输入 yes, 输入密码 
ssh-copy-id scdh03   # 输入 yes, 输入密码 

3.7 安装jdk

(ps: 所有节点都要安装)

[root@scdh01 ~]# mkdir /usr/java

将放在服务器上的 jdk-8u181-linux-x64.tar.gz 解压到 /usr/java 目录下

[root@scdh01 ~]# tar -zxvf /opt/software/jdk-8u181-linux-x64.tar.gz -C /usr/java/

将 /usr/java 分发到其他服务器

[root@scdh01 ~]# scp -r /usr/java root@scdh02:/usr/java
[root@scdh01 ~]# scp -r /usr/java root@schd03:/usr/java

配置 JAVA_HOME 环境变量(所有的主机都需要)

[root@scdh01 ~]# cat >> /etc/profile << EOF
> #JAVA_HOME
> export JAVA_HOME=/usr/java/jdk1.8.0_181
> export PATH=$PATH:$JAVA_HOME/bin
> EOF
[root@scdh01 ~]# source /etc/profile
[root@scdh01 ~]# java -version
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)

3.8 时钟同步

1、所有机器安装ntp :yum -y install ntp

2、CM节点配置时钟与自己同步:vim /etc/ntp.conf,删除其他server,加入:
server  127.127.1.0 
fudge   127.127.1.0 stratum 10

3、其他非CM节点,同步CM节点的时间,vim /etc/ntp.conf,加入:
server 10.106.58.117

4、重启所有机器的ntp服务
systemctl restart ntpd或者service ntpd restart
systemctl status ntpd或者service ntpd status

5、验证同步
所有节点执行ntpq –p,左边出现*号表示同步成功。

6、若不成功;
/usr/sbin/ntpdate stdtime.gov.hk 
ntpdate xxx.xxx.xxx.xxx
手动同步时间

3.9 http服务

yum -y install httpd
systemctl start httpd 或service httpd start

4. 安装 MariaDB

4.1 安装 MariaDB

[root@centos ~]# yum install -y mariadb-server mariadb
[root@centos ~]# systemctl start mariadb
[root@centos ~]# systemctl enable mariadb 
[root@centos ~]# mysql_secure_installation

首先是设置密码,会提示先输入密码

Enter current password for root (enter for none):<–初次运行直接回车

设置密码

Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码

其他配置

Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车

Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车,

Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车

Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车

[root@centos ~]# mysql -uroot -p
输入密码.

4.2 查看 MariaDB 状态

[root@hadoop1 html]# systemctl status mariadb
 mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since 一 2021-09-27 15:52:26 CST; 1h 49min ago
  Process: 94651 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS)
  Process: 94614 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS)
 Main PID: 94650 (mysqld_safe)
   CGroup: /system.slice/mariadb.service
           ├─94650 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
           └─94829 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin -...

9月 27 15:52:23 scdh01 systemd[1]: Starting MariaDB database server...
9月 27 15:52:23 scdh01 mariadb-prepare-db-dir[94614]: Database MariaDB is probably initialized in /var/lib/mysql...one.
9月 27 15:52:23 scdh01 mariadb-prepare-db-dir[94614]: If this is not the case, make sure the /var/lib/mysql is e...dir.
9月 27 15:52:24 scdh01 mysqld_safe[94650]: 210927 15:52:24 mysqld_safe unknown option '--lower-case-table-names=1'
9月 27 15:52:24 scdh01 mysqld_safe[94650]: 210927 15:52:24 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
9月 27 15:52:24 scdh01 mysqld_safe[94650]: 210927 15:52:24 mysqld_safe Starting mysqld daemon with databases fr...mysql
9月 27 15:52:26 scdh01 systemd[1]: Started MariaDB database server.

4.3 设置root可以远程登录

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MariaDB 密码' WITH GRANT OPTION;

mysql> FLUSH PRIVILEGES;

mysql> exit;

4.4 为 CM 安装mysql驱动

下载地址: https://dev.mysql.com/downloads/connector/j/

将 mysql-connector-java-5.1.47-bin.jar 拷贝到 新创建的 /usr/share/java 路径下,并重命名为 mysql-connector-java.jar

[root@scdh01 mysql]# tar -zxvf mysql-connector-java-5.1.27.tar.gz

[root@scdh01 mysql]# cp mysql-connector-java-5.1.27-bin.jar /usr/share/java

[root@scdh01 mysql]# cd /usr/share/java

[root@scdh01 java]# mv mysql-connector-java-5.1.27-bin.jar mysql-connector-java.jar

[root@scdh01 java]# ll /usr/share/java
总用量 984
drwxr-xr-x. 3 root root     178 8月   7 2018 mysql-connector-java-5.1.47
-rw-r--r--. 1 root root 1007505 9月  27 17:49 mysql-connector-java.jar

将该驱动发到每一台服务器

[root@scdh01 java]# scp -r /usr/share/java/mysql-connector-java.jar root@scdh02:/usr/share/java/
mysql-connector-java.jar 				100%  984KB  25.3MB/s   00:00    

[root@scdh01 java]# scp -r /usr/share/java/mysql-connector-java.jar root@scdh03:/usr/share/java/
mysql-connector-java.jar     			100%  984KB  30.7MB/s   00:00 

5. 安装 CM

5.1 制作 yum 源

(ps: 主节点执行)

  1. 开启 http 服务

  2. 创建目录, 并上传本地下载好的 cdh 安装包 到指定文件夹

    [root@scdh01 ~]# mkdir -p /var/www/html/cloudera-repos
    上传安装包进来
  3. 制作本地yum源

    - 下载yum源工具包
    yum -y install yum-utils createrepo
    - 在 cloudera-repos 目录下生成rpm元数据:
    createrepo /var/www/html/cloudera-repos
    - 并对/var/www/html下的所有目录和文件赋权:
    chmod  -R 755 /var/www/html
    - 创建本地Cloudera Manager的repo源,创建/etc/yum.repos.d/myrepo.repo,加入一些配置项:
    [myrepo]
    name = myrepo
    baseurl = http://scdh01/cloudera-repos
    enable = true
    gpgcheck = false

    在浏览器输入: http://scdh01/cloudera-repos 即可看见对应的目录

    (ps: 从节点执行)

    - 创建本地Cloudera Manager的repo源,创建/etc/yum.repos.d/myrepo.repo,加入一些配置项:
    [myrepo]
    name = myrepo
    baseurl = http://scdh01/cloudera-repos
    enable = true
    gpgcheck = false

5.2 安装CM server及agent

主节点执行:

[root@scdh01 yum.repos.d]# yum -y install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server

子节点执行:

[root@scdh02 yum.repos.d]# yum -y install cloudera-manager-agent cloudera-manager-daemons

5.3 修改CM配置文件

所有节点都要执行

[root@scdh01 yum.repos.d]# vim /etc/cloudera-scm-agent/config.ini

server_host=scdh01  # 改成主节点的ip或hosts

5.4 在MySQL中建库

[root@scdh01 yum.repos.d]# mysql -uroot -p

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 hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

5.5 为CM配置数据库

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm root root

6. 启动CM服务

启动主节点的 cloudera-scm-server

[root@scdh01 yum.repos.d]# systemctl start cloudera-scm-server

启动所有节点(包括主节点)的 cloudera-scm-agent

[root@scdh01 yum.repos.d]# systemctl start cloudera-scm-agent

查看状态

[root@scdh01 yum.repos.d]# systemctl status cloudera-scm-server
[root@scdh01 yum.repos.d]# systemctl status cloudera-scm-agent

查看Server启动日志

[root@scdh01 yum.repos.d]# tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

当看到如下信息,代表 cloudera-scm-server 已经启动

2021-09-28 09:46:39,687 INFO WebServerImpl:org.eclipse.jetty.webapp.StandardDescriptorProcessor: NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet
2021-09-28 09:47:01,765 INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.

启动后,在浏览器中输入: 主机 或者 IP:7180 ,会看到如下界面: 


7. CDH 安装配置

  

Cloudera Enterprise,也就是所谓的企业版有如下Express版本不具有的特性:

  • 支持LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)和SAML(Security Assertion Markup Language,安全声明标记语言)身份认证。Cloudera Manager可以依赖内部数据库进行身份认证,企业版还支持通过LDAP和SAML等外部服务进行身份认证。
  • 浏览和还原配置历史。无论何时,当你改变并保存了一系列关于服务、角色或主机的配置信息,Cloudera Manager都会自动保存前一个版本的配置和更改配置的用户名。这样就可以浏览以前的配置,并且在需要时可以回滚到以前的配置状态。
  • 支持SNMP traps报警和用户定制的报警脚本。当预制定阈值越界等情况出现时,可以在任何时候向SNMP管理器报告错误情况,而不用等待SNMP管理器的再次轮询。
  • 备份与崩溃恢复。Cloudera Manager企业版提供了一套集成的、易用的、Hadoop平台上的数据保护解决方案。Cloudera Manager允许跨数据中心的数据复制,包括HDFS里的数据、Hive表中的数据、Hive元数据、Impala元数据等。即使遇到一个数据中心都当掉的情况,仍然可以保证这些关键数据是可用的。
  • 能够建立操作报告。在企业版Cloudera Manager的报告页面,可以建立HDFS的使用报告,包括每个用户、组或者目录的文件数及数据大小等信息,还可以报告MapReduce的操作情况。
  • 支持Cloudera导航。Cloudera导航是一个与Hadoop平台完全集成的数据管理和安全系统,包括数据的审计、可视化、加密、搜索、分析等数据管理功能。
  • 只有企业版支持Rolling Restart、History and Rollback和Send Diagnostic Data操作命令。
  • 提供集群使用报告。企业版Cloudera Manager的集群使用报告页面显示汇总的YARN和Impala作业使用信息。报告还显示CPU、内存的使用情况,基于YARN fair调度器的资源分配情况,Impala查询等,可以配置报告的时间范围

    

   第一个问题解决方法(所有主机都要执行): 先执行(临时修改):

sysctl vm.swappiness=10
cat /proc/sys/vm/swappiness

再执行(永久修改):

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

第二个问题解决方法(所有主机都要执行):

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

都执行完成后,点击重新运行        


8. Hive On Spark 配置

Hive on Spark 参数调优_Java_Road_Far的博客-CSDN博客_hive on spark参数调优


关于上述所有步骤,也可以参照如下链接进行安装:CDH6.2离线安装(整理版) - 牧梦者 - 博客园

其中数据库的安装建议按照官网安装

官网安装地址为Storage Space Planning for Cloudera Manager | 6.1.x | Cloudera Documentation

软硬件环境要求: 各节点:内存推荐16GB及以上,硬盘推荐200GB及以上,网络通畅

8.1 关闭Spark动态分配资源参数

spark和hive中, 把勾挑了:

spark.dynamicAllocation.enabled

9. NameNode HA

      等待大概十分钟,NameNode HA 配置完成


10. 修改默认参数配置

Spark的参数修改

将安装包中的: spark-ext 拷贝(每台节点都要拷贝)到每台服务器的: /usr/lib目录下,并且搜索如下参数添加配置:

spark-conf/spark-env.sh 的 Spark 服务高级配置代码段(安全阀)

spark-conf/spark-env.sh 的 Spark 客户端高级配置代码段(安全阀)

spark-conf/spark-env.sh 的 History Server 高级配置代码段(安全阀)  


11. Phoenix 安装(所有的节点都要执行)

将 安装包中的 apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz 拷贝到 /root 目录下,解压,将名字换成 phoenix

将 /root/phoenix 下的 phoenix-core-5.0.0-HBase-2.0.jar 拷贝(不是移动)到 /opt/cloudera/parcels/CDH-6.2.1-1.cdh6.2.1.p0.1425774/lib/hbase/lib/ 目录下 将 /usr/lib/spark-ext/lib 下的 htrace-core-3.1.0-incubating.jar 拷贝(不是移动)到 /opt/cloudera/parcels/CDH-6.2.1-1.cdh6.2.1.p0.1425774/lib/hbase/lib/ 目录下

[root@bigdata1 ~]# cp /root/phoenix/phoenix-core-5.0.0-HBase-2.0.jar /opt/cloudera/parcels/CDH-6.2.1-1.cdh6.2.1.p0.1425774/lib/hbase/lib/

[root@bigdata1 ~]# cp /root/phoenix/phoenix-5.0.0-HBase-2.1-server.jar /opt/cloudera/parcels/CDH-6.2.1-1.cdh6.2.1.p0.1425774/lib/hbase/lib/

[root@bigdata1 ~]# cp /usr/lib/spark-ext/lib/htrace-core-3.1.0-incubating.jar /opt/cloudera/parcels/CDH-6.2.1-1.cdh6.2.1.p0.1425774/lib/hbase/lib/

然后修改这两个jar的权限为777

[root@bigdata1 ~]# chmod 777 /opt/cloudera/parcels/CDH-6.2.1-1.cdh6.2.1.p0.1425774/lib/hbase/lib/htrace-core-3.1.0-incubating.jar

[root@bigdata1 ~]# chmod 777 /opt/cloudera/parcels/CDH-6.2.1-1.cdh6.2.1.p0.1425774/lib/hbase/lib/phoenix-5.0.0-HBase-2.1-server.jar

[root@bigdata1 ~]# chmod 777 /opt/cloudera/parcels/CDH-6.2.1-1.cdh6.2.1.p0.1425774/lib/hbase/lib/phoenix-core-5.0.0-HBase-2.0.jar

打开 CDH 界面,修改 HBase 如下两个参数  hbase-site.xml 的 HBase 服务高级配置代码段(安全阀)

phoenix.schema.isNamespaceMappingEnabled
true
命名空间开启

hbase.regionserver.wal.codec
org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec
二级索引

hbase-site.xml 的 HBase 客户端高级配置代码段(安全阀)

phoenix.schema.isNamespaceMappingEnabled 
true

重启HBase

将 hdfs 和 hbase 相关配置文件拷贝到 phoenix/bin目录下(所有节点都要执行)

[root@bigdata1 ~]# cp /opt/cloudera/parcels/CDH-6.2.1-1.cdh6.2.1.p0.1425774/lib/hbase/conf/hbase-site.xml /root/phoenix/bin/
cp: overwrite ‘/root/phoenix/bin/hbase-site.xml’? y

[root@bigdata1 ~]# cp /opt/cloudera/parcels/CDH-6.2.1-1.cdh6.2.1.p0.1425774/lib/hadoop/etc/hadoop/core-site.xml /root/phoenix/bin/

[root@bigdata1 ~]# cp /opt/cloudera/parcels/CDH-6.2.1-1.cdh6.2.1.p0.1425774/lib/hadoop/etc/hadoop/hdfs-site.xml /root/phoenix/bin/

[root@bigdata1 ~]# cp /opt/cloudera/parcels/CDH-6.2.1-1.cdh6.2.1.p0.1425774/lib/hadoop/etc/hadoop/yarn-site.xml /root/phoenix/bin/

连接 Phoenix

[root@bigdata1 phoenix]# bin/sqlline.py 

如果出现如下错误:

Transaction isolation: TRANSACTION_READ_COMMITTED
Building list of tables and columns for tab-completion (set fastconnect to true to skip)...
Error: ERROR 1012 (42M03): Table undefined. tableName=SYSTEM.CATALOG (state=42M03,code=1012)
org.apache.phoenix.schema.TableNotFoundException: ERROR 1012 (42M03): Table undefined. tableName=SYSTEM.CATALOG
 at org.apache.phoenix.compile.FromCompiler$BaseColumnResolver.createTableRef(FromCompiler.java:577)
 at org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.<init>(FromCompiler.java:391)
 at org.apache.phoenix.compile.FromCompiler.getResolverForQuery(FromCompiler.java:228)
 at org.apache.phoenix.compile.FromCompiler.getResolverForQuery(FromCompiler.java:206)
 at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableSelectStatement.compilePlan(PhoenixStatement.java:482)
 at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableSelectStatement.compilePlan(PhoenixStatement.java:456)
 at org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:302)
 at org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:291)
 at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
 at org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:290)
 at org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:283)
 at org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:1793)
 at org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.getColumns(PhoenixDatabaseMetaData.java:589)
 at sqlline.SqlLine.getColumns(SqlLine.java:1103)
 at sqlline.SqlLine.getColumnNames(SqlLine.java:1127)
 at sqlline.SqlCompleter.<init>(SqlCompleter.java:81)
 at sqlline.DatabaseConnection.setCompletions(DatabaseConnection.java:84)
 at sqlline.SqlLine.setCompletions(SqlLine.java:1740)
 at sqlline.Commands.connect(Commands.java:1066)
 at sqlline.Commands.connect(Commands.java:996)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:498)
 at sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:38)
 at sqlline.SqlLine.dispatch(SqlLine.java:809)
 at sqlline.SqlLine.initArgs(SqlLine.java:588)
 at sqlline.SqlLine.begin(SqlLine.java:661)
 at sqlline.SqlLine.start(SqlLine.java:398)
 at sqlline.SqlLine.main(SqlLine.java:291)
sqlline version 1.2.0

解决方法如下

[root@bigdata1 phoenix]# hbase shell
Java HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release
HBase Shell
Use "help" to get list of supported commands.
Use "exit" to quit this interactive shell.
For Reference, please visit: http://hbase.apache.org/2.0/book.html#shell
Took 0.0020 seconds 
hbase(main):001:0> 
hbase(main):001:0> list
TABLE 
SYSTEM:CATALOG 
SYSTEM:FUNCTION 
SYSTEM:LOG 
SYSTEM:MUTEX 
SYSTEM:SEQUENCE 
SYSTEM:STATS 
6 row(s)
Took 0.3353 seconds 
=> ["SYSTEM:CATALOG", "SYSTEM:FUNCTION", "SYSTEM:LOG", "SYSTEM:MUTEX", "SYSTEM:SEQUENCE", "SYSTEM:STATS"]
hbase(main):002:0> disable 'SYSTEM:CATALOG'
Took 0.8518 seconds 
hbase(main):003:0> snapshot 'SYSTEM:CATALOG', 'cata_tableSnapshot'
Took 0.2592 seconds 
hbase(main):004:0> clone_snapshot 'cata_tableSnapshot', 'SYSTEM.CATALOG'
Took 4.2676 seconds 
hbase(main):005:0> drop 'SYSTEM:CATALOG'
Took 0.2438 seconds 
hbase(main):006:0> quit

然后重启HBase,重新连接 Phoenix

[root@bigdata1 phoenix]# bin/sqlline.py 
Setting property: [incremental, false]
Setting property: [isolation, TRANSACTION_READ_COMMITTED]
issuing: !connect jdbc:phoenix: none none org.apache.phoenix.jdbc.PhoenixDriver
Connecting to jdbc:phoenix:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/root/phoenix/phoenix-5.0.0-HBase-2.0-client.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-6.2.1-1.cdh6.2.1.p0.1425774/jars/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
Connected to: Phoenix (version 5.0)
Driver: PhoenixEmbeddedDriver (version 5.0)
Autocommit status: true
Transaction isolation: TRANSACTION_READ_COMMITTED
Building list of tables and columns for tab-completion (set fastconnect to true to skip)...
133/133 (100%) Done
Done
sqlline version 1.2.0
0: jdbc:phoenix:>

11.1 显示所有表

0: jdbc:phoenix:> !tables
+------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+--------------+--+
| TABLE_CAT | TABLE_SCHEM | TABLE_NAME | TABLE_TYPE | REMARKS | TYPE_NAME | SELF_REFERENCING_COL_NAME | REF_GENERATION | INDEX_STATE | |
+------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+--------------+--+
| | SYSTEM | CATALOG | SYSTEM TABLE | | | | | | |
| | SYSTEM | FUNCTION | SYSTEM TABLE | | | | | | |
| | SYSTEM | LOG | SYSTEM TABLE | | | | | | |
| | SYSTEM | SEQUENCE | SYSTEM TABLE | | | | | | |
| | SYSTEM | STATS | SYSTEM TABLE | | | | | | |
+------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+--------------+--+
0: jdbc:phoenix:>

11.2 创建表

CREATE TABLE IF NOT EXISTS us_population (
state CHAR(2) NOT NULL,
city VARCHAR NOT NULL,
population BIGINT
CONSTRAINT my_pk PRIMARY KEY (state, city));

11.3 查询所有表

0: jdbc:phoenix:> !tables
+------------+--------------+----------------+---------------+----------+------------+----------------------------+-----------------+--------------+
| TABLE_CAT | TABLE_SCHEM | TABLE_NAME | TABLE_TYPE | REMARKS | TYPE_NAME | SELF_REFERENCING_COL_NAME | REF_GENERATION | INDEX_STATE |
+------------+--------------+----------------+---------------+----------+------------+----------------------------+-----------------+--------------+
| | SYSTEM | CATALOG | SYSTEM TABLE | | | | | |
| | SYSTEM | FUNCTION | SYSTEM TABLE | | | | | |
| | SYSTEM | LOG | SYSTEM TABLE | | | | | |
| | SYSTEM | SEQUENCE | SYSTEM TABLE | | | | | |
| | SYSTEM | STATS | SYSTEM TABLE | | | | | |
| | | US_POPULATION | TABLE | | | | | |
+------------+--------------+----------------+---------------+----------+------------+----------------------------+-----------------+--------------+
0: jdbc:phoenix:>

11.4 新增记录

upsert into us_population values('NY','NewYork',8143197);
upsert into us_population values('CA','Los Angeles',3844829);
upsert into us_population values('IL','Chicago',2842518);

11.5 查询表

0: jdbc:phoenix:> select * from US_POPULATION;
+--------+--------------+-------------+
| STATE | CITY | POPULATION |
+--------+--------------+-------------+
| CA | Los Angeles | 3844829 |
| IL | Chicago | 2842518 |
| NY | NewYork | 8143197 |
+--------+--------------+-------------+
3 rows selected (0.043 seconds)

11.6 删除表

0: jdbc:phoenix:> drop table us_population;

11.7 退出

0: jdbc:phoenix:> !quit

12. hive测试

登陆hue: 下面两个连接随便选一个都可以  首次登陆,用户名: root 密码: root

一定要记住第一次登陆设置的,用上面写的就可以了,登陆进去后,按下图新增hdfs 用户

Hdfs:admin admin

 然后注销 admin 用户,登陆hdfs 用户

依次执行下面的sql

create table myrs(name string, age int);

insert into myrs values("huayang", 20);

select * from myrs;


13. kafka测试

13.1 创建分区

选择kafka安装的一台服务器,执行如下命令,会看到一堆日志

[root@bigdata1 ~]# kafka-topics --zookeeper scdh01:2181 --create --replication-factor 3 --partitions 1 --topic myrs_test

13.2 生产者往 上面创建的 topic 发送消息

[root@bigdata1 ~]# kafka-console-producer --broker-list scdh01:9092 --topic myrs_consumer

13.3 消费者消费 topic 消息

[root@bigdata3 ~]# kafka-console-consumer -bootstrap-server scdh01:9092 --from-beginning --topic myrs_consumer

此时生产者发送,看消费者消费到没有  


14. CDH 邮件配置

停掉 zookeeper 的两个节点

15. Flink集群安装

15.1 下载

为了运行Flink,只需提前安装好 Java 8 或者 Java 11。你可以通过以下命令来检查 Java 是否已经安装正确。

java -version

下载到scdh01:/opt/software并解压

(国内源: https://mirrors.cloud.tencent.com/apache/flink/flink-1.13.3/flink-1.13.3-bin-scala_2.11.tgz)

jar包下载:https://mvnrepository.com/artifact/org.apache.flink/flink-streaming-java_2.12/1.13.5

$ tar -xzf flink-1.12.5-bin-scala_2.11.tgz  -C /usr/app
$ cd /usr/app/flink-1.12.5

15.2 修改配置

在解压完文件后,需要编辑 conf/flink-conf.yaml 文件来为集群配置 Flink

设置 jobmanager.rpc.address 配置项指向 master 节点。也应该通过设置 jobmanager.memory.process.size 和 taskmanager.memory.process.size 配置项来定义 Flink 允许在每个节点上分配的最大内存值。

这些值的单位是 MB。如果一些 worker 节点上有你想分配到 Flink 系统的多余内存,你可以在这些特定节点的 conf/flink-conf.yaml 文件中重写 taskmanager.memory.process.size 或 taskmanager.memory.flink.size 的默认值。

最后,你必须提供集群上会被用作为 worker 节点的所有节点列表,也就是运行 TaskManager 的节点。编辑文件 conf/workers 并输入每个 worker 节点的 IP 或主机名

  1. 修改 /usr/app/flink-1.12.5/conf/flink-conf.yaml

    1. jobmanager.rpc.address: scdh01
  2. 修改 /usr/app/flink-1.12.5/conf/workers

    scdh02
    scdh03

特别注意:

  • 每个 JobManager 的可用内存值(jobmanager.memory.process.size),
  • 每个 TaskManager 的可用内存值 (taskmanager.memory.process.size,并检查 内存调优指南),
  • 每台机器的可用 CPU 数(taskmanager.numberOfTaskSlots),
  • 集群中所有 CPU 数(parallelism.default)和
  • 临时目录(io.tmp.dirs

15.3 高可用配置

state.backend: filesystem
state.checkpoints.dir: hdfs://scdh02:9000/flink-checkpoints
state.savepoints.dir: hdfs://scdh02:9000/flink-savepoints

high-availability: zookeeper
high-availability.storageDir: hdfs://scdh02:9000/flink/ha/
high-availability.zookeeper.quorum: scdh01:2181,scdh02:2181,scdh03:2181

15.4 启动集群

Flink 附带了一个 bash 脚本,可以用于启动本地集群。

$ ./bin/start-cluster.sh
Starting cluster.
Starting standalonesession daemon on host.
Starting taskexecutor daemon on host.

15.5 提交作业(Job)

Flink 的 Releases 附带了许多的示例作业。你可以任意选择一个,快速部署到已运行的集群上。

$ ./bin/flink run examples/streaming/WordCount.jar

另外,你可以通过 Flink 的 Web UI 来监视集群的状态和正在运行的作业。

15.6 停止集群

可以快速停止集群和所有正在运行的组件

$ ./bin/stop-cluster.sh

16 问题处理

Q:节点服务器检测报错

错误内容

 安装失败。 无法接收 Agent 发出的检测信号。
● 请确保主机的名称已正确配置。
● 请确保端口 7182 可在 Cloudera Manager Server 上访问(检查防火墙规则)。
● 请确保正在添加的主机上的端口 9000 和 9001 空闲。
● 检查正在添加的主机上 /var/log/cloudera-scm-agent/ 中的代理日志(某些日志可在安装详细信息中找到)。
● 如果在 Cloudera Manager 中启用为代理使用 TLS 加密(管理 -> 设置 -> 安全),请确保 /etc/cloudera-scm-agent/config.ini 在正在添加的主机上有 use_tls=1。重启相应的代理,并单击此处的重试链接。

解决:

重装CM后启动正常(卸载后清除scm数据库中hosts表数据)

Q:安装Parcel提示主机运行状况不良

解决:

删除agent目录下面的cm_guid文件,并重启失败节点的agent服务恢复。

[root@scdh01]# cd /var/lib/cloudera-scm-agent/       
[root@scdh01]# rm -rf cm_guid 
[root@scdh01]# service cloudera-scm-agent restart

Q:mysql升级mariadb报错

错误内容

解决:

重装mariadb(务必卸载干净)

[root@scdh01 ~]# rpm -qa | grep mariadb
[root@scdh01 ~]# yum -y remove mari*

Q:数据库配置连接数据库失败

解决:

设置root可以远程登录

MariaDB [(none)]> grant all privileges on *.* to root@'%' identified by 'root' with grant option;
MariaDB [(none)]> flush privileges;

Q:cdh重装后kafka启动失败

解决:

查看kafka broker id 与配置文件可能不同

登录并修改各个服务器broker id与配置一致

[root@scdh03 ~]# cd /var/local/kafka/data/
[root@scdh03 data]# cp meta.properties meta.properties.bak
[root@scdh03 data]# vi meta.properties

Q:flink集群关闭失败

  • 问题描述

    Flink运行一段时间后,通过命令:
    
    bin/stop-cluster.sh
    无法正常关闭,提示:
    
    No taskexecutor daemon to stop on host xxx.
    No standalonesession daemon to stop on host xxx
  • 原因分析

     flink启动是会把启动的进程的ID存到一个文件中,由于配置不修改的话文件默认是保存到系统的/tmp目录下,由于是临时目录,会被系统清理,所以存放的ID就找不到了,也就没法关闭集群了
  • 解决方案

    修改FLINK_HOME/bin/目录的config.sh文件,将DEFAULT_ENV_PID_DIR="/tmp"改为:DEFAULT_ENV_PID_DIR的位置修改到一个合适的位置
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大数据开发工程师-宋权

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

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

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

打赏作者

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

抵扣说明:

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

余额充值