9.23学习笔记

完全分布式 HDFS
slaves(或 workers)文件决定 DataNode 列表;本次写入:

node2
node3
副本放置策略:
第 1 副本→客户端本地机架,第 2 副本→不同机架,第 3 副本→与第 2 同机架另一节点。
扩容命令:
bash

hdfs dfsadmin -report
hdfs dfsadmin -refreshNodes
YARN 基础
资源抽象:Container = <vcore, mem>
调度器:
– Capacity:多队列,共享集群
– Fair:动态公平
– FIFO:默认,测试用
MapReduce 作业提交流程:
Job.submit() → YARN Runner → ResourceManager → ApplicationMaster → Container 启动 Task
HBase 分布式要点
外置 ZK 时 hbase-site.xml 必须:
xml

hbase.zookeeper.quorum node1,node2,node3 hbase.cluster.distributed true 预分区优势:避免写热点,命令: ruby

create 't1','cf',SPLITS => ['10','20','30','40','50','60','70','80','90']
Rowkey 设计三原则:长度短、散列、业务有序。
实操流水账
克隆 & 网络
bash

在 VMware 对 node1 做「完整克隆」生成 node2/3

修改 MAC 与 IP

sed -i 's/80.11/80.12/g' /etc/sysconfig/network-scripts/ifcfg-ens33

依次重启

SSH 免密(root 互访)

在 node1

ssh-keygen -t rsa -P ""
for i in 11 12 13; do ssh-copy-id 192.168.80.$i; done
完全分布式 Hadoop
bash

core-site.xml

fs.defaultFS=hdfs://node1:9000

hdfs-site.xml

dfs.replication=3

workers

echo -e "node2\nnode3" > $HADOOP_HOME/etc/hadoop/workers

格式化(仅首次)

hdfs namenode -format
start-dfs.sh
验证:
http://node1:9870 → Live Nodes=2
1 GB 文件上传测试
bash

dd if=/dev/zero of=1g.bin bs=1M count=1024
time hdfs dfs -put 1g.bin /test

结果:42.7 s,吞吐 ≈ 23.4 MB/s

YARN 启动 & Pi 作业
bash

start-yarn.sh

提交

mapred jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar pi 10 1000

输出:Estimated value of Pi is 3.1416

耗时:18 s

Web UI:http://node1:8088
ZooKeeper 集群
bash

解压到 /opt/zookeeper

zoo.cfg(3 台相同)

tickTime=2000
initLimit=5
syncLimit=2
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888

myid

echo 1 > /opt/zookeeper/data/myid # node2→2, node3→3
zkServer.sh start
zkServer.sh status # 1 leader + 2 follower
HBase 分布式
bash

配置完后同步到 3 节点

start-hbase.sh

region 分布

hbase hbck -details
Web UI:http://node1:16010
百万行压测脚本(Ruby)
ruby

for i in 0..999999
put 'perf', "row#{i}", 'cf:v', "#{i}"
end
结果:
– 耗时 82 s
– 平均吞吐 ≈ 12 200 row/s
– 节点 CPU 峰值 67 %(top 观测)

posted @ 2025-09-23 23:20  头发少的文不识  阅读(16)  评论(0)    收藏  举报