CDH6.3.3 Hadoop集群详细部署

1 文档编写的目的

该文档主要介绍如何部署CDH集群环境

2 集群配置服务器说明

本次安装共有7台服务器,分别用于管理节点、计算节点和边缘节点,
服务器列表如下:

HOST NAME说明
qitv3297Cloudera Manager
qitv3296NameNode
qitv3299Strandby NameNode
qitv3298Edge Node
qitv3301DataNode
qitv3300DataNode
qitv3302DataNode

服务器OS版本RedHat7.6

3 前置条件准备

3.1 配置/etc/host

在qitv3297节点配置主机IP映射
在这里插入图片描述
分发到所有节点:(如集群节点过多,可以使用批量脚本发送)

scp /etc/hosts xxxx:/etc

3.2 设置远程免密登录

在172.xx.xx.18节点上使用 ssh-keygen 命令生成一对公钥和私钥, ssh-keygen -t rsa 回车敲击四下即可生成

查看一下生成的公钥和私钥

cd /root/.ssh/

在这里插入图片描述

在qitv3297上把公钥拷贝给其他机器,机器就是你需要远程免密登录的机器

ssh-copy-id qitv3299

在这里插入图片描述
验证是否能够成功免密登录到其他机器

ssh qitv3299

3.3 禁止Selinux

执行命令:

#如果没有批量脚本,每台机器执行该命令
setenforce 0

#批量执行
sh ssh_do_all.sh node.list “setenforce 0”

修改配置文件,在配置文件中添加 下列参数 (所有机器)

vim /etc/selinux/config
SELINUX=disabled

在这里插入图片描述

转发到其他机器

scp /etc/selinux/config xxxx:/etc/selinux/

3.4 关闭防火墙

使用脚本命令:

  • 批量关闭节点的防火墙

systemctl stop firewalld

在这里插入图片描述

  • 设置开机不启动防火墙

systemctl disable firewalld

  • 查看防火墙状态

systemctl status firewalld

3.5 关闭透明大页面

CDH支持的大多数Linux平台都包含一个称为透明大页面的功能,该功能与Hadoop工作负载的交互很差,并且可能严重降低性能。

  • 使用脚本命令批量执行如下操作(所有节点)

echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled

  • 修改/etc/rc.d/rc.local文件,设置开机自动关闭透明大页面:
vim /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

在这里插入图片描述
将修改后的文件分发到其他节点

scp /etc/rc.d/rc.local xxxx:/etc

  • 使用批量脚本修改权限(执行权限)

sh ssh_do_all.sh node.list “chmod 755 /etc/rc.d/rc.local”

查看修改后的文件权限

sh ssh_do_all.sh node.list “ls -l /etc/rc.d/|grep rc.local”

3.6 设置swappiness

swappiness,Linux内核参数,控制换出运行时内存的相对权重。swappiness参数值可设置范围在0到100之间。 低参数值会让内核尽量少用交换,更高参数值会使内核更多的去使用交换空间。默认值为60
swappiness参数值说明

  • vm.swappiness = 0
    仅在内存不足的情况下–当剩余空闲内存低于vm.min_free_kbytes limit时,使用交换空间。

  • vm.swappiness = 1
    内核版本3.5及以上、Red Hat内核版本2.6.32-303及以上,进行最少量的交换,而不禁用交换。

  • vm.swappiness = 10
    当系统存在足够内存时,推荐设置为该值以提高性能。

  • vm.swappiness = 60

  • vm.swappiness = 100
    默认值, 内核将积极的使用交换空间

  1. 使用脚本批量执行

sh ssh_do_all.sh node.list “sysctl vm.swappiness=1”
sh ssh_do_all.sh node.list “echo 1> /proc/sys/vm/swappiness”

  1. 永久修改swappiness

vim /etc/sysctl.conf
vm.swappiness = 1

在这里插入图片描述
分发到其他节点

scp /etc/sysctl.conf xxxx:/etc

  1. 查看swappiness的值

