| 文档编号 | 版本号 | V1.0 | |
|---|---|---|---|
| 名称 | 实时大数据平台安装文档 | ||
| 总页数 | 正文 | ||
| 编写日期 | 审批 |
该手册旨在记录部署大数据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 机器配置
| ip | hosts | 节点 |
|---|---|---|
| 10.106.**.** | scdh01 | 主机 |
| 10.106.**.** | scdh02 | 从机 |
| 10.106.**.** | scdh03 | 从机 |
(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_643.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=disabled3.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 start4. 安装 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:005. 安装 CM 5.1 制作 yum 源
(ps: 主节点执行)
开启 http 服务
创建目录, 并上传本地下载好的 cdh 安装包 到指定文件夹
[root@scdh01 ~]# mkdir -p /var/www/html/cloudera-repos 上传安装包进来
制作本地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
主节点执行:
[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-daemons5.3 修改CM配置文件
所有节点都要执行
[root@scdh01 yum.repos.d]# vim /etc/cloudera-scm-agent/config.ini server_host=scdh01 # 改成主节点的ip或hosts5.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.(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. (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_test13.2 生产者往 上面创建的 topic 发送消息
[root@bigdata1 ~]# kafka-console-producer --broker-list scdh01:9092 --topic myrs_consumer13.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.515.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 或主机名
修改 /usr/app/flink-1.12.5/conf/flink-conf.yaml
- jobmanager.rpc.address: scdh01
修改 /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:218115.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.sh16 问题处理 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 restartQ: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.propertiesQ: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的位置修改到一个合适的位置



