hadoop个人学习笔记

hadoop安装
一、单个namenode集群搭建
1、简单概念
机器
node1 node2 node3 node4
uri概念–统一资源定位符
hdfs://node1:9000 uri
field///
jdbc:mysql://localhost:3306
安装jdk
JAVA_HOME=/usr/local/jdk1.7.0_45/
2、解压文件
tar -zxvf hadoop-2.6.4.tar.gz -C /apps
ln -s /apps/hadoop-2.6.4 hadoop
修改配置文件
cd /apps/hadoop-2.6.4/etc/hadoop
修改java_home信息
vi hadoop-env.sh
java_home=/usr/local/jdk1.7.0_45
修改核心配置文件
vi core-site.xml

fs.defaultFS
hdfs://node1:9000 —hdfs namenode


hadoop.tmp.dir
/home/hadoop/hdpdata —本地进程工作的目录

注意: hadoop的namenode工作目录双写
默认的工作目录 /home/hadoop/hdpdata/dfs/name
指定工作目录 /home/hadoop/hdpdata
临时工作目录在core-site.xml中设置
cd /apps/hadoop-2.6.4/etc/hadoop
vi hdfs-stie.xml

dfs.name.dir
/home/hadoop/name1,/home/hadoop/name2

格式化namenode
hadoop namenode -format
datanode配置多个目录
dfs.data.dir
修改hdfs配置文件
vi hdfs-site.xml

dfs.replication --副本数量 默认3
2


dfs.secondary.http.address --第二个namenode
node2:50090

修改maprefuce配置文件
vi mapred-site.xml.template

mapreduce.framework.name --mapreduce 运行在哪里 默认localhost
yarn

mv mapred-site.xml.template mapred-site.xml
修改yarn配置文件
vi yarn-site.xml

yarn.resourcemanager.hostname – yarn 主节点resourcemanager
node1


yarn.nodemanager.aux-services --mapreduce 的shuffle reduce获取数据方式
mapreduce_shuffle

