hadoop+hbase完全分布式

一 。完全安装hadoop集群在伪分布式基础上修改几个配置文件即可,

现在假定安装两台机器的集群,一台master,一台slaves

1.修改两台机器的/etc/hosts文件

在文件中添加机器的hostname和IP,用以通讯。Master需要知道所有的slave的信息。对应的slave只需要知道Master和自身的信息即可。

#vim /etc/hosts

在后面添加:

masterIP  masterHostname

slavesIP  slavesHostname

2.Hadoop核心代码需要配置conf文件夹里面的core-site.xml,hdfs-site.xml,mapread-site.xml,mapred-site.xml,hadoop-env.sh这几个文件。具体各个配置的含义请参考Hadoop帮助文档

    2.1.首先编辑各个机器节点(包括master和slave)的core-site.xml文件,命令如下:(Hadoop 文件夹放在home下)       

        #vim  HADOOP_HOME/conf/core.xml        core-site.xml文件配置,应如下面代码所示:<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://masterHostname:9000</value>#此处要用nasterHostname,不然在启动hive的时候会出错
    </property>
</configuration>

2.2 其次编辑各个机器节点(包括master和slave)的hdfs-site.xml,命令如下:

vim HADOOP_HOME/conf/hdfs-site.xml<configuration>
    <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>
<property>

2.3再次,编辑各个机器节点(包括master和slave)mapred-site.xml文件,命令如下:

vim HADOOP_HOME/conf/mapred-site.xml<configuration>
    <property>
        <name>mapred.job.tracker</name>
                <value>masterHostname:9001</value>
        </property>
        <property>
                <name>mapred.tasktracker.map.tasks.maximum</name>
                <value>3</value>
        </property>
        <property>
                <name>mapred.tasktracker.reduce.tasks.maximum</name>
                <value>1</value>
        </property>
        <property>
                <name>mapred.map.child.java.opts</name>
                <value>-Xmx200m</value>
        </property>
</configuration>2.4最后,编辑各个机器节点(包括master和slave) hadoop-env.sh文件,命令如下:

vim HADOOP_HOME/conf/hadoop-env.sh在文件中加入:

export JAVA_HOME=/usr/lib/jvm/java-6-sun

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HBASE_HOME/lib/zookeeper-3.3.3- cdh3u2.jar:$HBASE_HOME/hbase-0.90.4-cdh3u2.jar:$HADOOP_HOME/hadoop- hbase-streaming.jar3.配置集群的主从关系。在所有机器节点上,Hadoop的conf文件夹中,都有slaves和masters 两个文件。往masters中添加 Master(master)的IP地址或者hostname。往slaves文件中添加Slaves的IP或hostname。所有节点都需 要修改。

4.配置集群内机器的ssh连接,也基本和伪分布式一样,只不过此处要把master上生成的公钥拷贝到slave机器上,把它也写入slave机器上的authorized_keys文件即可。

到此分布式hadoop集群配置完成。接着就可以启动集群了。只要在master机器上输入命令

HADOOP_HOME/bin/hadoop namenode -formatHADOOP_HOME/bin/start-all.sh
二。hbase集群安装

1.编辑所有机器上的hbase-site文件,

vim HBASE_HOME/conf/hbase-site.xml其中首先需要注意hdfs://master:9000/hbase这里,必须与 hadoop集群中的core-site.xml文件配置保存一致,再者hbase该项不识别机器IP,只能用机器的 hostname,<property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
        </property>
        <property>
                <name>hbase.rootdir</name>
                <value>hdfs://master:9000/hbase</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>
    <property>
        <name>hbse.master</name>
        <value>master:6000</value>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>master</value>#此处必须是奇数个
    </property>

2.hbase-env.sh配置跟伪分布式的一样

3. 编辑所有机器,修改HBASE_NAME/conf 文件夹下的regionservers文
件。添加slaves的IP即可。

行文至此,HBase集群的配置已然完成。以下便是启动和测试。

4.启动.测试HBase数据库。

     在master启动HBase数据库(Hadoop集群必须已经启动)。 启动命令:
HBASE_HOME/bin/start-hbase.sh

猜你喜欢

转载自cp1985chenpeng.iteye.com/blog/1328541