Hadoop HA集群增加journalnode节点
客户要求要回收一批hadoop集群的一批服务器,万幸namenode和resourcemanager服务没有安装在这批服务器上,但不巧的是3个journalnode节点都在这批服务器上,所以暂时先增加3个journalnode节点,等到回收服务器的时候,再把原来的journalnode节点下线,记录一下操作
1修改hdfs-sitexml配置文件
原配置为:
修改为:
2分发hdfs-sitexml文件到各节点
3将原journalnode上的edits文件scp到新的journalnode节点
从hdfs-sitexml文件中的dfsjournalnodeeditsdir配置项得到edits文件存储路径,scp到新节点的相同路径,注意权限和属主要相同,可以用scp -rp来复制
4新journalnode节点启动journalnode进程
jps检查是否启动成功,如果失败就去看$HADOOP_HOME/logs下的journalnode相关的日志,讲道理应该没什么问题
5把standby(nn2)节点的namenode重启一下
6切换standby节点为active
7重启standby(nn1)节点的namenode
操作同5,完成后web界面应该可以看到NameNode Journal Status的journalnode已扩展完成
1)将虚拟机A1和B1的网络连接设置成桥接(估计你目前是NAT模式),2)在A1下配置网络,配置可参考A(Win7),除IP不同,其它如子网掩码,
默认网关或者DNS服务器都相同,
在B1下配置网络,配置可参考B(Win7),除IP不同,其它如子网掩码,
默认网关或者DNS服务器都相同,
(1)journalnode:使两个namenode之间的数据实现共享(hadoop层面的)。系统层面的是NFS。
(2)zookeeper:实现namenode的切换,确保集群只有一个active
(3)格式化zkfc,让在zookeeper中生成ha节点
(4)格式化nn:就是格式化hdfs
与普通文件系统一样,HDFS文件系统必须要先格式化,创建元数据数据结构以后才能使用。
(5)conf下的一些配置文件的作用
hadoop-envsh:用于定义hadoop运行环境相关的配置信息,比如配置JAVA_HOME环境变量、为hadoop的JVM指定特定的选项、指定日志文件所在的目录路径以及master和slave文件的位置等;
core-sitexml: 用于定义系统级别的参数,它作用于全部进程及客户端,如HDFS URL、Hadoop的临时目录以及用于rack-aware集群中的配置文件的配置等,此中的参数定义会覆盖core-defaultxml文件中的默认配置;
hdfs-sitexml: HDFS的相关设定,如文件副本的个数、块大小及是否使用强制权限等,此中的参数定义会覆盖hdfs-defaultxml文件中的默认配置;
mapred-sitexml:mapreduce的相关设定,如reduce任务的默认个数、任务所能够使用内存的默认上下限等,此中的参数定义会覆盖mapred-defaultxml文件中的默认配置;
masters: hadoop的secondary-masters主机列表,当启动Hadoop时,其会在当前主机上启动NameNode和JobTracker,然后通过SSH连接此文件中的主机以作为备用NameNode;
slaves:Hadoop集群的slave(datanode)和tasktracker的主机列表,master启动时会通过SSH连接至此列表中的所有主机并为其启动DataNode和taskTracker进程;
Hadoop-metrics2properties:控制metrics在hadoop上如何发布属性
Log4jproperties:系统日志文件、namenode审计日志、tarsktracker子进程的任务日志属性
(6)hadooptmpdir属性用于定义Hadoop的临时目录,其默认为/tmp/hadoop-${username}。HDFS进程的许多目录默认都在此目录中,/hadoop/tmp目录,需要注意的是,要保证运行Hadoop进程的用户对其具有全部访问权限。
fsdefaultname属性用于定义HDFS的名称节点和其默认的文件系统,其值是一个URI,即NameNode的RPC服务器监听的地址(可以是主机名)和端口(默认为8020)。其默认值为file:///,即本地文件系统。
dfsnamedir属性定义的HDFS元数据持久存储路径,默认为${hadooptmpdir}/dfs/name
dfsreplication属性定义保存副本的数量,默认是保存3份,由于这里只有两台slave。所以设置2。
(7)可以通过修改下面几个参数对集群读写性能进行优化
dfsdatanodehandlercount(加大)DN的服务线程数。这些线程仅用于接收请求,处理业务命令
dfsnamenodehandlercount(加大) NN的服务线程数。用于处理RPC请求
dfsnamenodeavoidreadstaledatanode(true)决定是否避开从脏DN上读数据。脏DN指在一个指定的时间间隔内没有收到心跳信息。脏DN将被移到可以读取(写入)节点列表的尾端。尝试开启
dfsnamenodeavoidwritestaledatanode(true) 和上面相似,是为了避免向脏DN写数据
如果要做Apache Hadoop集群,需要4-6个1TB的硬盘去支撑I\O读写,2-4个2-25Ghz的处理器,处理数据更快,最好用英特尔E3\5服务器专用处理器,内存越大越好,起步64GB,千兆或万兆的以太网,有保障额哦,吞吐量随着储存而变化,需要的以太网越高,就这些,希望可以采纳我的答案
0条评论