**
hadoop集群简易搭建
**
一、集群搭建:
1,所有节点关闭防火墙
2,修改节点的主机名:master01、slave01、等等
3,配置hosts文件,
1.1.1.1 master01
2.2.2.2 slave01
4,所有节点配置免密登录
ssh-keygen 获取本机秘钥
ssh-copy-id root@master01 发送给所有节点
5,安装搭建zookeeper集群并启动(略)
6,安装jdk(建议1.8)
7,进入master01节点的hadoop安装路径下的 /etc/hadoop目录
8,编辑配置文件
hadoop-env.sh
export JAVA_HOME=/home/software/jdk1.8
export HADOOP_CONF_DIR=/home/software/hadoop-2.7.7/etc/hadoop
core-site.xml
fs.defaultFS
hdfs://ns
hadoop.tmp.dir
/home/software/hadoop-2.7.7/tmp
ha.zookeeper.quorum
master01:2181
</configuration>
hdfs-site.xml
<configuration>
<!--执行hdfs的nameservice为ns,注意要和core-site.xml中的名称保持一致-->
<property>
<name>dfs.nameservices</name>
<value>ns</value>
</property>
<!--ns集群下有两个namenode,分别为namenode起名字:nn1, nn2-->
<!--dfs.ha.namenodes.ns - ns是hdfs集群的名字-->
<property>
<name>dfs.ha.namenodes.ns</name>
<value>nn1,nn2</value>
</property>
<!--nn1的RPC通信-->
<property>
<name>dfs.namenode.rpc-address.ns.nn1</name>
<value>master01:9000</value>
</property>
<!--nn1的http通信-->
<property>
<name>dfs.namenode.http-address.ns.nn1</name>
<value>master01:50070</value>
</property>
<!-- nn2的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.ns.nn2</name>
<value>worker01:9000</value>
</property>
<!-- nn2的http通信地址 -->
<property>
<name>dfs.namenode.http-address.ns.nn2</name>
<value>worker01:50070</value>
</property>
<!--指定namenode的元数据在JournalNode上存放的位置,这样,namenode2可以从journalnode集群
里的指定位置上获取信息,达到热备效果–>
dfs.namenode.shared.edits.dir
qjournal://master01:8485;worker01:8485/ns
dfs.journalnode.edits.dir
/home/software/hadoop-2.7.7/tmp/journal
dfs.ha.automatic-failover.enabled
true
dfs.client.failover.proxy.provider.ns
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
dfs.ha.fencing.methods
sshfence
dfs.ha.fencing.ssh.private-key-files
/root/.ssh/id_rsa
dfs.namenode.name.dir
file:///home/software/hadoop-2.7.7/tmp/hdfs/name
dfs.datanode.data.dir
file:///home/software/hadoop-2.7.7/tmp/hdfs/data
dfs.replication
3
dfs.permissions
false
</configuration>
mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<!--配置yarn的高可用-->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!--指定两个resourcemaneger的名称-->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!--配置rm1的主机-->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>master01</value>
</property>
<!--配置rm2的主机-->
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>worker01</value>
</property>
<!--开启yarn恢复机制-->
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<!--执行rm恢复机制实现类-->
<property>
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
<!--配置zookeeper的地址-->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>master01:2181,worker01:2181</value>
</property>
<!--执行yarn集群的别名-->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>ns-yarn</value>
</property>
<!-- 指定nodemanager启动时加载server的方式为shuffle server -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定resourcemanager地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>worker01</value>
</property>
</configuration>
slaves(所有节点的主机名写进去)
master01
slave01
9,配置hadoop的环境变量,在/etc/profile下
export HADOOP_HOME=/home/software/hadoop-2.7.7
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
10,将配置好的文件夹发送到其他节点上
11,启动并且格式化zookeeper,
hdfs zkfc -formatZK
12,启动journalnode
hadoop_daemons.sh start journalnode
13,namenode的节点格式化并启动namenode
第一台:
hadoop namenode format 格式化namenode
hadoop-daemon.sh start namonode 启动namenode
第二台: namenode节点变为standby namenode节点。
hdfs namenode -bootstrapStandby
hadoop-daemon.sh start namonode
14,执行start-all.sh,启动剩余的服务
stop-all.sh,关闭所有服务
15,如果有的进程没能起的来,可以单独启动
hadoop-daemon.sh start namonode
hadoop-daemon.sh start datanode
离开安全模式: hadoop dfsadmin -safemode leave