sh ssh_do_all.sh node.list “cat /proc/sys/vm/swappiness”

3.7 安装ntp时间

  • 卸载chrony

Redhat7.x操作系统上默认安装了chrony,我们需要先卸载chrony,然后安装ntp
所有节点卸载chrony

sh ssh_do_all.sh node.list “yum -y remove chrony”

所有节点下载安装ntp服务

sh ssh_do_all.sh node.list “yum -y install ntp”

  • 修改配置文件

在Master节点修改/etc/ntp.conf文件

vim /etc/ntp.conf
#添加一下内容
server 127.127.1.0 
fudge 127.127.1.0 stratum 10
#注释掉其他时间服务器和不用的参数

从节点添加master的地址

vim /etc/ntp.conf
server xxxx  #(该节点IP地址为CM的IP地址)
  • 关于ntp的命令

systemctl start ntpd.service //启动服务
systemctl enable ntpd.service //设置开机自启
systemctl status ntpd //查看ntp是否成功
systemctl restart ntpd //重启ntp服务

  • 查看同步状态

sh ssh_do_all.sh node.list “ntpq -p”
在这里插入图片描述

左边出现*号表示同步成功。

  • 如果没有*号出现,可以使用下面命令强制同步时钟

ntpdate -u xxxx xxxx:主节点IP

3.8 安装httpd

下载安装httpd

yum install -y httpd

启动httpd,并设置开机自动启动,查看httpd状态:

systemctl start httpd
systemctl enable httpd
systemctl status httpd

3.9 配置Cloudera Manager的repo源

  1. 将Cloudera Manager的所有rpm包放到 /var/www/html/目录的新建目录cm6.3.3下

ll /var/www/html
在这里插入图片描述

  1. 使用yum安装createrepo软件

yum install -y createrepo

  1. 在/var/www/html/cm6.3.3目录下执行命令:createrepo . 生成rpm元数据:

createrepo .

在这里插入图片描述

出现红框中文目录表示生成成功。

  1. 在/etc/yum.repos.d/目录下新建cm.repo文件,并添加如下内容:
vim cm.repo
[cm_repo]
name = cm_repo
baseurl = http://xxxx/cm6.3.3/
enable = true
gpgcheck = false
  1. 执行一下命令更新repo源:

yum clean all
yum repolist

在这里插入图片描述

3.10 安装数据库

CM底层自动部署安装数据库进行系统配置、schema等并进行相应管理。同时CM也支持使用外部数据库作为系统配置、数据表结构等的底层存储
具体支持的数据库包括:MySQL、PostgreSQL、Oracle

集群角色库:
在这里插入图片描述

  1. 安装外部数据库

yum -y install mariadb mariadb-server

  1. 初始化数据库
  • 启动数据库

systemctl start mariadb

  • 初始化数据库
/usr/bin/mysql_secure_installation  设置密码为123456
Enter current password for root (enter for none):  # 输入密码,默认为空
Set root password? [Y/n] y                   # 是否设置root密码
Remove anonymous users? [Y/n] y        # 是否移除anonymous用户
Disallow root login remotely? [Y/n] n       # 是否禁止远程登录
Remove test database and access to it? [Y/n] y # 是否移除默认的演示数据库
Reload privilege tables now? [Y/n] y          # 是否重新加载权限表?
  • 配置主备Mysql (不需要配置主从数据库可跳过该步骤)

(1)从数据库安装MariaDB

yum -y install mariadb
yum -y install mariadb-server

(2) 启动并配置MariaDB

systemctl start mariadb
systemctl enable mariadb

同样的执行初始化命令初始化备节点的MySQL

/usr/bin/mysql_secure_installation

(3) 修改主从数据库配置(确保mysql目录和my.cnf的权限用户为mysql)
在这里插入图片描述
在这里插入图片描述

(4) 查看binlog日志是否生效

show variables like ‘log_%’;

(5) 在主节点的MySQL中执行如下命令创建一个同步用户,命令如下

