部署先决条件
1. SSH相互访问
在集群中的所有机器上,用root用户登录,修改/etc/hosts,加入集群中机器的ip和机器名,保证各机器间用机器名ping通。
修改/etc/hosts的示例如下:
192.168.18.62 DC-001
192.168.18.63 DC-002
192.168.18.64 DC-003
接下来设置ssh
会在~/.ssh/ 中生成两个文件id_ rsa.pub和id_ rsa
cat ~/.ssh/id_ rsa.pub >> ~/.ssh/authorized_keys
然后将authorized_keys复制到所有机器的~/.ssh目录下,主机就可以在所有机器中ssh免密码登陆了
2. JDK1.6以上
安装java
#root> chmod 755 jdk-1_5_0_07-linux-i586-rpm.bin
#root> ./ jdk-1_5_0_07-linux-i586-rpm.bin
#root> rpm -ivh jdk-1_5_0_07-linux-i586.rpm
配置profile
vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.6.0_37
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
3. ntp时钟同步(可选)
修改ntp.conf配置文件
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 1.cn.pool.ntp.org
server 1.asia.pool.ntp.org
server 0.asia.pool.ntp.org
用本机器与互联网时钟同步,即作为集群中其他机器的ntp服务器
同理,在其他机器中修改ntp.conf配置文件
server ntpserver
4. 防火墙关闭(可导致无法启动datanode)
chkconfig iptables off(重启生效)
hadoop安装
tar -zvxf hadoop-1.0.3.tar.gz -C HadoopInstall
hadoop配置
基本配置
<--hadoop-env.sh-->
export JAVA_HOME=/usr --设置JAVA_HOME
export HBASE_HOME=/opt/hbase
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HBASE_HOME/hbase-0.94.1.jar:$HBASE_HOME/hbase-0.94.1-test.jar:$HBASE_HOME/conf:${HBASE_HOME}/lib/zookeeper-3.4.3.jar
--设置Hbase路径
<--core-site.xml-->
<property>
<name>fs.default.name</name>
<value>hdfs://DC-001:9000</value>
</property>
---Name Node的URI
<--hdfs-site.xml-->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
----dfs复制的份数。
<property>
<name>dfs.datanode.max.xcievers</name>
<value>2047</value>
</property>
---该参数限制了datanode所允许同时执行的发送和接受任务的数量,缺省为256
<--mapred-site.xml-->
<property>
<name>mapred.job.tracker</name>
<value>DC-001:9001</value>
</property>
--job tracker交互端口
在一台机器配置好后,将hadoop文件拷贝到所有机器中,最好在所有的机器有相同的目录结构。
优化配置
<--hadoop-env.sh-->
Export HADOOP_LOG_DIR=/var/log/hadoop --文件默认存放在$HADOOP_HOME/logs中,改变目录会使升级比较方便
<--masters-->
DC-001 ---(namenode)
<--slaves-->
DC-002 ---(datanode)
DC-003 ---(datanode)
hadoop启动
格式化namenode
在hadoop/bin/下面有很多启动脚本,可以根据自己的需要来启动:
* start-all.sh 启动所有的Hadoop守护。包括namenode, datanode, jobtracker, tasktrack
* stop-all.sh 停止所有的Hadoop。
* start-mapred.sh 启动Map/Reduce守护。包括Jobtracker和Tasktrack。
* stop-mapred.sh 停止Map/Reduce守护
* start-dfs.sh 启动Hadoop DFS守护.Namenode和Datanode
* stop-dfs.sh 停止DFS守护
简单测试
在HDFS建立目录: hadoop dfs -mkdir testdir
复制文件到HDFS:hadoop dfs -put /home/hadoop/large.zip testfile.zip
查看HDFS的现有文件: bin/hadoop dfs –ls /
hbase安装部署
部署先决条件
安装hadoop
hbase安装
解压源码压缩包
tar –zvxf hbase-0.94.1.tar.gz
hbase配置
基本配置
<--hbase-env.sh-->
#The java implementation to use. Java 1.6 required.
export JAVA_HOME=/usr
# Extra Java CLASSPATH elements. Optional.
export HBASE_CLASSPATH=/opt/hadoop/hadoop-1.0.3/conf
# Tell HBase whether it should manage it's own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=true
<--hbase-site.xml-->
<name>hbase.rootdir</name>
<value>hdfs://DC-001:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
--是否为分布式集群
<property>
<name>hbase.master</name>
<value>DC-001:60000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>DC-001,DC-002,DC-003</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/hbase/zookeeper</value>
</property>
<--regionservers-->
DC-002 --hregionserver
DC-003 --hregionserver
在一台机器配置好后,将hbase文件拷贝到所有机器中,最好在所有的机器有相同的目录结构。
优化配置
hbase启动
{HBASE_HOME}/bin/start-hbase.sh
简单测试
[root@DC-001 conf]# hbase shell
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.94.1, r1365210, Tue Jul 24 18:40:10 UTC 2012
hbase(main):001:0> list
TABLE
domain
ip2all
rdns
rdomain
se2se
5 row(s) in 0.8890 seconds
附录:
Hadoop推荐配置
hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
<final>true</final>
</property>
<property>
<name>dfs.name.dir</name>
<value>/home/hdfs/name</value>
<final>true</final>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hdfs/data</value>
<final>true</final>
</property>
<property>
<name>fs.checkpoint.period</name>
<value>300</value>
</property>
<property>
<name>fs.checkpoint.size</name>
<value>67108864</value>
</property>
<property>
<name>fs.checkpoint.dir</name>
<value>/home/hdfs/namesecondary</value>
<final>true</final>
</property>
<property>
<name>dfs.http.address</name>
<value>DC-001:50070</value>
<final>true</final>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>DC-002:50090</value>
<final>true</final>
</property>
</configuration>
mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>DC-003:9001</value>
<final>true</final>
</property>
<property>
<name>mapred.local.dir</name>
<value>/home/hdfs/mapred/local</value>
<final>true</final>
</property>
<property>
<name>mapred.system.dir</name>
<value>/home/hdfs/mapred/system</value>
<final>true</final>
</property>
<property>
<name>mapred.tasktracker.map.tasks.maximum</name>
<value>7</value>
<final>true</final>
</property>
<property>
<name>mapred.tasktracker.reduce.tasks.maximum</name>
<value>7</value>
<final>true</final>
<property>
<name>mapred.child.java.opts</name>
<value>-Xmx400m</value>
</property>
</property>
</configuration>