您的位置:首页 > 运维架构

Hadoop+Hbase安装配置实录

2013-01-22 17:43 375 查看
生产环境:

3台机器:master(192.168.0.61),slave1(192.168.0.62),slave2(192.168.0.63) 

注意:hostname设置为master/slave1/slave2

操作系统:rhel5.4 x86_64

master做为namenonde,将slave1和slave2做为datanode

1.在master:(在slave1和slave2上操作和以下相同) 

vi /etc/hosts 

192.168.0.61 master 

192.168.0.62 slave1 

192.168.0.63 slave2

2.用root操作

3.免密码登录

#ssh-keygen -t rsa #建立ssh目录,敲回车到底 ,这一步需要先在每台机器上执行。

在master上

#scp ~/.ssh/id_rsa.pub 将master上的密钥传到slave1的/home/hadoop下

在slave1上 

#cat /root/.ssh/id_rsa.pub_m >> ~/.ssh/authorized_keys

#chmod 644 ~/.ssh/authorized_keys

反复操作第3步,完成master<-->slave1 master<-->slave2的免密码登录

这样主节点和从节点之间就可以不用密码直接ssh访问,另外,在启动hadoop时需要master ssh master,

因此,在master的~/.ssh下,也执行下cat id_rsa.pub >> authorized_keys即可。

4.安装JDK到/usr/local下命名为jdk6 

然后: 

编辑三台机器的/etc/profile,增加如下内容 

export JAVA_HOME=/usr/local/jdk6

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export HADOOP_HOME=/hadoop/hadoop

export HBASE_HOME=/hadoop/hbase

PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HBASE_HOME/bin

#vi /root/.bashrc

增加

export HADOOP_CONF_DIR=/hadoop/hadoop-config

export HBASE_CONF_DIR=/hadoop/hbase-config

5、防火墙

   各机器加入iptables策略:

#iptables -I INPUT -s 192.168.0.0/255.255.255.0 -j ACCPET

#service iptables save

----------------------------------------- 

hadoop配置:

1.下载安装

#cd /hadoop 

#wget http://labs.renren.com/apache-mirror//hadoop/core/hadoop-0.20.2/hadoop-0.20.2.tar.gz

#tar -zxvf hadoop-0.20.2.tar.gz

#ln -s hadoop-0.20.2 hadoop

    由于上述目录中hadoop的配置文件和hadoop的安装目录是放在一起的,这样一旦日后升级hadoop版本的时候所有的配置文件都会被覆盖,因 此将配置文件与安装目录分离,一

种比较好的方法就是建立一个存放配置文件的目录,/hadoop/hadoop-config/,然后将 /hadoop/hadoop/conf/目录中的core-site.xml,slaves,hadoop-env.sh,masters, hdfs-

site.xml,mapred-site.xml,这6个文件拷贝到 /hadoop/hadoop-config/目录中,并指定环境变量$HADOOP_CONF_DIR指向该目录。环境变量在/root/.bashrc 中设定。

#mkdir /hadoop/hadoop-config

#cd /hadoop/hadoop/conf/

#cp core-site.xml slaves hadoop-env.sh masters hdfs-site.xml mapred-site.xml /hadoop/hadoop-config/

2.修改6个文件 

masters: 

master

slaves: 

slave1 

slave2

#切忌不要创建:/hadoop/hadoop/tmp

hadoop-env.sh:

export JAVA_HOME=/usr/local/jdk6 

export HADOOP_PID_DIR=/hadoop/hadoop/tmp

core-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>fs.default.name</name>

   <value>hdfs://master:54310</value> 

</property>

</configuration>

#切忌不要创建:/hadoop/hadoop/name

#mkdir /hadoop/hadoop/data

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.name.dir</name>

<value>/hadoop/hadoop/name/</value> #hadoop的name目录路径     

</property>

<property>

<name>dfs.data.dir</name>

<value>/hadoop/hadoop/data/</value> #hadoop的data目录路径