GRANT REPLICATION SLAVE ON . TO ‘mysync’@‘172.xx.%’ IDENTIFIED BY ‘mysync’;
FLUSH PRIVILEGES;

(6) 查看Master MySQL二进制日志File与Position

show master status;
在这里插入图片描述

(7) 在Slave Mysql上执行如下SQL:

change master to
master_host='172.xx.xx.18',
master_user='mysync',
master_password='mysync',
master_log_file='mariadb-bin.000001',
master_log_pos=1431;

在这里插入图片描述

start slave;
show slave status \G

在这里插入图片描述

显示图上处为yes,说明配置成功。

  • 创建集群所需要的数据库(密码可以根据自己需要调整)
create database metastore default character set utf8;
CREATE USER 'hive'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON metastore.* TO 'hive'@'%';
FLUSH PRIVILEGES;
create database scm default character set utf8;
CREATE USER 'scm'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON scm.* TO 'scm'@'%';
FLUSH PRIVILEGES;
create database rm default character set utf8;
CREATE USER 'rm'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON rm.* TO 'rm'@'%';
FLUSH PRIVILEGES;
create database am default character set utf8;
CREATE USER 'am'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON am.* TO 'am'@'%';
FLUSH PRIVILEGES;
create database hue default character set utf8;
CREATE USER 'hue'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON hue.* TO 'hue'@'%';
FLUSH PRIVILEGES;
create database oozie default character set utf8;
CREATE USER 'oozie'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON oozie.* TO 'oozie'@'%';
FLUSH PRIVILEGES;
create database sentry default character set utf8;  
CREATE USER 'sentry'@'%' IDENTIFIED BY 'password';   
GRANT ALL PRIVILEGES ON sentry. * TO 'sentry'@'%';   
FLUSH PRIVILEGES;
create database nav_ms default character set utf8;  
CREATE USER 'nav_ms'@'%' IDENTIFIED BY 'password';   
GRANT ALL PRIVILEGES ON nav_ms. * TO 'nav_ms'@'%';   
FLUSH PRIVILEGES;
create database nav_as default character set utf8;  
CREATE USER 'nav_as'@'%' IDENTIFIED BY 'password';   
GRANT ALL PRIVILEGES ON nav_as. * TO 'nav_as'@'%';   
FLUSH PRIVILEGES;

查看创建所有的数据库

show databases;

在这里插入图片描述

3.11 安装JDBC驱动

  1. 在需要访问MySQL的节点上创建/usr/share/java目录

mkdir -p /usr/share/java

  1. 将准备好的MySQL驱动包拷贝至/usr/share/java目录下并重命名

chmod 777 /usr/share/java/mysql-connector-java.jar

  1. 使用软链接的形式去掉驱动jar包的版本号

chmod 777 mysql-connector-java-5.1.34.jar

ln -s mysql-connector-java-5.1.34.jar mysql-connector-java.jar

4 Cloudera Manager安装

4.1 安装JDK

yum -y install oracle-j2sdk1.8.x86_64

4.2 安装Cloudera Manager Server

  1. 通过yum安装Cloudera Manager Server

yum -y install cloudera-manager-server

在这里插入图片描述

  1. 初始化数据库

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

在这里插入图片描述

  1. 启动Cloudera Manager Server

systemctl start cloudera-scm-server

systemctl status cloudera-scm-server

  1. 检查端口是否监听

netstat -lnpt | grep 7180

在这里插入图片描述

  1. 通过http://172.xx.xx18:7180/cmf/login访问CM, 默认账号密码为admin/admin

在这里插入图片描述
注意:完全启动成功需要几分钟时间。

5 CDH安装

5.1 部署CDH parcel包到http服务

ll /var/www/html

在这里插入图片描述

验证是否可以通过浏览器访问 http://172.xx.xx.18/cdh6.3.3
在这里插入图片描述

5.2 CDH集群安装向导

  1. 登录Cloudera Manager控制台,进入集群安装引导欢迎界面
    在这里插入图片描述

  2. 点击“继续”,选择接受许可条款和条件

