hadoop 单一的配置
1,修改hadoop-env.sh export JAVA_HOME=/app/jdk1.7.0_80
2,修改core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://zgt:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/hadoop-2.7.5/data/</value>
</property>
</configuration>
3,修改 hdfs-site.xml
<configuration>
<property>
<!-- 副本数-->
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
4,修改mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
5,修改yarn-site.xml
<configuration>
<!-- 指定ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>zgt</value>
</property>
<!-- 指定reducer获取数据的方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
6,修改slaves 文件
zgt
7,格式化namenode
./hadoop namenode -format
8,命令启动
./start-dfs.sh
./start-yarn.sh
hadoop HA 配置
1,修改hadoop-env.sh export JAVA_HOME=/app/jdk1.7.0_80
2,修改core-site.xml
<configuration>
<!-- 指定 hdfs 的nameservice 为ns1 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns1</value>
</property>
<!-- 指定 hadoop 临时目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/app/hadoop-2.7.5/tmp/</value>
</property>
<!-- 指定zookeeper 地址 -->
<property>
<name>ha.zookeeper.quorum</name>
<value>centos1:2181,centos2:2181,centos3:2181</value>
</property>
</configuration>
3,修改 hdfs-site.xml
<configuration>
<!-- 指定 hdfs 的nameservice 为ns1 需要和core-site 保持一致 -->
<property>
<name>dfs.nameservices</name>
<value>ns1</value>
</property>
<!-- ns1 下面有两个NameNode 分别为 nn1,nn2 -->
<property>
<name>dfs.ha.namenodes.ns1</name>
<value>nn1,nn2</value>
</property>
<!--nn1 RPC 通信地址 -->
<property>
<name>dfs.namenode.rpc-address.ns1.nn1</name>
<value>centos1:9000</value>
</property>
<!-- nn1的http通信地址,外部访问地址 -->
<property>
<name>dfs.namenode.http-address.ns1.nn1</name>
<value>centos1:50070</value>
</property>
<!--nn2 RPC 通信地址 -->
<property>
<name>dfs.namenode.rpc-address.ns1.nn2</name>
<value>centos2:9000</value>
</property>
<!-- nn2的http通信地址,外部访问地址 -->
<property>
<name>dfs.namenode.http-address.ns1.nn2</name>
<value>centos2:50070</value>
</property>
<!-- 指定NameNode的元数据在JournalNode日志上的存放位置(一般和zookeeper部署在一起) -->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://centos1:8485;centos2:8485;centos3:8485/ns1</value>
</property>
<!-- 指定JournalNode在本地磁盘存放数据的位置 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/app/hadoop-2.7.5/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>
</configuration>
4,修改mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
5,修改yarn-site.xml
<configuration>
<!-- 开启RM 高可用 -->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!-- 指定RM cluster id -->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yrc</value>
</property>
<!-- 指定RM 的名字 -->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!--分别指定RM 的地址 -->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>centos1</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>centos2</value>
</property>
<!--指定zk 集群的地址 -->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>centos1:2181,centos2:2181,centos3:2181</value>
</property>
<property>
<name>yarn.resourcemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
6,修改slaves 文件
centos1
centos2
centos3
7,命令启动 sbin
./hadoop-daemon.sh start journalnode
8, 格式化namenode bin
./hadoop namenode -format
9,拷贝
scp -r tmp centos2:/app/hadoop-2.7.5/
10,格式化 ZKFC 在centos1 上格式化即可 bin
./hdfs zkfc -formatZK
11,启动 HDFS 在centos1上执行
sbin/start-dfs.sh
12,启动 yarn
sbin/start-yarn.sh
--centos2 要单独启动
./yarn-daemon.sh start resourcemanager
13,可以启动浏览器查看
http://xxxx:9000
http://xxxx:50070
14,验证HDFS HA
首先上传一个文件
hdfs fs -put /etc/profile /profile
hdfs fs-ls
然后kill掉 active 的NameNode
kill -9 pid
通过浏览器访问 50070 查看是否切换
15, 若发现两个 hdfs 都是 standby 执行下面的命令 bin
./hdfs haadmin -transitionToActive --forcemanual nn1
zookeeper 配置
scp test.txt zgt@zgt:/app/ ubuntu 远程传输文件
centos 修改主机名 hostnamectl set-hostname centos2
改配置文件:
zoo.cfg
server.1=zgt:2888:3888
server.2=centos1:2888:3888
server.3=centos2:2888:3888
新建 dataDir=/app/zookeeper-3.4.10/data 并且 echo 1 > myid
hadoop 的HA 配置
最新推荐文章于 2024-07-11 18:52:23 发布