Ubuntu下搭建Hadoop+Hbase平台


一、环境及目标:

- 系统: Ubuntu 12.10

- Hadoop版本:1.0.4

- Hbase 版本:0.94.8(hindex secondaryindex)

- 节点配置 (完全分布式集群)                          静态IP

Master (job tracker) 

192.168.0.200

namenode

Slave (task tracker/data node)

192.168.0.201

Datanode1

Slave (task tracker/data node)

192.168.0.202

Datanode2

- 用户: hadoop

 

1.1 创建hadoop用户组;

    $ sudo addgroup hadoop  记下这里为 hadoop 用户设置的密码,后面使用 hadoop 用户登录时需要用到。

1.2. 创建hadoop用户;

    $ sudo adduser -ingroup hadoop hadoop  

1.3. 给hadoop用户添加权限,打开/etc/sudoers文件;

    $ sudo gedit /etc/sudoers 

1.4. 给hadoop用户赋予root用户同样的权限。

在root  ALL=(ALL:ALL)  ALL下添加如下内容:

 hadoop ALL=(ALL:ALL)  ALL    

 

二、在Ubuntu下安装JDK

2.1 配置环境变量

$ sudo gedit /etc/profile

在文件的末尾加上如下内容,保存并关闭文件

# for java

export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_45

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:$PATH

使设置生效:到此部JDK的配置就都完成了

$ source /etc/profile

为保证正确性,进行简单的测试

$ java -version

2.2 修改默认JDK

       sudoupdate-alternatives --install /usr/bin/java java /usr/lib/jvm/ jdk1.6.0_45/bin/java  300

    sudo update-alternatives --install/usr/bin/javac javac /usr/lib/jvm/ jdk1.6.0_45/bin/javac 300 

    sudo update-alternatives --install/usr/bin/jar jar  /usr/lib/jvm/jdk1.6.0_45/bin/jar  300 

以下两句可选(最好执行):

sudo update-alternatives --config java 

sudo update-alternatives --config javac  

 

2.3 修改机器名

每当ubuntu安装成功时机器名都默认为:ubuntu ,但为了以后集群中能够容易分辨各台服务器,需要给每台机器取个不同的名字。机器名由 /etc/hostname文件决定。

1. 打开/etc/hostname文件;

      $  sudo gedit /etc/hostname  

2. 将/etc/hostname文件中的ubuntu改为对应机器,如主节点中,修改为"namenode"。 重启生效。

3.修改/etc/hosts文件

    $  sudo gedit /etc/hosts

并且将每台机器的IP设置为固定IP:

 

三、安装ssh服务

ubuntu一般只是默认安装了 ssh-agent, 可以用如下命令查看:

$ sudo ps -ef | grep ssh  

如果只有 ssh-agent 就需要安装openssh-server了。

$ sudo apt-get install ssh openssh-server 

 

3.1 建立ssh无密码登录本机

首先要转换成hadoop用户,执行以下命令:

    $ sudo su - hadoop  

 

ssh生成密钥有rsa和dsa两种生成方式,默认情况下采用rsa方式。

1. 创建ssh-key,,这里我们采用rsa方式;

   $ ssh-keygen -t rsa -P ""  

注意:ssh-kengen是用连字符连着的,千万不要分开。

(注:回车后会在~/.ssh/下生成两个文件:id_rsa和id_rsa.pub这两个文件是成对出现的)

2.  创建授权文件authorized_keys

     进入~/.ssh/目录下,发现开始是没有authorized_keys文件的,可以使用以下两种方法:

  (1) 将id_rsa.pub追加到authorized_keys授权文件中;

      $ cd ~/.ssh  

    $ cat id_rsa.pub >> authorized_keys 

  (2) 复制 id_rsa.pub 为 authorized_keys

     $ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys  

3. 登录localhost;

     $ ssh localhost  

4. 执行退出命令(exit或CTRL+D);  

权限要求:hadoop目录 755.ssh目录700authorized_key文件600

 

四、安装hadoop

 解压后修改hadoop/conf/下几个文件:

hadoop-env.sh

         增加:exportJAVA_HOME=/usr/lib/jvm/jdk1.6.0_45

 

core-site.xml

<property>

              <name>fs.default.name</name>

              <value>hdfs://namenode:9000</value>

       </property>

       <property>

              <name>hadoop.tmp.dir</name>

              <value>/home/hadoop/tmp</value>

       </property>

 

mapred-site.xml

         <property>

              <name>mapred.job.tracker</name>

              <value>hdfs://namenode:9001</value>

       </property>