在这里插入图片描述

  1. 点击“继续”,选择60天试用安装

在这里插入图片描述

  1. 点击“继续”,进入CDH集群安装界面

在这里插入图片描述

  1. 点击“继续”,输入集群名称

在这里插入图片描述

  1. 点击继续,输入待加入集群的主机名并点击“搜索”按钮

在这里插入图片描述

  1. 点击“继续”,修改CM和CDH的Repository

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 点击“继续”,勾选安装java并勾选安装Java无限制强度加密政策文件

在这里插入图片描述

  1. 点击“继续”,输出登录服务器的账号和密码

在这里插入图片描述

  1. 点击“继续”,进入Agent服务安装界面
    在这里插入图片描述

  2. Agent服务安装完成后自动进入CDH Parcel分发界面
    在这里插入图片描述

等待Parcel包分发完成,进入主机环境检查
在这里插入图片描述

  1. 点击“继续”,进入选择服务界面点击自定义,勾选服务
    在这里插入图片描述

  2. 点击“继续”,进入角色分配界面
    在这里插入图片描述

  3. 点击“继续”,配置数据库信息,点击“测试”确认是否填写正确

在这里插入图片描述

  1. 点击“继续”,确认及调整相应配置
    在这里插入图片描述

  2. 点击“继续”,进入服务首次启动初始流程
    在这里插入图片描述

等待命令运行完成

  1. 点击“继续”

在这里插入图片描述

  1. 点击“完成”,完成集群的安装

在这里插入图片描述

5.3 配置yarn、Impala 动态资源池放置规则

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6 集群安装KDC服务

6.1 KDC服务安装及配置

  1. 在Cloudera Manager服务器上安装KDC服务

yum -y install krb5-server krb5-libs krb5-auth-dialog krb5-workstation

  1. 修改/etc/krb5.conf配置
vim /etc/krb5.conf
# Configuration snippets may be placed in this directory as well
includedir /etc/krb5.conf.d/
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log
[libdefaults]
 dns_lookup_realm = false
 dns_lookup_kdc = false   #必须加
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 rdns = false
 pkinit_anchors = /etc/pki/tls/certs/ca-bundle.crt
 default_realm = xxxx.COM
# default_ccache_name = KEYRING:persistent:%{uid}
[realms]
 xxxx.COM = {
   kdc = qitv3297
   admin_server = qitv3297
 }
[domain_realm]
# .example.com = EXAMPLE.COM
# example.com = EXAMPLE.COM
  1. 修改/var/kerberos/krb5kdc/kadm5.acl配置
vim /var/kerberos/krb5kdc/kadm5.acl
*/admin@xxxx.COM      *
  1. 修改/var/kerberos/krb5kdc/kdc.conf配置
vim /var/kerberos/krb5kdc/kdc.conf
[kdcdefaults]
 kdc_ports = 88
 kdc_tcp_ports = 88
[realms]
 xxxx.COM = {
  #master_key_type = aes256-cts
  max_renewable_life= 7d 0h 0m 0s
  acl_file = /var/kerberos/krb5kdc/kadm5.acl
  dict_file = /usr/share/dict/words
  admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
  supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal camellia256-cts:normal camellia128-cts:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
 }
  1. 创建Kerberos数据库

kdb5_util create –r xxxx.COM -s

  1. 创建Kerberos的管理账号 (密码:123456)

kadmin.local

addprinc admin/admin@xxxx.COM

  1. 将Kerberos服务添加到自启动服务,并启动krb5kdc和kadmin服务

systemctl enable krb5kdc
systemctl enable kadmin
systemctl start krb5kdc
systemctl start kadmin

  1. 测试Kerberos的管理员账号

kinit admin/admin@xxxx.COM

  1. 为集群安装所有Kerberos客户端,包括Cloudera Manager,如下命令需要在集群所有节点执行

yum -y install openldap-clients krb5-workstation krb5-libs

  1. 将KDC Server上的krb5.conf文件拷贝到所有Kerberos客户端,使用批处理脚本将Kerberos服务端的krb5.conf配置文件拷贝至集群所有节点的/etc目录下:

