Hadoop 、Hbase、zookeeper 集群环境搭建



一 、机器
192.168.0.203 hd203: hadoop namenode & hbase HMaster
192.168.0.204 hd204: hadoop datanode & hbase HRegionServer & zookeeper
192.168.0.205 hd205: hadoop datanode & hbase HRegionServer & zookeeper
192.168.0.206 hd206: hadoop datanode & hbase HRegionServer & zookeeper
192.168.0.202 hd202: hadoop second namenode & hbase HMaster
共 5 台机器 (生产环境需要把zookeeper单独安装)

二 、操作系统和软件版本
1 操作系统:CentOS release 5.6 (Final)x64,关闭防火墙
2 相关软件:
jdk-6u24-linux-x64.bin
hadoop-0.20.2-cdh3u0.tar.gz
hbase-0.90.1-cdh3u0.tar.gz
zookeeper-3.3.3-cdh3u0.tar.gz

三、 安装

1、 安装jdk (所有机器)
mkdir /usr/java
mv jdk-6u24-linux-x64.bin /usr/java
chmod 744 jdk-6u24-linux-x64.bin
./jdk-6u24-linux-x64.bin
ln -s jdk1.6.0_24 default

2、 建立集群平台用户 (所有机器)
useradd cbcloud
passwd tbcloud 密码设为 gao666666


3、 编辑/etc/hosts (所有机器) (IP地址变化要修改此文件的这些信息)
10.13.101.203 namenode
10.13.101.205 datanode1
10.13.101.206 datanode2
10.13.101.208 datanode3 
10.13.101.225 datanode4 

4 、 namenode  登录集群所有机器免密码设置 ( namenode )

su - tbcloud

① 生成密钥并配置ssh无密码登陆主机(在master主机)

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa


② 将authorized_keys文件拷贝到两台slave主机

scp  id_dsa.pub  datanode1:~/.ssh/

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys;

chmod 700 ~/.ssh/;

chmod 700 /home/tbcloud/;

chmod 600 ~/.ssh/authorized_keys;

可以将每个机器的 公钥组成一个大文件,在分发每个机器中


③ 检查是否可以从master无密码登陆slave机


ssh 所有机器 第一次需要确认一下

5、 安装hadoop
5.1 建立目录 (所有机器)
mkdir /home/tbcloud/hdtmp
mkdir /home/tbcloud/hddata
mkdir /home/tbcloud/hdconf
chown -R tbcloud:tbcloud
tar zxvf hadoop-0.20.2-cdh3u0.tar.gz -C /home/ tbcloud
cd /home/cbcloud
mv hadoop-0.20.2-cdh3u0 hadoop
chown -R cbcloud:cbcloud hadoop/


5.2 配置环境变量 vi /etc/profile (所有机器)
export JAVA_HOME=/usr/java/default
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
export HADOOP_HOME=/home/tbcloud/hadoop
export HADOOP_CONF_DIR=/home/tbcloud/hdconf
export PATH=$PATH:$HADOOP_HOME/bin

把hadoop的配置文件目录从源目录拿出来,方便以后升级hadoop
mv hadoop的conf目录内文件到/home/cbcloud/hdconf内

