首页 文章 精选 留言 我的

精选列表

搜索[云数据库独享集群],共10028篇文章
优秀的个人博客,低调大师

Hadoop3单机部署,实现最简伪集群

1.节点说明 ip hostname 说明 10.0.0.120 hadoop-all 主节点+数据节点 2.环境准备 需要JDK1.8运行环境,搭建请参考[Jdk安装(Linux,MacOS,Windows)] 3.设置主机名 sh 复制代码 # 主节点 hostnamectl set-hostname hadoop-all 4.设置host sh 复制代码 # 所有节点配置 echo "10.0.0.120 hadoop-all" >> /etc/hosts 5.设置ssh免密码登录(主节点) sh 复制代码 # 设置主节点自身ssh免密码登录以及主节点对各个数据节点ssh免密码登录 # 以下操作在主节点进行 # 生成公钥 ssh-keygen -t rsa # 向主节点(本机)复制公钥 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 验证,输入yes,如果此时没有要求输入密码则配置成功 ssh hadoop-all 6.开放端口 sh 复制代码 # 主节点 firewall-cmd --add-port=9870/tcp && firewall-cmd --add-port=9870/tcp --permanent firewall-cmd --add-port=8088/tcp && firewall-cmd --add-port=8088/tcp --permanent firewall-cmd --add-port=9000/tcp && firewall-cmd --add-port=9000/tcp --permanent firewall-cmd --add-port=50090/tcp && firewall-cmd --add-port=50090/tcp --permanent # 或者关闭关闭防火墙 systemctl stop firewalld.service && systemctl disable firewalld.service 7.准备hadoop安装包 sh 复制代码 # 下载地址 http://hadoop.apache.org/ # 镜像地址 https://mirrors.cloud.tencent.com/apache/hadoop/common/ # 下载hadoop-3.3.6.tar.gz并解压到指定目录,如/data0/hadoop/hadoop-3.3.6 mkdir -p /data0/hadoop/ tar -zxvf hadoop-3.3.6.tar.gz # 创建hadoop数据存放目录 mkdir -p /data1/hadoop/repo 8.修改配置 8.1.进入配置文件目录 sh 复制代码 cd /data0/hadoop/hadoop-3.3.6/etc/hadoop 8.2.修改hadoop-env.sh配置文件 sh 复制代码 # 编辑文件 vi hadoop-env.sh # 添加 export JAVA_HOME=/data0/java/jdk1.8.0_361 export HADOOP_LOG_DIR=/data1/hadoop/repo/logs/hadoop # /data0/java/jdk1.8.0_291为jdk安装目录 # /data1/hadoop/repo为hadoop数据存放目录 8.3.修改core-site.xml配置文件 sh 复制代码 # 编辑文件 vi core-site.xml # 修改configuration节点配置 <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop-all:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/data1/hadoop/repo</value> </property> </configuration> # hadoop-all为主节点主机名 # 9000为端口 8.4.修改hdfs-site.xml配置文件 sh 复制代码 # 编辑文件 vi hdfs-site.xml # 修改configuration节点配置 <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> # 1为数据副本个数 8.5.修改mapred-site.xml配置文件 sh 复制代码 # 编辑文件 vi mapred-site.xml # 修改configuration节点配置 <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> 8.6.修改yarn-site.xml配置文件 sh 复制代码 # 编辑文件 vi yarn-site.xml # 修改configuration节点配置 <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value> </property> </configuration> 9.修改hadoop启动/停止配置 9.1.进入启动脚本目录 sh 复制代码 cd /data0/hadoop/hadoop-3.3.6/sbin 9.2.修改dfs.sh的启动/停止命令 sh 复制代码 # 编辑文件 vi start-dfs.sh vi stop-dfs.sh # 都添加 HDFS_DATANODE_USER=root HDFS_DATANODE_SECURE_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root 9.3.修改yarn.sh的启动/停止命令 sh 复制代码 # 编辑文件 vi start-yarn.sh vi stop-yarn.sh # 都添加 YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root 10.格式化hdfs sh 复制代码 # 进入hadoop根目录 cd /data0/hadoop/hadoop-3.3.6 # 格式化 bin/hdfs namenode -format 11.启动/停止 sh 复制代码 # 进入hadoop根目录 cd /data0/hadoop/hadoop-3.3.6/sbin # 启动 ./start-all.sh # 停止 ./stop-all.sh # 查看启动状态 jps # 主节点启动[ResourceManager,NameNode,SecondaryNameNode,DataNode,NodeManager] 12.web查看状态 sh 复制代码 # 浏览器访问 10.0.0.120:9870 10.0.0.10:8088 13.配置环境变量 sh 复制代码 # 打开文件 vi ~/.bash_profile # 添加环境变量 # HADOOP export HADOOP_HOME=/data0/hadoop/hadoop-3.3.6 export PATH=$HADOOP_HOME/bin:$PATH #保存退出 :x # 让配置马上生效 source ~/.bash_profile

