1、下载hadoop2.6.5软件
2、准备安装完成jdk配置好的主机4台以上
1)配置主机名和IP地址的映射
配置方法
1)vi /etc/hosts
2)在此文件的末尾添加配置主机名和ip地址映射
192.168.23.5 node1
192.168.23.6 node2
……
3)保存退出
2)完成免密钥登录
1)生成公钥
命令:ssh-keygen -t dsa -P " -f ~/.ssh/id_dsa
2)追加公钥到authorized_keys文件中
命令:cat ~./ssh/id_dsa.pub >> ~./ssh/authorized_keys
注:每台电脑都要做免密钥登录
3、划分主机功能
NN-1 | NN-2 | DN | ZK | ZKFC | JNN | |
node1 | * | * | * | |||
node2 | * | * | * | * | * | |
node3 | * | * | * | |||
node4 | * | * |
4、安装zookeeper软件
1)选择划分好要安装zookeeper的任意一台主机下载zookeeper软件
2)解压zooleeper到指定目录下
解压命令:tar xf zookeeper-版本号.tar.gz
3)修改zoo.cfg
注:默认安装包无此文件需复制并重命名zoo_sample.cfg为zoo.cfg
1).修改此文件下的dataDir=XXXX
注:该目录需用户自定义一个路径。
2).在该文件的末尾添加分配好的3个主机名
server.1=主机名:2888:3888
server.2=主机名:2888:3888
server.3=主机名:2888:3888
4)保存退出该文件
5)在zoo.cfg中设置的dataDir路径下创建一个文件并命名为myid
编辑myid文件
在此文件中首行输入“1”即可保存退出。
6)把编辑好的zookeeper文件夹复制到另外两台主机上
网络复制命令:scp ”zookeeper路径“ 主机名:`pwd`
7)在另外两台主机上分别新建或者复制配置好的主机上面的dataDir路径下的myid文件
分别修改myid文件内容为“2”和“3”;退出保存即可。
注:三台主机的文件及dataDir目录结构要一致
8)每台主机启动zookeeper
启动命令:zkServer.sh start
9)当三台主机启动完成zookeeper后查看zookeeper服务状态
查看zookeeper状态命令:zkServer.sh status
注:查看三台主机zookeeper服务状态时
三台主机中有一台主机状态为:leader
两台主机状态为:follower
表示zookeeper启动成功
5、安装配置hadoop软件
1)在第一台主机上面解压下载完成的hadoop安装包
解压命令:tar xf hadoop-版本号.tar.gz
复制解压好的文件夹hadoop-版本号到一个自定义路径下更名为hadoop
2)进入hadoop文件夹下的配置文件文件夹
配置文件的路径:hadoop/etc/hadoop
3)修改配置文件下的所有*.env.sh文件中的包括”JAVA_HOME=“的路径
注:JAVA_HOME路径是必须修改为jdk的绝对路径
4)修改配置文件hdfs-site.xml
在该文件内的<configuration></configuration>中间添加配置项
配置项为:
<!--这个配置信息意为block块副本数为3个-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--这个配置信息意为统一两台namenode的主机名-->
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
<!--这个配置信息意为两台namenode主机别名-->
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value>
</property>
<!--这个配置信息意为第一台namenode主机地址-->
<property>
<name>dfs.namenode.rpc-address.mycluster.nn1</name>
<value>主机名1:8020</value>
</property>
<!--这个配置信息意为第二台namenode主机地址-->
<property>
<name>dfs.namenode.rpc-address.mycluster.nn2</name>
<value>主机名2:8020</value>
</property>
<!--这个配置信息意为第一台namenode主机访问地址-->
<property>
<name>dfs.namenode.http-address.mycluster.nn1</name>
<value>主机名1:50070</value>
</property>
<!--这个配置信息意为第二台namenode主机访问地址-->
<property>
<name>dfs.namenode.http-address.mycluster.nn2</name>
<value>主机名2:50070</value>
</property>
<!--这个配置信息意为那三台主机是journalNode-->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://主机1:8485;主机2:8485;主机3:8485/mycluster</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>
<!--这个配置信息意为开启HA模式-->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
保存退出该文件
5)修改配置文件core-site.xml
在该文件内的<configuration></configuration>中间添加配置项
配置项为:
<!--这个配置信息意为读取hdfs-site.xml中配置的两台namenode统一别名-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
<!--这个配置信息意为通知hadoop那些主机安装了zookeeper-->
<property>
<name>ha.zookeeper.quorum</name>
<value>node2:2181,node3:2181,node4:2181</value>
</property>
<!--这个配置信息意为指定hadoop运行文件位置-->
<property>
<name>hadoop.tmp.dir</name>
<value>/var/hadoop/ha</value>
</property>
保存退出
6)把hadoop整个文件夹复制到另外3台主机上
7)启动hadoop
注:第一次启动时要按以下步骤启动
1)jps检查是否启动zookeeper
如已启动并主机间通信正常忽略此步骤
如未启动请按4步骤介绍启动
2)在分配为journalnode的主机上分别运行
hadoop-daemon.sh start journalnode 命令,启动journalnode
3)在第一台namenode上格式化namenode
命令:hdfs namenode -format
留意格式化是否报错,如无报错继续下续操作
4)启动第一台namenode
命令:hadoop-daemon.sh start namenode
5)启动第二台namenode主机
命令:hdfs namenode –bootstrapStandby
6)启动hadoop
命令:start-dfs.sh
7)格式化zkfc
命令:hdfs zkfc -formatZK
8)启动zkfc
命令:hadoop-daemon.sh start zkfc
1)启动zookeeper
命令:zkServer.sh start
2)启动hadoop
命令:start-dfs.sh