sh bk_cp.sh node.list /etc/krb5.conf /etc/

6.2 集群启用Kerberos

  1. 在KDC中给Cloudera Manager添加管理员账号(密码为123456)

kadmin.local

addprinc cloudera/admin@xxxx.COM

  1. 进入Cloudera Manager的“管理”“安全”界面

在这里插入图片描述

  1. 选择“启用Kerberos”,进入如下界面

在这里插入图片描述

  1. 确保如下列出的所有检查项都已完成
    在这里插入图片描述

  2. 点击“继续”,配置相关的KDC信息,包括类型、KDC服务器、KDC Realm、加密类型以及待创建的Service Principal的更新生命期等

在这里插入图片描述

  1. 不建议让Cloudera Manager来管理krb5.conf,点击继续

在这里插入图片描述

  1. 输入Cloudera Manager的Kerbers管理员账号,一定得和之前创建的账号一致,点击“继续”

在这里插入图片描述

  1. 点击“继续”启用Kerberos
    在这里插入图片描述

  2. 确认Kerberos的配置信息以及HDFS的端口号的变化(默认即可)
    在这里插入图片描述

  3. 点击“继续”运行启动Kerberos指令,等待集群重启完成
    在这里插入图片描述

  4. 点击“完成”,至此已成功启用Kerberos。

在这里插入图片描述

7 CDH集群集成Sentry服务

7.1 安装Sentry服务

在前面数据库章节已为Sentry创建了数据,接下来主要做Sentry服务的添加并与CDH各个服务集成。

  1. 登录Cloudera Manager控制台主页,添加Sentry服务

在这里插入图片描述

  1. 点击“添加服务”,进入服务添加界面,勾选Sentry服务
    在这里插入图片描述

  2. 点击“继续”,进入角色分配界面
    在这里插入图片描述

  3. 点击“继续”,配置元数据库并测试连通性

在这里插入图片描述

  1. 点击“继续”,首次启动运行命令,等待命令运行成功。

在这里插入图片描述

  1. 点击“继续”,完成Sentry服务的安装
    在这里插入图片描述

7.2 Hive与Sentry集成

  1. 进入Hive服务配置页面,搜索“sentry”

在这里插入图片描述

  1. 搜索“doas”禁用hive模拟功能
    在这里插入图片描述

  2. 启用数据库中的存储通知
    在这里插入图片描述

保存上述修改配置,待后面所有配置修改完成后重启服务。

7.3 HDFS与Sentry集成

  1. 进入HDFS服务配置界面搜索“sentry”
    在这里插入图片描述

  2. 搜索“acl”
    在这里插入图片描述

保存上述修改配置,待后面所有配置修改完成后重启服务。

7.4 Impala与Sentry集成

进入Impala服务的配置界面,搜索“sentry”勾选并保存配置
在这里插入图片描述

7.5 Hue与Sentry集成

进入Hue服务的配置页面,搜索“sentry”勾选并保存配置
在这里插入图片描述

完成上述所有配置后,回到CM主页根据提示重启相应服务
在这里插入图片描述

点击重启按钮
在这里插入图片描述

重启相应服务,等待服务重启
在这里插入图片描述

8 服务启用高可用

8.1 NameNode启用高可用

  1. 登录Cloudera Manger进入HDFS服务

在这里插入图片描述

  1. 点击“启用High Availability”,进入高可用引导页

在这里插入图片描述

  1. 点击“继续”,分配高可用角色
    在这里插入图片描述

  2. 点击“继续”,配置JournalNode数据目录

在这里插入图片描述

  1. 点击“继续”,进入启用高可用流程,命令执行完成
    在这里插入图片描述

  2. 点击“继续”,完成高可用启用

在这里插入图片描述

  1. 进入实例列表看到
    在这里插入图片描述

8.2 ResourceManager启用高可用

  1. 登录Cloudera Manager,进入Yarn服务
    在这里插入图片描述

  2. 点击“启用High Availability”,进入高可用引导页