mv /home/tbcloud/hadoop/etc/hadoop/*.* /home/tbcloud/hdconf/


5.3 编辑 hadoop 配置文件 core-site.xml
加入
<configuration>
< property>
< name>fs.default.name</name>
< value>hdfs://namenode:9000</value>
< /property>
< property>
<name>fs.checkpoint.dir</name>
<value>/home/tbcloud/hdtmp/dfs/namesecondary</value>
<description>Determines where on the local filesystem the DFS secondary
name node should store the temporary images to merge.
If this is a comma-delimited list of directories then the image is
replicated in all of the directories for redundancy.
</description>
< /property>
< property>
<name>fs.checkpoint.period</name>
<value>60</value>
<description>Determines where on the local filesystem the DFS secondary
name node should store the temporary images to merge.
If this is a comma-delimited list of directories then the image is
replicated in all of the directories for redundancy.
</description>
< /property>

5.4 编辑hdfs-site.xml
加入
<property>
<name>dfs.replication</name>
<value>3</value>
</property>

<property>
<name>dfs.data.dir</name>
<value>/home/tbcloud/hddata</value>
</property>

<property>
<name>hadoop.tmp.dir</name>
<value>/home/tbcloud/hdtmp/</value>
</property>

< property>
<name>dfs.balance.bandwidthPerSec</name>
<value>10485760</value>
< /property>
< property>
<name>dfs.hosts.exclude</name>
<value>/home/tbcloud/hdconf/excludes</value>
<final>true</final>
< /property>

5.5 编辑mapred-site.xml
加入
<property>
<name>mapred.job.tracker</name>
<value>hd203:9001</value>
</property>

5.6 编辑 hadoop-env.sh
export JAVA_HOME=/usr/java/default

5.7 编辑masters 该文件指定 secondary name 机器,
加入
hd202
编辑 slaves
加入
hd204
hd205
hd206

5.8 拷贝namenode的hadoop和hdconf到所有机器
scp -r /home/tbcloud/hdconf/* tbcloud@datanode4:/home/tbcloud/hdconf/

完成后,在hd203 格式化hadoop文件系统 
执行
hadoop namenode -format
启动
start-all.sh 
查看集群内datanode的机器 
执行jps
5764 Jps
18142 DataNode
18290 TaskTracker
看到以上结果 说明启动正确
web方式
http://hd203:50070/dfshealth.jsp 
注意 本地PC hosts文件也要配置
192.168.0.203 hd203
192.168.0.204 hd204
192.168.0.205 hd205
192.168.0.206 hd206
192.168.0.202 hd202
web方式可以查看集群状态和job状态等,至此hadoop安装完毕

6、 安装zookeeper 
tar zxvf zookeeper-3.3.3-cdh3u0.tar.gz -C /home/cbcloud
在datanode1-datanode3上
mkdir /home/tbcloud/zookeeperdata;
chown -R tbcloud:tbcloud /home/tbcloud/zookeeperdata;
chown -R tbcloud:tbcloud /home/tbcloud/zookeeper-3.3.5/;

编辑 /home/cbcloud/zookeeper-3.3.3-cdh3u0/conf/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=/home/tbcloud/zookeeperdata

# the port at which the clients will connect

clientPort=2181

server.1=hd204:2888:3888

server.2=hd205:2888:3888

server.3=hd206:2888:3888




scp hd203的zookeeper到hd204,hd205,hd206
# scp -r /home/tbcloud/zookeeper-3.3.3-cdh3u0/ tbcloud@datanode1:/home/tbcloud/ 
在hd204-206 的/home/cbcloud/zookeeperdata目录touch myid文件,
内容分别为1,2,3 和server编号一致 chown cbcloud:cbcloud myid

启动zookeeper,在hd204-206上bin目录下 执行
# zkServer.sh start
启动后 通过
# zkServer.sh status
查看状态 注意 在centos5.6上 执行这个会报错
Error contacting service. It is probably not running.
通过查看脚本 是因为
echo stat | nc -q 1 localhost
nc版本不同,没有-q的参数,更改脚本去掉-q 1 即可
另外 可以通过
echo stat | nc localhost 2181来查看状态

7 安装hbase
7.1 建立目录 (所有机器)
mkdir /home/tbcloud/hbconf;
chown -R tbcloud:tbcloud /home/tbcloud/hbconf;


tar -zxvf hbase-0.90.1-cdh3u0.tar.gz -C /home/tbcloud;
cd /home/tbcloud;
mv hbase-0.90.1-cdh3u0 hbase;
chown -R tbcloud:tbcloud hbase/;

7.2 配置环境变量 
vi /etc/profile (所有机器) 追加如下内容
export HBASE_CONF_DIR=/home/tbcloud/hbconf
export HBASE_HOME= /home/tbcloud/hbase

把hbase的配置文件目录从源目录拿出来,方便以后升级hbase
mv hbase的conf目录内文件到/home/cbcloud/hbconf内

7.3 编辑 hbase-env.sh
export HBASE_OPTS="$HBASE_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode"
export JAVA_HOME=/usr/java/default
export HBASE_MANAGES_ZK=false
export HBASE_HOME=/home/tbcloud/hbase
export HADOOP_HOME=/home/tbcloud/hadoop

7.4 编辑hbase-site.xml
加入
<property>
<name>hbase.rootdir</name>
<value>hdfs://namenode:9000/hbase</value>
< /property>
< property>
<name>hbase.cluster.distributed</name>
<value>true</value>
< /property>
< property>
< name>hbase.master</name>
< value>namenode:60000</value>
< /property>
<property>
<name>hbase.master.port</name>
<value>60000</value>
<description>The port master should bind to.</description>
</property>

<property>
<name>hbase.zookeeper.quorum</name>
<value>hd204,hd205,hd206</value>
</property>

7.5 编辑regionservers
加入
hd204
hd205
hd206

scp hd203 的hbase到hd204-206,202
# scp -r /home/cbcloud/hbase/ tbcloud@hd204:/home/cbcloud
# scp -r /home/cbcloud/hbconf/ tbcloud@hd204:/home/cbcloud

su - tbcloud
启动hbase
在namenode 上hbase的bin目录执行
$ ./start-hbase.sh
启动hbase的第二个HMaster
在202上执行
$ ./hbase-daemon.sh start master

查看Master:http://hd203:60010/master.jsp 

此时查看datanode 服务器 jps
5764 Jps
32091 HRegionServer
18142 DataNode
11221 QuorumPeerMain 
18290 TaskTracker
以上结果说明启动正常

至此 hadoop+zookeeper+hbase安装完成
启动顺序
1.hadoop
2.zookeeper
3.hbase
4.第二个HMaster

停止顺序
1.第二个HMaster, kill-9删除
2.hbase
3.zookeeper
4.hadoop
注意 一定要按顺序停止,
如果先停zookeeper再停hbase的话,基本停不下来(自己测试结果)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值