实时大数据平台安装文档
文档编号 | 版本号 | 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 机器配置
ip | hosts | 节点 |
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: 主节点执行)
- 开启 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
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 配置
其中数据库的安装建议按照官网安装
官网安装地址为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 或主机名
- 修改 /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: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的位置修改到一个合适的位置