在这里插入图片描述

  1. 点击“继续”,进入服务高可用启用流程,命令运行完成

在这里插入图片描述

  1. 点击“完成”,即完成了Yarn服务的高可用配置

在这里插入图片描述

8.3 Sentry服务启用高可用

  1. 登录Cloudera Manager控制台,进入Sentry服务

在这里插入图片描述

  1. 点击“启用High Availability”,进入高可用引导页
    在这里插入图片描述

  2. 点击“继续”,进入启用Sentry高可用流程,命令执行成功

在这里插入图片描述
在这里插入图片描述

至此完成Sentry服务的高可用启用。

9 功能验证

9.1 添加Gateway模板并应用到edge node节点

  1. 登录Cloudera Manager控制台,点击“主机”->”主机模板”
    在这里插入图片描述

  2. 点击“创建”
    在这里插入图片描述

完成创建
在这里插入图片描述

  1. 点击“主机”-“所有主机”

  2. 选择qitv3298节点,点击菜单应用模板

在这里插入图片描述

选择模板
在这里插入图片描述

  1. 点击确认完成Gateway角色部署

9.2 HDFS功能验证

  1. 执行put命令

在这里插入图片描述

  1. 向集群提交一个MapReduce作业

hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 5 5
在这里插入图片描述

作业执行成功
在这里插入图片描述
在这里插入图片描述

9.3 Spark功能验证

  1. 向集群提交一个Spark作业

spark-submit --class org.apache.spark.examples.SparkPi
–master yarn-client --num-executors 4 --driver-memory 2g
–driver-cores 1 --executor-memory 2g --executor-cores 1
/opt/cloudera/parcels/CDH/lib/spark/examples/jars/spark-examples_2.11-2.4.0-cdh6.3.3.jar

  1. 作业执行成功
    在这里插入图片描述
    在这里插入图片描述

9.4 Hive功能验证

在这里插入图片描述

9.5 Impala功能验证

在这里插入图片描述

9.6 HBase功能验证

create 'user', 'info'
put 'user','rk01','info:name','zhangsan'
put 'user','rk01','info:age',20
scan 'user'

在这里插入图片描述

9.7 Sentry验证

  • 创建测试角色并将角色授权给用户组

  • 创建两个角色:
    read:只能读default库test表,并授权给user_r用户组
    write:只能写default库test表,并授权给user_w用户组
    注意:集群所有节点必须存在user_r和user_w用户,用户默认用户组与用户名一致,赋权是针对用户组而不是针对用户。

useradd user_r
passwd user_r

useradd user_w
passwd user_w

  • 创建角色

1.使用hive用户创建read和write角色,并授权read角色对test表的select权限,write角色对test表的insert权限

create role test_read;
grant select on table test to role test_read;
create role test_write;
grant insert on table test to role test_write;

在这里插入图片描述

2.将read角色授权给user_r用户组,write角色授权给user_w用户组

grant role test_read to group user_r;
grant role test_write to group user_w;

在这里插入图片描述

3.使用kadmin创建user_r和user_w用户

addprinc user_r
addprinc user_w

在这里插入图片描述

  • beeline验证

(1) 使用user_r用户登录Kerberos

kinit user_r

通过beeline连接HiveServer2进行验证

!connect jdbc:hive2://qitv3296:10000/;principal=hive/qitv3296@xxxx.COM

在这里插入图片描述
在这里插入图片描述

执行Hive的MapReduce任务
在这里插入图片描述

(2) 使用user_w用户登录Kerberos

kinit user_w

使用beeline登录HiveServer2验证

!connect jdbc:hive2://qitv3296:10000/;principal=hive/qitv3296@xxxx.COM

在这里插入图片描述

验证总结:
user_r用户所属组为user_r拥有test表读权限,只能对test表进行select和count操作不能进行insert操作;
user_w用户所属组为user_w拥有test表写权限,只能对test表进行insert操作不能进行select操作;

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值