1.伪分布式:只有一台服务器,运行所有节点(仅用于测试学习)
2.完全分布式:各个节点分布在不同服务器上,资源使用不冲突
3.高可用的完全分布式:提高HDFS的可用性
仅使用hadoop01一台服务器
1. 配置免密登录 hadoop01->hadoop01
在~/.ssh目录下
生成私钥
ssh-keygen -t rsa
将公钥传给自己
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node01
2. 配置JDK
在/etc/profile写入
export JAVA_HOME=/opt/software/jdk/jdk1.8.0_151
export PATH=\$PATH:$JAVA_HOME/bin
3. 修改hdfs-site.xml配置文件
<property>
<-- 副本数量 默认3 -->
<name>dfs.replicationname>
<value>1value>
property>
<-- SNN节点地址 伪分布式配置在当前地址-->
<property>
<name>dfs.namenode.secondary.http-addressname>
<value>hadoop01:50090value>
property>
4. 修改core-site.xml配置文件
<property>
<-- 前缀 -->
<name>fs.defaultFSname>
<value>hdfs://hadoop01:9000value>
property>
<property>
<-- 存储目录 没有则创建 -->
<name>hadoop.tmp.dirname>
<value>/var/abc/hadoop/localvalue>
property>
5. 修改slaves配置文件
即从节点名,伪分布式从节点为自己,所以写
hadoop01
6. 配置hadoop环境变量
在用户配置~/.bashrc内添加
export HADOOP_HOME=/opt/hadoop/hadoop-2.6.5
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
7. 格式化NameNode(创建目录以及文件)
hdfs namenode -format
8. 启动HDFS
start-dfs.sh
node01 NameNode
node02 SecondaryNameNode和DataNode
node03 DataNode
node04 DataNode
1. 时间同步
在各个节点安装ntp命令
yum install ntp
查找最新的时间服务器
ntp1.aliyun.com
同步时间
ntpdate ntp1.aliyun.com
2. 配置免密登录
node01->node01 | node01->node02 | node01->node03 | node01->node04
所有节点执行
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
在node01节点执行,将node01的公钥加入到其他节点的白名单中
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node01
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node02
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node03
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node04
3. 所有节点配置JDK
略
4. 修改hdfs-site.xml配置文件
<property>
<-- 副本数量 默认3 -->
<name>dfs.replicationname>
<value>3value>
property>
<-- SNN节点地址 -->
<property>
<name>dfs.namenode.secondary.http-addressname>
<value>node02:50090value>
property>
5. 修改core-site.xml配置文件
<property>
<-- 前缀 -->
<name>fs.defaultFSname>
<value>hdfs://node01:9000value>
property>
<property>
<-- 存储目录 没有则创建 -->
<name>hadoop.tmp.dirname>
<value>/var/abc/hadoop/clustervalue>
property>
6. hadoop环境变量
略
7. 修改slaves配置文件
修改为
node02
node03
node04
8. 将配置好的安装包分发到其他节点上
在hadoop的上级目录
scp -r hadoop-2.6.5 root@node02:/opt/software/hadoop/
scp -r hadoop-2.6.5 root@node03:/opt/software/hadoop/
scp -r hadoop-2.6.5 root@node03:/opt/software/hadoop/
或简写为
scp -r hadoop-2.6.5 root@node02:`pwd`
9. 将所有的HDFS相关的进程关闭
格式化NameNode(创建目录以及文件)
在node01节点执行
hdfs namenode -format
start-dfs.sh
临时关闭
service iptables stop
永久关闭
chkconfig iptables off
<property>
<name>dfs.nameservicesname>
<value>myclustervalue>
property>
<property>
<name>dfs.ha.namenodes.myclustername>
<value>nn1,nn2value>
property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn1name>
<value>node01:8020value>
property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn2name>
<value>node02:8020value>
property>
<property>
<name>dfs.namenode.http-address.mycluster.nn1name>
<value>node01:50070value>
property>
<property>
<name>dfs.namenode.http-address.mycluster.nn2name>
<value>node02:50070value>
property>
<property>
<name>dfs.namenode.shared.edits.dirname>
<value>qjournal://node01:8485;node02:8485;node03:8485/myclustervalue>
property>
<property>
<name>dfs.journalnode.edits.dirname>
<value>/var/sxt/hadoop/ha/jnvalue>
property>
<property>
<name>dfs.client.failover.proxy.provider.myclustername>
<value>org.apache.hadoop.hdfs.server.namenode.
ha.ConfiguredFailoverProxyProvidervalue>
property>
<property>
<name>dfs.ha.fencing.methodsname>
<value>sshfencevalue>
property>
<property>
<name>dfs.ha.fencing.ssh.private-key-filesname>
<value>/root/.ssh/id_rsavalue>
property>
<property>
<name>dfs.ha.automatic-failover.enabledname>
<value>truevalue>
property>
<property>
<name>fs.defaultFSname>
<value>hdfs://myclustervalue>
property>
<property>
<name>ha.zookeeper.quorumname>
<value>node02:2181,node03:2181,node04:2181value>
property>
node02
node03
node04
scp -r hadoop-2.6.5 root@node02:/opt/software/hadoop/
scp -r hadoop-2.6.5 root@node03:/opt/software/hadoop/
scp -r hadoop-2.6.5 root@node03:/opt/software/hadoop/
hadoop-daemon.sh start journalnode
hdfs namenode -format
单独启动NN1
hadoop-daemon.sh start namenode
同步元数据
hdfs namenode -bootstrapStandby
hdfs zkfc -formatZK
stop-dfs.sh
start-dfs.sh
ifconfig
cd /etc/sysconfig/network-scripts/
vim ifcfg-eth0
修改
ONBOOT=yes
BOOTPROTO=none
添加
IPADDR=192.168.180.128 (查询到的ip)
PREFIX=24
GATEWAY=192.168.180.2 (根据ip修改)
DNS1=8.8.8.8
cd /etc/sysconfig/
vim network
vim /etc/hosts