写过一篇Hadoop集群创建文章,但是由于有点混乱和初创不熟悉,并且创建的虚拟机(5台)有点多,因此再搞了一篇更详细和简洁明了的Hadoop集群安装教程,接下来让我们开始愉快的Hadoop安装旅程吧!
首先需要创建一台虚拟机Master01,这里找到了一篇非常好的带图解的centos6.5安装教程,地址https://www.cnblogs.com/jiachunguang/p/10771780.html
注意!!!:最后的swap分区就不要了,因为swap是虚拟分区,会降低HBase的服务性能,容易”通信堵塞“,导致集群崩掉,所以有关数据库系统尽量避免创建swap分区
接下来接通网络:
vi /etc/sysconfig/network-scripts/ifcfg-eth0 //修改网络配置
//修改:
ONBOOT=yes //将no改为yes
//插入:
BOOTPROTO=static //
IPADDR=192.168.XXX.128 //IP地址,XXX为主机地址ip4的第三字段,我的xxx为43,所以接下来都写43,不写XXX
NETMASK=255.255.255.0 //子网掩码
GATEWAY=192.168.XXX.2 //网关
DNS=8.8.8.8
//输入完毕,ESC + :wq + 回车 可退出
修改DNS域名解析配置文件,一定要修改此文件,不然ping不通网络
vi /etc/resolv.conf //命令
nameserver 192.168.XXX.2 //插入配置
//退出
修改主机名
hostname //查看当前主机名
vi /etc/sysconfig/network //修改hostname行的名为Master01
//输入完毕,ESC + :wq + 回车
更换yum源(暂时不改)
//先备份yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
设置hosts文件
vi /etc/hosts //命令
192.168.43.128 Master01 //插入
192.168.43.129 Slave01
192.168.43.130 Slave02
== 重启==
reboot
验证
可以通过ping ip地址,百度验证网络是否接通
创建普通用户
adduser hadoop //创建Hadoop用户
下载hadoop压缩包
下载地址:http://archive.apache.org/dist/hadoop/common/hadoop-2.6.5/
下载jdk压缩包
jdk1.8,64位linux版本下载路径.永久免费
下载SecureCRTPortable软件外接虚拟机,比较容易操作接下来都叫CRT的简称
使用SecureFXPortable链接虚拟机,在用户Hadoop的文件夹中创建software文件夹,并上传jkd压缩包
在CRT中开启Master01虚拟机 上传hadoop和jdk的压缩包
<!--设置设备备份数量-->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!--指定高可用集群的名字空间-->
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
<!-- 指定NameNone节点的名字空间-->
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value>
</property>
<!-- rpc:远程调用,设置第一个远程调用的地址和端口-->
<property>
<name>dfs.namenode.rpc-address.mycluster.nn1</name>
<value>hadoop01:9000</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn2</name>
<value>hadoop02:9000</value>
</property>
<!-- 设置网页访问的地址和端口-->
<property>
<name>dfs.namenode.http-address.mycluster.nn1</name>
<value>hadoop01:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn2</name>
<value>hadoop02:50070</value>
</property>
<!-- 设置共享edits的存放地址,将共享edits文件存放在QJournal集群中的QJCluster目录下-->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://hadoop02:8485;hadoop03:8485/QJCulster</value>
</property>
<!-- 设置JournalNode节点的edits文件本地存放路径,是QJournal真实数据存放路径-->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/home/hadoop/software/hadoop-2.6.5/QJEditsData</value>
</property>
<!-- 开启自动故障转移-->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!-- 设置HDFS客户端用来与活动的namenode节点联系的java类-->
<property>
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.hs.ConfiguredFailoverProxyProvider</value>
</property>
<!-- 用于停止活动NameNode节点的故障转移期间的脚本,保证任何时候都只有一个NameNode处于活动状态;
SShfence参数:采用ssh方式连接活动NameNode节点,并杀掉进程;
shell脚本:表示如果sshfence执行失败,在执行自定义的shell脚本,确定只能有一个NameNode处于活动状态-->
<property>
<name>dfs.ha.fencing.methods</name>
<value>
sshfence
shell(/home/hadoop/software/hadoop-2.6.5/ensure.sh)
</value>
</property>
<!-- 为了实现SSH登录杀掉进程,还需要配置免密码登录的SSH密匙信息-->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>
<!-- 设置SSH连接超时-->
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>