需求:准备四台安装jdk的虚拟机(仅仅是为了技术而技术)
整体规划:搭建r2.6.5的集群
总体步骤:
一,操作系统环境
依赖软件ssh,jdk
环境的配置
java_home
免密钥
时间同步
hosts,hostname
二,hadoop部署
/opt/sxt/
配置文件修改
java_home
角色在哪里启动
第一步:操作系统环境配置
编辑 etc/hosts
修改hostname
第二步:做免密钥处理的命令(本机)
显示.ssh 自己连接自己然后退出,就会有.ssh目录
ssh-keygen -t dsa -P ‘’ -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
因为是高可用的,所以node02可以对node01进行免密钥登录,对自己也可以。
免密钥登陆
控制节点scp自己的id_dsa.pub分发到其他节点
cat ~/node1.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
第三步:时间同步
上传hadoop.tar.gz到服务器
解压,mv hadoop-2.6.5 /opt/sxt
编辑etc/profile文件
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_67
export HADOOP_PREFIX=/opt/sxt/hadoop-2.6.5
export PATH=
P
A
T
H
:
PATH:
PATH:JAVA_HOME/bin:
H
A
D
O
O
P
P
R
E
F
I
X
/
b
i
n
:
HADOOP_PREFIX/bin:
HADOOPPREFIX/bin:HADOOP_PREFIX/sbin
在目录hadoop中修改所有的env.sh结尾的文件
/opt/hadoop-2.6.5/etc/hadoop
*-env.sh
JAVA_HOME=/usr/java/jdk1.7.0_67
修改 core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/sxt/hadoop/ha</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>node02:2181,node03:2181,node04:2181</value>
</property>
</configuration>
修改 hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn1</name>
<value>node01:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn2</name>
<value>node02:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn1</name>
<value>node01:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn2</name>
<value>node02:50070</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://node01:8485;node02:8485;node03:8485/mycluster</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/var/sxt/hadoop/ha/jn</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_dsa</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
</configuration>
编辑 slaves
node02
node03
node04
分发部署包到其他节点
cd /opt/sxt
scp -r hadoop-2.6.5 node02:pwd
scp -r hadoop-2.6.5 node03:pwd
scp -r hadoop-2.6.5 node04:pwd
因为要用zookeeper管理,所以需要先搭建好zookeeper集群
,zookeeper(配置)
conf/zoo.cfg
dataDir=/var/sxt/zk
server.1=node02:2888:3888
server.2=node03:2888:3888
server.3=node04:2888:3888
/var/sxt/zk
echo 1 > myid //数字根据节点规划
配置文件:集群中要同步!!!
zookeepr配置
启动zookeeper集群
zkServer.sh start || zkServer.sh status
hadoop-daemon.sh start journalnode
第一台NN:
hdfs namenode –format
hadoop-deamon.sh start namenode
另一台NN:
hdfs namenode -bootstrapStandby
start-dfs.sh
$ZOOKEEPER/bin/zkCli.sh
ls /
hdfs zkfc -formatZK
stop-dfs.sh && start-dfs.sh || hadoop-daemon.sh start zkfc
注意:格式化namenode时一定要先启动journalnode
因为里面也有 yarn所以启动时还涉及yarn的启动命令