修改管理节点
cd /apps/hadoop-2.6.4/etc/hadoop
vi slaves
node2
node3
node4
3、修改环境变量
sudo vi /etc/profile
export HADOOP_HOME=/apps/hadoop-2.6.4
export PATH= P A T H : PATH: PATH:JAVA_HOME/bin: H A D O O P H O M E / b i n : HADOOP_HOME/bin: HADOOPHOME/bin:HADOOP_HOME/sbin
4、复制程序到其他服务器
sudo scp /etc/profile node2:/etc
使用配置的环境变量生效
source /etc/profile
5、格式化namenode 生成初始的目录
hadoop namenode -format
6、启动namenode
cd /apps/hadoop-2.6.4/sbin
hadoop-daemon.sh start namenode
7、网页查看namenode信息
http://node1:50070/dfshealth.html#tab-overview
http://node1:8088/cluster
8、启动 datanode
node2 node3 node4
hadoop-daemon.sh start/stop datanode
9、启动 reourcemanager
node1
yarn-daemon.sh start/stop resourcemanager
ndoe2 node3 node4
yarn-daemon.sh start nodemanager
10、一键启动hdfs集群
start-dfs.sh/stop-dfs.sh
11、运行mapreduce jar包
cd /apps/hadoop-2.6.4/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-2.6.4.jar wordcount /wordcount/input /wordcount/output
12、hdfs基本操作命令
hdfs dfsadmin -report 查看hdfs状态的命令
hadoop fs -ls / #查看文件夹
hadoop fs -cat /wordcount/ouptput/part-r-00000 |more #查看文件
-put #放到hdfs
-get #获取we年
-mkdir #创建文件夹
-moveFromLocal #把本地文件放到Hadoop上 本地删除
-moveToLocal #把hadoop放到本地 hadoop删除
-appendToFile #追加 把内容追加到文件中
-tail #查看
-rm #删除 -r
-rmdir #删除空目录
-chgrp # 组
-chmod #赋权
-chown #修改用户拥护者
-cp #在hadfs里面复制
-getmerge #合并文件
-df #查看空间大小
-du -s -h/m hdfs://node1/* #查看单个文件大小
-copyToLocal #复制文件到本地
-count #计数
-setrep #设置文件副本数量 这里设置的副本数只是记录在namenode的元数据的数量 真实的不一定 只有足够的机器才会创建副本
二、namenode机制
1、namenode 定时会把内存中的数据写在一个内存的镜像文件(镜像文件是内存序列化,方式是dump)fsimage中,
由于faimage会一直变大 ,到时候加载很耗时,会把操作写入到edits中。
edits (edits_inprogress_0000000000000000440 一直写入 ) 记录的是操作本身而不是元数据。
secondary namenode 是为了管理fsimage镜像文件 不影响namenode的正常服务
secondary namenode 定时请求进行合并,满足则合并。
合并checkpoint:合并fsimage和edits文件 默认30分钟
合并的触发条件是定时或者edits中记录数到达一定数量
seen_txid 文件中记录的是edits滚动的序号,每次重启namenode时namenode就知道要将那些edits进行加载 到内存中。
1、更新namenode内存中的数据 写入到fsimage中
2、记录操作日志 直接滚动追加到 edits
3、secondary namenode 请求是否满足checkpoint,满足,请求checkpoint,
4、namenode立马滚动当前正在写入的edits
5、secondary namenode把fsimage和其他的edits(多个)文件下载下来
6、secondary namenode把fsimage和edits文件合并更新到内存中 在dump出来一个新的fsimage.checkpoint
7、fsimage.checkpoint上传到namenode ,namenode把fsimage.checkpoint重命名覆盖原来的fsimage
8、第二次不会下载fsimage 直接下载edits/
2、VERSION 文件作用
cd /home/hadoop/hdpdata/dfs/name/current
version是java属性文件
[hadoop@node1 current]$ cat VERSION
#Sun Feb 28 07:08:56 CST 2021
namespaceID=1517088859
clusterID=CID-16223beb-8985-4063-b8d5-d7b72e39aa19 集群ID
cTime=0
storageType=NAME_NODE
blockpoolID=BP-295619259-192.168.136.10-1614467336763
layoutVersion=-60
KaTeX parse error: Expected 'EOF', got '#' at position 1986: …nfiguration> #̲## hdfs-site.x…PWD
scp -r ./hadoop/ mini3: P W D s c p − r . / h a d o o p / m i n i 4 : PWD scp -r ./hadoop/ mini4: PWDscpr./hadoop/mini4:PWD
scp -r ./hadoop/ mini5: P W D s c p − r . / h a d o o p / m i n i 6 : PWD scp -r ./hadoop/ mini6: PWDscpr./hadoop/mini6:PWD
scp -r ./hadoop/ mini7: P W D 4 、 启 动 h a d o o p H A 方 式 1 ) 、 启 动 z o o k e e p e r m i n i 5 m i n i 6 m i n i 7 c d / a p p s / z o o k e e p e r − 3.4.5 / b i n . / z k S e r v e r . s h s t a r t . / z k S e r v e r . s h s t a t u s 查 看 状 态 一 个 l e a d e r 两 个 f o o l w e r 2 ) 、 启 动 j o u r n a l n o d e ( 分 别 在 m i n i 5 m i n i 6 m i n i 7 ) c d / a p p s / h a d o o p − 2.6.4 / s b i n . / h a d o o p − d a e m o n . s h s t a r t j o u r n a l n o d e j p s 命 令 检 查 m i n i 5 m i n i 6 m i n i 7 上 多 了 J o u r n a l N o d e 进 程 3 ) 、 格 式 化 H D F S m i n i 1 h d f s n a m e n o d e − f o r m a t 日 志 中 出 现 : c o m m o n . S t o r a g e : S t o r a g e d i r e c t o r y / h o m e / h a d o o p / h d p d a t a / d f s / n a m e h a s b e e n s u c c e s s f u l l y f o r m a t t e d . c d / h o m e / h a d o o p / h d p d a t a / d f s / n a m e / c u r r e n t c a t V E R S I O N s c p − r / h o m e / h a d o o p / h d p d a t a / m i n i 2 : PWD 4、启动hadoopHA方式 1)、启动zookeeper mini5 mini6 mini7 cd /apps/zookeeper-3.4.5/bin ./zkServer.sh start ./zkServer.sh status 查看状态 一个leader 两个foolwer 2)、启动journalnode(分别在mini5 mini6 mini7) cd /apps/hadoop-2.6.4/sbin ./hadoop-daemon.sh start journalnode jps 命令检查 mini5 mini6 mini7 上 多了JournalNode进程 3)、格式化HDFS mini1 hdfs namenode -format 日志中出现:common.Storage: Storage directory /home/hadoop/hdpdata/dfs/name has been successfully formatted. cd /home/hadoop/hdpdata/dfs/name/current cat VERSION scp -r /home/hadoop/hdpdata/ mini2: PWD4hadoopHA1zookeepermini5mini6mini7cd/apps/zookeeper3.4.5/bin./zkServer.shstart./zkServer.shstatusleaderfoolwer2journalnodemini5mini6mini7cd/apps/hadoop2.6.4/sbin./hadoopdaemon.shstartjournalnodejpsmini5mini6mini7JournalNode3HDFSmini1hdfsnamenodeformatcommon.Storage:Storagedirectory/home/hadoop/hdpdata/dfs/namehasbeensuccessfullyformatted.cd/home/hadoop/hdpdata/dfs/name/currentcatVERSIONscpr/home/hadoop/hdpdata/mini2:PWD
格式化后在根据core-site.xml中的hadoop.tmp.dir配置生成个文件 /home/hadoop/hdpdata
scp -r /home/hadoop/hdpdata mini2:/home/hadoop/hdpdata
4)、格式化ZKFC 在mini1
hdfs zkfc -formatZK
5)、启动hdfs 在mini1上启动
cd /apps/hadoop-2.6.4/sbin
./start-dfs.sh
6)、启动yarn mini3
cd /apps/hadoop-2.6.4/sbin
./start-yarn.sh
mini4上
cd /apps/hadoop-2.6.4/sbin
./yarn-daemon.sh start resourcemanager
四、联邦hadoop配置

