一、准备
1.搭建hadoop集群需要1台namenode和n台datanode,本文以1台namenode和2台datanode为例,主机名及地址分别为:
主机名 ip地址
master 192.168.192.222(namenode)#注意:主机名称不要取localhost这个名
s1 192.168.192.223(datanode)
s2 192.168.192.224(datanode)
2.创建一个专门用来运行hadoop的用户账号,比如增加一个名为test、密码为123456的用户,并且hadoop集群中的所有机器都是用同一个用户名,因为Hadoop要求所有机器上hadoop的部署目录结构要相同并且有一个相同的用户名的帐户
3.确保安装并配置好1.6版本的jdk
二、Hadoop的安装与配置
1.Hadoop的安装
1)首先去hadoop官网下载hadoop安装包,比如hadoop-0.20.205.0.tar.gz
2)安装hadoop:
[test@master ~]$ tar -zxvf hadoop-0.20.205.0.tar.gz (创建专门用来运行hadoop的账号目的就在于要将hadoop安装到该用户的目录下)
切换到root权限,将Hadoop文件的拥有者改为hadoop用户和组
[test@master ~]$ su
[root@master test]# chown -R test:testhadoop-x.y.z
将hadoop的安装路径添加到/etc/profile中:
export HADOOP_HOME=/home/test/hadoop-x.y.z
export PATH=$HADOOP_HOME/bin:$PATH
为了让/etc/profile生效,执行[root@master ~]# source /etc/profile
2.hadoop的配置
1)配置/etc/hosts文件(master,s1,s2都要配置)
[test@master ~]$su
[root@master ~]#vim /etc/profile
加入三台机器的ip地址机器名:(如果已经有了的就不用再加了)
192.168.192.222 master
192.168.192.223 s1
192.168.192.224 s2
2)ssh设置及关闭防火墙
(fedora装好后默认启动sshd服务,如果不确定的话可以查一下[root@localhost test]#service sshd status,如果没启动的话,先启动[root@master test]#service sshd start)
建立ssh无密码登陆(在namenode上进行)
[test@master ~]$ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/test/.ssh/id_rsa): .ssh/id_rsa
Enter passphrase (empty for no passphrase): #这里是提示输入口令,也可以无口令,直接回车即可。
Enter same passphrase again:
……
执行完之后,会在~/.ssh/生成两个文件:id_rsa和id_rsa.pub,这两个是成对出现的,一个是私钥一个是公钥。
把公钥id_rsa.pub追加到datanode上的authorized_keys
[test@master ~]$scp id_rsa.pub 192.168.192.223:/home/test/.ssh
在namenode上通过ssh登陆到datanode上
[test@master ~]$ssh 192.168.192.223
输入test账户在192.168.192.223机器上的密码,回车
这时就登陆到了192.168.192.223这台机器上了,通过命令提示符的改变可以看到,[test@s1 ~]$
然后进行追加
[test@s1 ~]$cat id_rsa.pub >> ~/.ssh/authorized_keys
修改datenode上.ssh和authorized_keys的权限
[test@s1 ~]$chmod 755 ~/.ssh
[test@s1 ~]$chmod 755 ~/.ssh/authorized_keys
退出登陆,回到本机
[test@s1 ~]$exit
[test@master ~]$
修改namenode上.ssh和authorized_keys的权限
[test@master ~]$chmod 755 ~/.ssh
[test@master ~]$chmod 755 ~/.ssh/authorized_keys
测试下是否设置成功
[test@master ~]$ssh 192.168.192.223 #回车后发现没有提示输入密码,设置成功
3)修改hadoop-env.sh文件
[test@master ~]$ vim hadoop-0.20.205.0/conf/hadoop-env.sh
将里面的JAVA_HOME改为你所安装的jdk的目录路径,比如 /usr/java/jdk1.6.0_29
4)配置conf里的core-site.xml, hdfs-site.xml, mapred-site.xml文件
[test@master ~]$ vimhadoop-x.y.z/conf/core-site.xml
[test@master ~]$ vimhadoop-x.y.z/conf/mapred-site.xml
[test@master ~]$ vimhadoop-x.y.z/conf/hdfs-site.xml
5)配置conf/masters和conf/slaves(删除里面已经存在的localhost)
masters文件里加入namenode的ip,如192.168.192.222
slaves文件里加入datanode的ip,如192.168.192.223,192.168.192.224(每行一个)
6)将namenode上完整的hadoop文件夹scp到datanode上相同的位置
[test@master ~]$ scp–r hadoop-0.20.205.0 192.168.192.223:/home/test/
[test@master ~]$ scp–r hadoop-0.20.205.0 192.168.192.224:/home/test/
三、zookeeper的安装和配置
1.zookeeper的安装
将zookeeper安装包解压到hadoop目录下
[test@master ~]$ cd hadoop-0.20.205.0
[test@masterhadoop-0.20.205.0]$ tar–zxvf zookeeper-3.3.4.tar.gz
2.zookeeper的配置
1)创建zoo.cfg文件
[test@master ~]$ cd hadoop-0.20.205.0/zookeeper-3.3.4/conf
[test@masterconf]$ cpzoo_sample.cfgzoo.cfg
修改zoo.cfg文件,zoo.cfg文件的完整内容如下:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/root/install/hadoop-0.20.2/zookeeper/zookeeper-data #(新增加)
dataLogDir=/root/install/hadoop-0.20.2/zookeeper/logs #(新增加)
# the port at which the clients will connect
clientPort=2181
server.1=m201:2888:3888 #(新增加)
server.2=s202:2888:3888 #(新增加)
server.3=s203:2888:3888 #(新增加)
在文件中写入 #(新增加)的项目
2)创建zookeeper-data目录
[test@masterconf]$ cd ..
[test@master zookeeper-3.3.4]$ mkdir zookeeper-data
3)创建myid文件
[test@masterzookeeper-3.3.4]$ cd zookeeper-data
[test@master zookeeper-data]$ vimmyid
myid文件中的内空写1,然后保存退出
4)将namenode上完整的hadoop文件夹scp到datanode上相同的位置
[test@master hadoop-0.20.205.0]$ scp–r zookeeper-3.3.4 192.168.192.223:/home/test/hadoop-0.20.205.0
[test@masterhadoop-0.20.205.0]$ scp–r zookeeper-3.3.4 192.168.192.224:/home/test/hadoop-0.20.205.0
5)进入s1主机,将myid文件内容改为2
进入s2主机,将myid文件内容改为3
四、hbase的安装和配置
1.zookeeper的安装
将hbase安装包解压到hadoop目录下
[test@master ~]$ cd hadoop-0.20.205.0
[test@masterhadoop-0.20.205.0]$ tar–zxvfhbase-0.90.4.tar.gz
2.hbase的配置
1)配置/etc/profile文件(s1,s2也要配置),加入
export HBASE_HOME=/root/install/hadoop-0.20.2/hbase
export PATH=$PATH:$HBASE_HOME/bin
最后/etc/profile文件的配置如图:
为使其生效 [root@master ~]# source /etc/profile
2)修改hbase-site.xml文件
3)修改hbase-env.sh文件
4)复制zookeeper的zoo.cfg文件到/root/install/hadoop-0.20.2/conf目录中
[test@master ~]$ cd hadoop-0.20.205.0/zookeeper-3.3.4/conf/
[test@master ~]$ cpzoo.cfg ~/hadoop-0.20.205.0/conf/
5)修改hbase-0.90.4/conf/regionservers文件,完整内容为:
192.168.192.223
192.168.192.224
6)将hadoop的hadoop-0.20.205.0-core.jar文复制到hbase的lib目录下,删除原来的hadoop-core-0.20-append-r10597.jar文件
7)将namenode上完整的hbase文件夹scp到datanode上相同的位置
[test@master hadoop-0.20.205.0]$ scp–r hbase-0.90.4 192.168.192.223:/home/test/hadoop-0.20.205.0
[test@master hadoop-0.20.205.0]$ scp–r hbase-0.90.4 192.168.192.224:/home/test/hadoop-0.20.205.0
五、服务启动
至此,所有需要安装和配置的都已经完成,接下来就要启动服务,测试配置是否成功。
启动关闭服务的顺序:启动hadoop->启动hbase->关闭hbase->关闭hadoop
1)格式化文件系统
[test@master ~]$ cd hadoop-0.20.205.0
[test@masterhadoop-0.20.205.0]$ hadoopnamenode-format
2)启动hadoop
[test@master hadoop-0.20.205.0]$ bin/start-all.sh
3)用jps命令查看进程,NameNode上的结果如下:
25325 NameNode
25550 JobTracker
28210 Jps
25478 SecondaryNameNode
4)查看集群状态
[test@master hadoop-0.20.205.0]$ hadoopdfsadmin -report
确保运行的DataNode个数是正确的,我的是2个,这样可以查看哪个DataNode没有运行
还可以用web查看http://192.168.192.222:50070/dfshealth.jsp
5)启动hbase
[test@master hadoop-0.20.205.0]$ cd hbase-0.90.4
[test@master hbase-0.90.4]$ bin/start-hbase.sh
用web查看http://192.168.192.222:60010/master.jsp
6)关闭hbase
[test@master hbase-0.90.4]$ bin/stop-hbase.sh
7)关闭hadoop
[test@master hadoop-0.20.205.0]$ bin/stop-all.sh下载本文