hdfs-site.xml

      <property>

              <name>dfs.replication</name>

              <value>3</value>

       </property>

       <property>

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

              <value>/home/hadoop/tmp/data</value>

       </property>

 

masters :添加作为secondarynamenode的主机名

slaves:添加作为slave的主机名,一行一个

 

运行hadoop

1. 进入hadoop目录下,格式化hdfs文件系统,初次运行hadoop时一定要有该操作, 

   $ cd /usr/local/hadoop/  

   $ bin/hadoop namenode -format  

2. 启动bin/start-all.sh

进入bin目录下, $ ./start-all.sh        关闭:同目录下./stop-all.sh

3. 检测hadoop是否启动成功

    $jps  

4. Web查看

http://localhost:50070/ – web UI of theNameNodedaemon 

http://localhost:50030/ – web UI of theJobTrackerdaemon 

http://localhost:50060/ – web UI of theTaskTrackerdaemon  

 

 

五、安装Hbase

需要将hadoop/lib下文件全部复制到hbase/lib目录下。

解压后修改hbase/conf/下几个文件:

hbase-env.sh

export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_45/

exportHBASE_CLASSPATH=/home/hadoop/hadoop-1.0.4/conf:/home/hadoop/hbase-0.94.8/libs

export HBASE_PID_DIR=/home/hadoop/tmp/hbase/pids

export HBASE_OPTS="-ea -XX:+UseConcMarkSweepGC-XX:+CMSIncrementalMode"

export HBASE_MANAGES_ZK=true              //true为使用Hbase自带ZK,false为使用独立ZK

 

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>hdfs://namenode:60000</value>

       </property>

       <property>

              <name>hbase.tmp.dir</name>

              <value>/home/hadoop/tmp/data</value>

       </property>

       <property>

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

              <value>namenode,datanode1,datanode2</value>

       </property>

       <property>

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

              <value>${hbase.tmp.dir}/zookeeper</value>

       </property>

 

<!-----------------------以下配置为使用二级索引--------------------------!>

       <property>

              <name>hbase.use.secondary.index</name>

              <value>true</value>

       </property>

       <property>

       <name>hbase.coprocessor.master.classes</name>

       <value>org.apache.hadoop.hbase.index.coprocessor.master.IndexMasterObserver</value>

       </property>

       <property>

              <name>hbase.coprocessor.region.classes</name>

       <value>org.apache.hadoop.hbase.index.coprocessor.regionserver.IndexRegionObserver</value>

       </property>

       <property>

              <name>hbase.coprocessor.wal.classes</name>

              <value>org.apache.hadoop.hbase.index.coprocessor.wal.IndexWALObserver</value>

       </property>

 

regionservers: 添加作为RS的主机名,一行一个(实验环境namenode没有添加)

datanode1

datanode2

 

1. 启动bin/start-hbase.sh

2.进入shell:bin/hbase shell

 

六、注意事项

6.1权限问题:

    .ssh目录权限:700

    authorized_key:600

    /home/hadoop:755

 

6.2 格式化HDFS

在bin/hadoop namenode -format 前必须将各节点tmp文件清空!

 

6.3 source问题

如果每次都需要source profile:

直接在.bashrc文件中加入source /etc/profile 这行语句

 

6.4 替换Jar包

    -将hbase/lib下的hadoop-core 删除,替换为hadoop目录下的core版本

    -将hadoop/lib下所有jar包复制到hbase/lib下

    -将hbase/lib下所有jar包复制到hadoop/lib下

-将hadoop/lib、hbase/lib、hadoop-core、hbase-0.94.8.jar全部加入Eclipse的Build Path中。

 

6.5 Kettle出现 unable to connect Hbase Host port:?,无法链接Hadoop与Hbase的问题

将hadoop/lib,hbase/lib下的jar包,放入/data-integration/plugins/pentaho-big-data-plugin/hadoop-configurations/hadoop-20/lib/client  目录下 ,并且替换对应的hadoop-core.jar包。

 

七、文件配置

/etc/hosts

127.0.0.1  localhost

 

192.168.0.200 namenode

192.168.0.201 datanode1

192.168.0.202 datanode2

 

 

/etc/profile

 

# for hadoop

export HADOOP_HOME=/home/hadoop/hadoop-1.0.4

export HBASE_HOME=/home/hadoop/hbase-0.94.8

 

# for java

export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_45

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

exportPATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:${HADOOP_HOME}/bin:${HBASE_HOME}/bin: $PATH:

 

 

/etc/sudoers

# User privilege specification

root   ALL=(ALL:ALL) ALL

hadoop ALL=(ALL:ALL) ALL

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值