主机名 IP地址 安装的软件 运行的进程
Master 192.168.75.140 jdk,Hadoop, ,zookeeper namenode,resourcemanager,zkfc
Node2 192.168.75.128 jdk,Hadoop, ,zookeeper namenode, datanode,zkfc, journalnode
Slave1 192.168.75.141 jdk,Hadoop, ,zookeeper datanode,nodemanager,journalnode
Slave2 192.168.75.142 jdk,hadoop datanode,nodemanager,journalnode
Slave3 192.168.75.143 jdk,hadoop datanode,nodemanager,journalnode
NN DN ZK ZKFC JN RM DM
Master 1 1 1 1
Node2 1 1 1 1 1 1
Slave1 1 1 1 1
Slave2 1 1 1
Slave3 1 1 1
实现
在Master上操作
- jdk的安装
1.1、 解压jdk安装包到/home/Hadoop下
tar –zxvf jdk*.tar.gz –C /home/hadoop
1.2、配置环境变量 /etc/profile添加jdk环境变量
Vi /etc/profile
export JAVA_HOME=/usr/jdk1.7.0_79
export JRE_HOME=/usr/jdk1.7.0_79/jre
export CLASSPATH=.: C L A S S P A T H : CLASSPATH: CLASSPATH:JAVA_HOME/lib: J R E H O M E / l i b e x p o r t P A T H = JRE_HOME/lib export PATH= JREHOME/libexportPATH=PATH: J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:JRE_HOME/bin
source /etc/profile 使环境生效(root)
测试java –version
输出jdk的版本号
1.3、关闭防火墙(root)
Service iptable stop
Chkconfig iptables off
1.4、配置/etc/hosts文件,添加(root)
192.168.75.140 Master
192.168.75.128 node2
192.168.75.141 Slave1
192.168.75.142 Slave2
192.168.75.143 Slave3
1.5、vim /etc/sysconfig/selinux
将其中selinux=enforcing 改为selinux=disable
1.6、 修改主机名,修改/etc/sysconfig/network文件。
Vi /etc/sysconfig/network
HOSTNAME=Master
- Hadoop2.52安装(root)
2.1 解压hadoop-2.5.2
Tar –zxvf Hadoop-2.5.2-64x.tar.gz –C /home/hadoop
2.2、配置环境变量 /etc/profile添加hadoop环境变量
export HADOOP_HOME=/home/hadoop/hadoop-2.5.2
export HADOOP_COMMON_HOME= H A D O O P H O M E e x p o r t H A D O O P H D F S H O M E = HADOOP_HOME export HADOOP_HDFS_HOME= HADOOPHOMEexportHADOOPHDFSHOME=HADOOP_HOME
export HADOOP_MAPRED_HOME= H A D O O P H O M E e x p o r t H A D O O P Y A R N H O M E = HADOOP_HOME export HADOOP_YARN_HOME= HADOOPHOMEexportHADOOPYARNHOME=HADOOP_HOME
export HADOOP_CONF_DIR= H A D O O P H O M E / e t c / h a d o o p e x p o r t C L A S S P A T H = . : HADOOP_HOME/etc/hadoop export CLASSPATH=.: HADOOPHOME/etc/hadoopexportCLASSPATH=.:JAVA_HOME/lib: H A D O O P H O M E / l i b : HADOOP_HOME/lib: HADOOPHOME/lib:CLASSPATH
export PATH= P A T H : PATH: PATH:HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile 使环境变量生效
2.3、配置hadoop配置文件
Cd /home/Hadoop/Hadoop/etc/hadoop
2.3.1、更改hadoop-env.sh文件,改变下面的一句
Vi /home/Hadoop/Hadoop-2.5.2/etc/Hadoop/Hadoop-env.sh
export JAVA_HOME=/usr/jdk1.7.0_79
2.3.2、vi hdfs-site.xml
2.3.3 vi core-site.xml
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> fs.defaultFS hdfs://mycluster dfs.journalnode.edits.dir /home/hadoop/opt/journal/node/local/data ha.zookeeper.quorum Master:2181,node2:2181,Slave1:2181 hadoop.tmp.dir /home/hadoop/opt/hadoop23、zookeeper的安装配置
3.1、解压zookeeper压缩包到/home/Hadoop目录下
Tar –zxvf zookeeper*.tar.gz –C /home/Hadoop
3.2、配置zookeeper配置文件,添加下面几句
Vi /zookeeper/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/hadoop/opt/zookeeper/data
dataLogDir=/home/hadoop/opt/zookeeper/log
clientPort=2181
server.1=Master:2888:3888
server.2=node2:2888:3888
server.3=Slave1:2888:3888
3.3、新建zookeeper的信息目录
Mkdir /home/Hadoop/opt
Mkdir /home/Hadoop/opt/zookeeper
Mkdir /home/Hadoop/opt/zookeeper/data
Mkdir /home/Hadoop/opt/zookeeper/log
3.4、新建myid文件
Vi /home/Hadoop/opt/zookeeper/myid
添加1
说明:在node2和Slave1中分别是2和3,一会会把/hom/Hadoop 整个文件拷贝到其他节点上。切记要改这个文件。
4、hive和hbase的安装
4.1、hive和hbase的解压
Tar –zxvf hive*.tar.gz –C /home/Hadoop
Tar –zxvf hbase*.tar.gz –C /home/Hadoop
4.2 hive和hbase的环境变量
Vi /etc/profile
添加下面几句
export HIVE_HOME=/home/Hadoop/hive
export HBASE_HOME=/home/Hadoop/hb
export PATH=
H
I
V
E
H
O
M
E
/
b
i
n
:
HIVE_HOME/bin:
HIVEHOME/bin:HBASE_HOME/bin:$PATH
Source /etc/profile
4.3 hive的配置文件
4.3.1
Vi hive-site.xml
4.4 hbase的配置文件
4.4.1
Vi hbase-site.xml
添加(zookeeper的集群)
Master
node2
Slave1
4.5 安装mysql
使用yum 安装
安装完成,新建hive数据库,给这个数据库授权,远程登陆,用户名hive密码mysql
5、实现ssh无密码通信,拷贝到其他节点
做完所有操作,把/home/hadoop这个文件夹的所有权变成hadoop用户组(root)
Chown –r Hadoop:Hadoop /home/hadoop
5.1克隆Master虚拟机,一共5台
5.1.1、修改/etc/sysconfig/network-scripts/ifcfg-eth0更改ip地址和mac地址
5.1.2 修改/etc/sysconfig/network文件。
Vi /etc/sysconfig/network
HOSTNAME=Slave1
5.1.3编辑/etc/udev/rules.d/70-persistent-net.rules文件,
把eth0注释(加#)把eth1改成eth0,重新启动网卡服务
Service network restart
5.1.4、修改hadoop用户的描述为Slave1
Usermod –c Slave1 hadoop
重新启动 reboot
记得修改其他节点的zookeeper的myid(node2和Slave1)
5.2 实现节点(以Master和 node2)之间无密码通讯,(hadoop)
5.2.1.在Master上,用hadoop用户,启动无密码操作
Ssh-keygen –t rsa
直接3个回车;去/home/Hadoop/.ssh下查看生成是文件一共两个。
5.2.2.将公钥追加到authorized_keys中。
cat /home/hadoop/.ssh/id_rsa.pub >> /home/hadoop /.ssh/authorized_keys
再次查看.ssh下文件多了一个
5.2.3、修改authorized_keys的权限
Chmod 600 authorized_keys
查看权限ll /home/Hadoop/.ssh
5.2.4、修改配置文件(root)
Vi /etc/ssh/sshd_config
找到authorized_keysFile .ssh/authorized_keys这行,把这行(算这行)往上的3行的注释去掉
重启sshd服务 service sshd restart
5.2.5、两节点之间无密码通信
Scp /home/Hadoop/.ssh/id_rsa.pub Hadoop@node2:~/
由于第一次,没有实现无密码通信,需要是输入node2的密码。
在noe2上,
cat /home/hadoop/id_rsa.pub >> /home/hadoop /.ssh/authorized_keys
同样在node2上进行5.2.1-5.2.5步骤
5.2.6、测试
在Master登陆node2
Ssh node2
登陆成功表示可以,在其他几个节点进行以上操作。
6、启动HA(hadoop)
所有的节点可以实现无密码的自由登陆,
把Master下/home/Hadoop文件复制到其他节点上
Scp –r /home/Hadoop Hadoop@node2:/home/
6.1 启动zookeeper(Master node2,Slave1)
zkServer.sh start
zkServer.sh status
检查zookeeper启动状态,其中一个leader,两个follower
6.2格式或zkfc(Maser)
hdfs zkfc -formatZK
6.3启动zkfc(mastr nnode2)
hadoop-daemon.sh start zkfc
6.4 启动journalnode(node2,Slave1, Slave2, Slave3)
hdfs-daemon.sh journalnode start
6.5 格式化namenode(master)
hdfs namenode -format
6.6 启动namenode(master)
hadoop-daemon.sh start namenode
6.7同步数据(node2)
hdfs namenode –bootstrapStandby
6.8 启动其他的节点
Start-all.sh
7.测试
打开浏览器输入,Master:50020和node2:50020
停掉Master的namenode,
Hadoop-daemon.sh stop namenode
检查node2:50020的standby变成了ative