由于自己搭建 所以 没有 cloudera manager 快 但是 cloudera manager 架起来 对一两个 机器 负担 还是 有点 大 管理类和监控类工具过多 导致 使用内存 量 很大
废话不多说了直接开始
我的是64位 所以纠结了一阵
Centos6.4 x86-64 安装就不说了
两台机器
192.168.1.117 hadoop.first
192.168.1.118 hadoop.second
需要无密码直接登陆 配置 这配置 网上有很多 但是我只配置出来 root的 无密码登陆
JDK 需要 1.6.0_45 64位
hadoop-1.2.1-bin.tar.gz 下载下来 http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-1.2.1/
{优快云:CODE: # tar zxvf hadoop-1.2.1-bin.tar.gz }
hbase-0.95.2-hadoop1-bin.tar.gz http://mirror.esocc.com/apache/hbase/hbase-0.95.2/
{优快云:CODE: # tar zxvf hbase-0.95.2-hadoop1-bin.tar.gz }
配置文件
# vi /etc/profile
#JDK
JAVA_HOME=/tarfile/jdk1.6.0_45
JRE_HOME=/tarfile/jdk1.6.0_45/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
#HADOOP
export HADOOP_DEV_HOME=/tarfile/hadoop-1.2.1
export PATH=$PATH:$HADOOP_DEV_HOME/bin
#HBASE
export HBASE_HOME=/tarfile/hbase-0.95.2-hadoop1
export PATH=$PATH:$HBASE_HOME/bin
zookeeper 用的是Hbase 自带的
下面是hadoop 配置
core-site.xml
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop/hdtemp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop.first:8250/</value>
</property>
hadoop tmp 目录 修改了 如果不改 重启centos 数据就没有了
namenode 端口号 8250 在hadoop.first 这台机器上
hadoop-env.sh
这个文件 需要
export JAVA_HOME=/tarfile/jdk1.6.0_45
导入之后 就在这个目录下的 jdk 上 启动 hadoop
hdfs-site.xml
hdfs 文件系统文件配置
<property>
<name>dfs.name.dir</name>
<value>/hadoop/temp/dfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/hadoop/temp/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.datanode.max.xcievers</name>
<value>4096</value>
</property>
dfs.name.dir
存放namenode 的数据元文件
dfs.data.dir
存放HDFS 数据文件
dfs.replication
有几台分布式机器
dfs.datanode.max.xcievers
datanode所允许同时执行的发送和接受任务的数量,此项可以导致内存不足
mapred-site.xml
JobTracker 的配置
<property>
<name>mapred.job.tracker</name>
<value>hadoop.first:49001</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/hadoop/mapred</value>
</property>
mapred.job.tracker
JobTracker 服务的机器和端口 使用的是hadoop.first 主机 端口 49001
mapred.local.dir
存储 MapReduce 中间数据
下面 是配置 主机和 副机的两个配置文件
masters master机 192.168.1.117
slaves datanode机
192.168.1.117
192.168.1.118
# vi /etc/hosts
192.168.1.117 hadoop.first
192.168.1.118 hadoop.second
这里添加上 hadoop两个机器的 地址
hadoop 配置完成
# cd /tarfile/hadoop1.2.1/bin
进入 hadoop bin 目录
执行
# service iptables stop
# ./start-all.sh
没有修改 防火墙 所以每次 重启 完 centos 都要关闭一下
hadoop 启动了
# jps
jps 一下
192.168.1.117 主机
2882 NameNode
3302 TaskTracker
17536 Jps
2987 DataNode
3104 SecondaryNameNode
3186 JobTracker
192.168.1.118 副机
2836 DataNode
11900 Jps
2910 TaskTracker
服务启动了
192.167.1.117:50030 Master 界面
192.167.1.117:50070 NameNode 界面
hadoop dfsadmin -report 看下 有没有报错
一般也就是防火墙 没有关闭 副机 服务起不起来
Hbase 配置
hbase etc/profile 已经在 前面就配置了 现在就直接进入 conf 吧
hbase-env.sh
导入jdk路径
export JAVA_HOME=/tarfile/jdk1.6.0_45
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop.first:8250/hbase/data</value>
<description>The directory shared byRegionServers.
</description>
</property>
<property>
<name>hbase.master</name>
<value>hadoop.first:60000</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
<description>The mode the clusterwill be in. Possible values are
false: standalone and pseudo-distributedsetups with managed Zookeeper
true: fully-distributed with unmanagedZookeeper Quorum (see hbase-env.sh)
</description>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2222</value>
<description>Property fromZooKeeper's config zoo.cfg.
The port at which the clients willconnect.
</description>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop.first,hadoop.second</value>
<description>Comma separated listof servers in the ZooKeeper Quorum.
For example,"host1.mydomain.com,host2.mydomain.com,host3.mydomain.com".
By default this is set to localhost forlocal and pseudo-distributed modes
of operation. For a fully-distributedsetup, this should be set to a full
list of ZooKeeper quorum servers. IfHBASE_MANAGES_ZK is set in hbase-env.sh
this is the list of servers which we willstart/stop ZooKeeper on.
</description>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/hadoop/zookeeper</value>
<description>Property fromZooKeeper's config zoo.cfg.
The directory where the snapshot isstored.
</description>
</property>
hbase.rootdir
hbase 的数据存储地方 存在了192.168.1.117 上 /hbase/data 下面
hbase.master
Hmaster 的启动 端口 和机器 192.168.1.117:60000
hbase.cluster.distributed
这个为true 是 用hbase 自带的 zookeeper false 需要自己安装 zookeeper
hbase.zookeeper.property.clientPort
zookeeper 的 客户端 连接时的 端口
hbase.zookeeper.quorum
启动zookeeper 的机器 我配置的是 192.168.1.117 和 192.168.1.118
hbase.zookeeper.property.dataDir
ZooKeeper保存数据的目录
regionservers 配置此文件
hadoop.first
hadoop.second
hbase 配置完成 两台机器配置 需要一致
hbase 可能有点兼容问题
log 日志 工具 jar 包冲突 但是 不影响 运行
为了 能让 hadoop 和hbase 兼容
把hadoop下 hadoop-core-1.2.1.jar 放到 hbase 的lib 下 并修改 原来的 hadoop-core-1.1.2.jar 为 hadoop-core-1.1.2.jar.backup
其他问题还木有 遇到
然后进入 bin 目录
# ./start-hbase.sh
3302 TaskTracker
7911 HMaster
2987 DataNode
8065 HRegionServer
18641 Jps
3104 SecondaryNameNode
3186 JobTracker
7851 HQuorumPeer
2836 DataNode
4389 HQuorumPeer
11900 Jps
2910 TaskTracker
注意事项
Hbase 的hbase.rootdir 路径 hdfs://hadoop.first:8250/hbase/data
Hadoop 的 fs.default.name 路径 hdfs://hadoop.first:8250/
这两个 配置项 路径可以不一样 但是 端口 必须一样 要不然 Hmaster 启动起来 过一会 就自动 结束了
为了同步 副机的文件 有个快捷方法
scp -r 路径/文件 192.168.1.118:/目标路径