Federation-HA 配置文件
修改 core-site.xml配置文件
vi core-site.xml


fs.defaultFS
viewfs:///



fs.viewfs.mounttable.default.link./bi
hdfs://bi/


fs.viewfs.mounttable.default.link./dt
hdfs://dt/


hadoop.tmp.dir
/home/hadoop/hdpdata/



ha.zookeeper.quorum
mini5:2181,mini6:2181,mini7:2181


修改 hdfs-site.xml 配置文件
vi hdfs-site.xml



dfs.nameservices
bi,dt



dfs.ha.namenodes.bi
nn1,nn2



dfs.ha.namenodes.dt
nn3,nn4



dfs.namenode.rpc-address.bi.nn1
mini1:9000



dfs.namenode.http-address.bi.nn1
mini1:50070



dfs.namenode.rpc-address.bi.nn2
mini2:9000



dfs.namenode.http-address.bi.nn2
mini2:50070



dfs.namenode.rpc-address.dt.nn3
mini3:9000



dfs.namenode.http-address.dt.nn3
mini3:50070



dfs.namenode.rpc-address.dt.nn4
mini4:9000



dfs.namenode.http-address.dt.nn4
mini4:50070



dfs.namenode.shared.edits.dir
qjournal://mini5:8485;mini6:8485;mini7:8485/bi



dfs.namenode.shared.edits.dir
qjournal://mini5:8485;mini6:8485;mini7:8485/dt



dfs.journalnode.edits.dir
/home/hadoop/journaldata



dfs.ha.automatic-failover.enabled
true



dfs.client.failover.proxy.provider.bi
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider



dfs.client.failover.proxy.provider.dt
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider



dfs.ha.fencing.methods

sshfence
shell(/bin/true)




.ha.fencing.ssh.private-key-files
/home/hadoop/.ssh/id_rsa



dfs.ha.fencing.ssh.connect-timeout
30000


修改 mapred-site.xml配置文件
vi mapred-site.xml



mapreduce.framework.name
yarn


修改 yarn-site.xml配置文件
vi yarn-site.xml



yarn.resourcemanager.ha.enabled
true



yarn.resourcemanager.cluster-id
yrc



yarn.resourcemanager.ha.rm-ids
rm1,rm2



yarn.resourcemanager.hostname.rm1
mini3


yarn.resourcemanager.hostname.rm2
mini4



yarn.resourcemanager.zk-address
mini5:2181,mini6:2181,mini7:2181


yarn.resourcemanager.aux-services
mapreduce_shuffle

修改slaves(salves是指定子节点的位置)
vi salves
mini5
mini6
mini7
初始化步骤
先在5/6/7上启动journalnode
hadoop-daemon start journalnode
在bi下nn1
hdfs namenode -format -clusterID lhw
hdfs zfkc -formatZK
拷贝元数据到standby nn2
在dt下的nn3
hdfs namenode -format -clusterID lhw ###clusterID必须和bi的clusterID相同
hdfs zkfc -formatZK
拷贝元数据到standby nn4

在bi下的nn1上
sbin/start-dfs.sh
在resourcemanager配置机器上启动
sbin/start-yarn.sh
杀死所有Java进程
killall -9 java

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值