优秀的个人博客,低调大师

MySQL数据库中FOR UPDATE的使用

在MySQL中,FOR UPDATE是一个非常重要的锁机制,主要用于在事务中锁定查询到的数据行,防止其他事务修改这些数据。 基本语法 sql 复制代码 SELECT * FROM table_name WHERE condition FOR UPDATE; 主要作用 1. 行级排他锁 对查询结果集加排他锁(X锁) 其他事务无法对这些行加任何锁,包括读锁和写锁 其他事务可以普通读取(取决于隔离级别),但不能修改 2. 防止数据竞争 在并发环境下,防止多个事务同时修改同一数据: sql 复制代码 -- 事务1 START TRANSACTION; SELECT balance FROM accounts WHERE id = 1 FOR UPDATE; -- 此时其他事务无法修改id=1的记录 UPDATE accounts SET balance = balance - 100 WHERE id = 1; COMMIT; 使用场景 1. 库存扣减 sql 复制代码 START TRANSACTION; SELECT stock FROM products WHERE id = 1001 FOR UPDATE; -- 检查库存并扣减 UPDATE products SET stock = stock - 1 WHERE id = 1001; COMMIT; 2. 账户余额操作 sql 复制代码 START TRANSACTION; SELECT balance FROM accounts WHERE user_id = 123 FOR UPDATE; -- 确保余额充足后进行转账 UPDATE accounts SET balance = balance - 500 WHERE user_id = 123; COMMIT; 3. 订单处理 sql 复制代码 START TRANSACTION; SELECT * FROM orders WHERE status = 'pending' FOR UPDATE; -- 处理待处理订单 UPDATE orders SET status = 'processing' WHERE status = 'pending'; COMMIT; 注意事项 1. 必须在事务中使用 sql 复制代码 -- 错误用法(不在事务中) SELECT * FROM table FOR UPDATE; -- 正确用法 START TRANSACTION; SELECT * FROM table FOR UPDATE; -- ... 其他操作 COMMIT; 2. 锁的释放 锁在事务提交或回滚时自动释放 长时间持有锁会影响并发性能 3. 索引的重要性 sql 复制代码 -- 使用主键索引(高效) SELECT * FROM users WHERE id = 1 FOR UPDATE; -- 无索引字段可能导致表锁(性能差) SELECT * FROM users WHERE name = 'John' FOR UPDATE; 4. 与其他锁的区别 锁类型 说明 其他事务能否读取 其他事务能否修改 FOR UPDATE 排他锁 可以(READ COMMITTED) 不可以 LOCK IN SHARE MODE 共享锁 可以 不可以 实际示例 sql 复制代码 -- 银行转账场景 START TRANSACTION; -- 锁定转出账户 SELECT balance FROM accounts WHERE account_no = 'A001' FOR UPDATE; -- 锁定转入账户 SELECT balance FROM accounts WHERE account_no = 'B002' FOR UPDATE; -- 执行转账操作 UPDATE accounts SET balance = balance - 1000 WHERE account_no = 'A001'; UPDATE accounts SET balance = balance + 1000 WHERE account_no = 'B002'; COMMIT; 性能建议 尽量缩短锁持有时间 确保查询条件使用索引 避免在高峰期对热点数据使用 考虑使用乐观锁替代 FOR UPDATE是保证数据一致性的重要工具,但需要谨慎使用以避免死锁和性能问题。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册