标签:org 格式 model ide lov fence serve 解压 balancer
热扩容,减容
减容
1. 创建一个新的文件 位置 名字 随便
host.exclusion
hadoop2
2. 配置 hdfs-site.xml
dfs.hosts.exclude 文件的位置 (不加 file://)
<property>
<name>dfs.hosts.exclude</name>
<value>/opt/install/hadoop-2.5.2/host.exclusion</value>
</property>
3. 通过命令刷新集群
bin/hdfs dfsadmin -refreshNodes
4. 把删除的节点 从slaves 删除
5. 把hdfs-site.xml
dfs.hosts.exclude 的信息删除
6. kill 掉 被删除的DataNode
扩容
# ,如果新节点克隆主节点,则删除新节点下面的 data文件夹中的数据,否则主节点和新节点只可显示一个
1. 保证新加的机器 (hosts配置 域名设置 iptables selinux关闭 配置主机到从机 SSH免密码登陆 hadoop安装(core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml))
2. 启动新机器的datanode
sbin/hadoop-daemon.sh start datanode
3. 平衡处理sbin/start-balancer.sh,为了数据散列均匀
4. 修改集群中所有的slave配置文件 把新加入的节点配置进去
准备集群中三个节点
防火墙,selinux,ip,host,主机名,jdk,ssh
zk ssh 中间节点 操作 所有节点
安装zk集群(奇数个节点)
1. 上传zookeeper-3.4.5.tar.gz,并解压缩
2. zookeeper安装目录下创建一个data文件夹 /opt/install/zookeeper-3.4.5/data
3. 修改zookeeper的配置文件
zoo_sample.cfg 改名成zoo.cfg
dataDir=/opt/install/zookeeper-3.4.5/data
server.1=hadoop:2888:3888
server.2=hadoop1:2888:3888
server.3=hadoop2:2888:3888
4. dataDir所对应的路径下创建myid文件 并分别设置 1,2,3
5. 集群同步 scp -r zookeeper-3.4.5/ root@hadoop1:/opt/install/
6. zookeeper_home/bin/zkServer.sh start|stop|status
zookeeper_home/bin/zkCli.sh
安装Hadoop
1. 解压缩 释放hadoop的安装包
2. 配置文件 同步全集群
hadoop-env.sh
core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns1/</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/install/hadoop-2.5.2/data/tmp</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>hadoop:2181,hadoop1:2181,hadoop2:2181</value>
</property>
hdfs-site.xml
<!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致 -->
<property>
<name>dfs.nameservices</name>
<value>ns1</value>
</property>
<property>
<name>dfs.ha.namenodes.ns1</name>
<value>nn1,nn2</value>
</property>
<!-- nn1的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.ns1.nn1</name>
<value>hadoop:8020</value>
</property>
<!-- nn1的http通信地址 -->
<property>
<name>dfs.namenode.http-address.ns1.nn1</name>
<value>hadoop:50070</value>
</property>
<!-- nn2的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.ns1.nn2</name>
<value>hadoop1:8020</value>
</property>
<!-- nn2的http通信地址 -->
<property>
<name>dfs.namenode.http-address.ns1.nn2</name>
<value>hadoop1:50070</value>
</property>
<!-- 指定NameNode的元数据在JournalNode上的存放位置 -->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://hadoop:8485;hadoop1:8485;hadoop2:8485/ns1</value>
</property>
<!-- 指定JournalNode在本地磁盘存放数据的位置 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/install/hadoop-2.5.2/journaldata</value>
</property>
<!-- 开启NameNode失败自动切换 -->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!-- 配置失败自动切换实现方式 -->
<property>
<name>dfs.client.failover.proxy.provider.ns1</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行-->
<property>
<name>dfs.ha.fencing.methods</name>
<value>
sshfence
shell(/bin/true)
</value>
</property>
<!-- 使用sshfence隔离机制时需要ssh免登陆 -->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
<!-- 配置sshfence隔离机制超时时间 -->
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>
?
mapred-site.xml[一致]
yarn-site.xml[一致]
slaves[一致]
3. 启动zk , journalnode
sbin/hadoop-daemon.sh start journalnode
3. 格式化
bin/hdfs namenode -format
scp -r data/tmp/* root@hadoop1:/opt/install/hadoop-2.5.2/data/tmp
4. 启动
bin/hdfs zkfc -formatZK [第一次]
sbin/start-dfs.sh
Java代码
Configuration configuration = new Configuration();
configuration.set("fs.defaultFS","hdfs://ns1/");
?
FileSystem fileSystem = FileSystem.get(configuration);
标签:org 格式 model ide lov fence serve 解压 balancer
原文地址:https://www.cnblogs.com/lhc-hhh/p/10324287.html