</property>

<property>

   <name>dfs.replication</name>

   <value>3</value>     #指定 HDFS 中每个 Block 被复制的次数,起数据冗余备份的作用。在典型的生产系统中,这个数常常设置为3

</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>hdfs://master:54311/</value>

</property>

</configuration>

3、格式化namenode

#cd /hadoop/hadoop/bin

#./hadoop namenode -format

#cd /hadoop

#scp -r ./* 

#scp -r ./* 

到slave1和slave2上,分别重做软链接

#cd /hadoop

#rm -rf hadoop

#ln -s hadoop-0.20.2 hadoop

4、启动所有hadoop守护进程

# ./start-all.sh

说明:

在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守护

[root@master bin]# jps

6813 NameNode

7278 Jps

7164 JobTracker

7047 SecondaryNameNode

出现4个这样的进程,且datanode没有error,同时访问ui正常才算成功。

ui:http://masterip:50070 --web UI for HDFS name node(s) 

    http://masterip:50030 --web UI for MapReduce job tracker(s)

    http://slaveip:50060   --web UI for task tracker(s)

5、hdfs简单测试

#cd /hadoop/hadoop/bin

#./hadoop dfs -mkdir testdir

#./hadoop dfs -put /root/install.log testdir/install.log-dfs

将/root/install.log 存储到hdfs中的testdir中,重命名为install.log-dfs

#./hadoop dfs -ls

#./hadoop dfs -ls testdir

----------------------------------

1、hbase安装部署

#cd /hadoop

#wget http://apache.etoak.com//hbase/hbase-0.20.6/hbase-0.20.6.tar.gz

#tar -zxvf hbase-0.20.6.tar.gz 

#ln -s hbase-0.20.6 hbase

#mkdir hbase-config

#cd /hadoop/hbase/conf/

#cp hbase-env.sh hbase-site.xml regionservers /hadoop/hbase-config/

2、配置文件修改

#mkdir /hadoop/hbase/tmp

#vim /hadoop/hbase-config/hbase-env.sh

增加

export JAVA_HOME=/usr/local/jdk6

export HBASE_MANAGES_ZK=true

export HBASE_PID_DIR=/hadoop/hbase/tmp

#vim hbase-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

<property>

    <name>hbase.rootdir</name>

    <value>hdfs://master:54310/hbase</value> 注意主机名和端口号要与hadoop的dfs name的对应

</property>

<property>

    <name>hbase.cluster.distributed</name>

    <value>true</value>

</property>

<property>

    <name>hbase.zookeeper.quorum</name>

    <value>master</value>

</property>

<property>

    <name>zookeeper.session.timeout</name>

    <value>60000</value>

</property>

<property>

    <name>hbase.zookeeper.property.clientPort</name>

    <value>2222</value>

</property>

</configuration>

配置hbase服务器名称

#vi regionservers

slave1

slave2

3、复制hbase文件

在master上

#cd /hadoop

#scp -r hbase-0.20.6 hbase-0.20.6.tar.gz hbase-config 

#scp -r hbase-0.20.6 hbase-0.20.6.tar.gz hbase-config 

在slave1和slave2上,分别重做软链接

#cd /hadoop

#ln -s hbase-0.20.6 hbase

4、测试

在master上启动

#cd /hadoop/hbase/bin

#./hbase shell

HBase Shell; enter 'help<RETURN>' for list of supported commands.

Version: 0.20.6, r965666, Mon Jul 19 16:54:48 PDT 2010

hbase(main):001:0> create 'test','data'

0 row(s) in 1.1920 seconds

hbase(main):002:0> list

test                                                                                                          

1 row(s) in 0.0200 seconds

hbase(main):003:0> quit

----------------------------------------------

总结:

在安装hadoop-0.21.0+hbase-0.20.6过程中,出现:org.apache.hadoop.hbase.masternotrunningexception异常。

使用hadoop-0.20.2+hbase-0.20.6问题解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: