一 准备工作
1、修改/etc/hosts配置文件,内容如下:
127.0.0.1 localhost
10.5.83.191 master
10.5.83.192 hbase1
10.5.83.190 hbase2
2、修改主机名
修改/etc/hostname的内容分别为master、hbase1、hbase2
3、配置java环境
本集群使用的是jdk1.7.0_67
a)、将jdk解压到/home/ld/Lee/目录下
b)、在/etc/profile中添加一下内容
export JAVA_HOME=/home/ld/Lee/jdk1.7.0_67
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
注:修改了profile和hosts、hostname的内容后都要使用source命令使之生效
例如: source /etc/profile
4.配置三台机器无密码ssh登陆
a)以master为例,在master上执行如下操作:
$ ssh-keygen -t dsa -P '' -f~/.ssh/id_dsa
直接回车,完成后会在~/.ssh/生成两个文件:id_dsa 和id_dsa.pub。这两个是成对出现,类似钥匙和锁。再把id_dsa.pub 追加到授权key 里面(当前并没有authorized_keys文件):
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
完成后可以实现无密码登录本机:
$ ssh localhost
把master上的id_dsa.pub文件追加到hbase1和hbase2的authorized_keys 内(以hbase1节点为例):
拷贝master的id_dsa.pub文件:(必须在.ssh目录下拷贝才会成功)
$ cd ~/.ssh
$ scp id_dsa.pub hbase1:/home/ld
b)登录hbase1,进入/home/ld目录执行:
$ cat id_dsa.pub >>.ssh/authorized_keys
之后可以在master上不输入密码直接访问hbase1 ,同样方式配置无密码登录hbase2。
同样方法配置hbase1、 hbase2的对其他机器无密码登录。
二 Hadoop集群安装
1.下载Hadoop安装文件,这次安装用的是2.6.0版(hadoop-2.6.0.tar.gz)
解压hadoop到/home/ld/Lee/目录下
tar -zxvf hadoop-2.6.0.tar.gz -C /home/ld/Lee
2.修改/home/ld/Lee/hadoop-2.6.0/etc/hadoop/hadoop-env.sh文件的环境变量:
主要是添加java路径
export JAVA_HOME=/home/ld/Lee/jdk1.7.0_67
3.修改/home/ld/Lee/etc/hadoop/core-site.xml配置文件,在configuration中添加内容如下:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/ld/hadoop_tmp</value>
<description>A base for other temporary directories.
</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>(加黑部分为主节点名字)
</property>
</configuration>
4.修改/home/ld/Lee/hadoop-2.6.0/etc/hadoop/hdfs-site.xml配置文件,在configuration中添加内容如下:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.name.dir</name>
<value>${hadoop.tmp.dir}/dfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/ld/hadoop/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value> (备份数目)
</property>
</configuration>
5.修改/home/ld/Lee/hadoop-2.6.0/etc/hadoop/下的master和slaves文件
master文件写入
master
slaves文件写入
hbase1
hbase2
6.修改/etc/profile配置文件,在末尾追加以下内容
export JAVA_HOME=/home/ld/Lee/jdk1.7.0_67
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH
7.将/home/ld/Lee/hadoop-2.6.0拷贝到hbase1和hbase2对应的目录下。将/ect/profile和/etc/hosts也拷贝到hbase1和hbase2机器上。
$ scp -r hadoop-2.6.0 hbase1:/home/ld/Lee/
$ scp -r hadoop-2.6.0 hbase2:/home/ld/Lee/
8.配置结束后,在bin文件夹下格式化hdfs
./hadoop namenode –format
9. 配置hadoop路径
a)在/etc/profile中添加以下语句
export HADOOP_HOME=/home/ld/Lee/hadoop-2.6.0
export PATH=$HADOOP_HOME/bin:$PATH
b)然后启动hdfs,
start-all.sh
c) 用jps命令查看是否成功启动所有进程。
Master:
Hbase1or2:
三 安装HBase
本次安装用的HBase的版本为0.98.11-hadoop2-bin.tar.gz(hbase至少0.96以上的版本否则与hadoop2.6不兼容),下载后解压缩到/home/ld/Lee目录下并改名为hbase
1、修改hbase/conf目录下hbase-site.xml配置文件,在configuration里添加
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>(主节点名字)
<description>HBase数据存储目录</description>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
<description>指定HBase运行的模式:false:单机/伪分布;true:完全分布</description>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,hbase2,hbase3</value>
<description>指定ZooKeeper集群</description>
</property>
<property>
<name>hbase.master</name>
<value>hdfs://master:60000</value>
<description>指定Master位置</description>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/ld/zookeeper_data</value>
</property>
<property>
<name>hbase.master.info.bindAddress</name>
<value>master</value>(主节点名字)
<description>The bind address for theHBase Master web UI
</description>
</property>
2、修改hbase-env.sh文件,加入:
export JAVA_HOME=/home/ld/Lee/jdk1.7.0_67
export HBASE_CLASSPATH=/home/ld/Lee/hadoop-2.6.0/etc/hadoop
export HBASE_HEAPSIZE=2048
export HBASE_MANAGES_ZK=false
其中,JAVA_HOME表示java安装目录,HBASE_CLASSPATH指向存放有Hadoop配置文件的目录,这样HBase可以找到HDFS的配置信息,由于本文Hadoop和HBase部署在相同的物理节点,所以就指向了Hadoop安装路径下的conf目录。HBASE_HEAPSIZE单位为MB,可以根据需要和实际剩余内存设置,默认为1000。HBASE_MANAGES_ZK=false指示HBase使用已有的Zookeeper而不是自带的。
3、编辑regionservers文件
master
hbase1
hbase2
4、配置另外两台
将hbase安装文件拷贝到另两台机器:
$ scp –r /home/ld/Lee/hbase hbase1:/home/ld/Lee/
$ scp -r /home/ld/Lee/hbase hbase2: /home/ld/Lee/
然后登陆hbase1和hbase2的/home/ld/Lee/下,用ls命令查看即可看到对应的文件。
5、配置hbase路径
在/etc/profile中添加下述语句
export HBASE_HOME=/home/ld/Lee/hbase
export PATH=$HBASE_HOME/bin:$PATH
四 配置zookeeper
本次安装的是zookeeper-3.4.6,将其解压到/home/ld/Lee/目录下
1、将zookeeper-3.4.6/conf目录下的zoo_Sample.cfg文件改名为zoo.cfg
2、修改zoo.cfg配置
dataDir=/home/ld/Lee/zookeeper-3.4.6/zookeepdir/zookeeper-data
dataLogDir=/home/ld/Lee/zookeeper-3.4.6/zookeepdir/logs
server.1=master:2888:3888
server.2=hbase1:2888:3888
server.3=hbase2.2888:3888
3、创建dataDir参数指定的目录,并在目录下创建文件,命名为myid
a) zookeeper-3.4.6下建立zookeepdir
b) zookeepdir下建立zookeeper-data与logs
c) 在zookeeper-data执行下述命令
touch myid
d) 编辑myid的内容为1
4、将zookeeper-3.4.6复制到hbase1与hbase2相应的目录下(命令同复制hadoop),并分别将myid内容改为2和3(只要三台机的myid内容不一样即可)
5、配置zookeeper路径
在/etc/profile中添加下述内容
export ZOOKEEPER_HOME=/home/ld/Lee/zookeeper-3.4.6
export PATH=$ZOOKEEPER_HOME/bin:$PATH
五 启动集群
启动顺序为hdfs>zookeeper>hbase
hdfs 启动:start-all.sh (可以通过http://master:50070查看各节点状态)
zookeeper 启动:zkServer.sh start
hbase 启动:start-hbase.sh(可以通过http://192.168.52.128:60010/master-status查看状态)
启动后使用jps命令查看状态
master:
hbase1or2