FreeBSD下hadoop环境搭建

Table of Contents

hadoop相关的文档比较详细,基本上照做即可。但是因为是FreeBSD下使用,所以一些细节需要注意。另外,因为仅单机使用,作为开发测试环境,所以设置都是伪分布式的。

hadoop

FreeBSD有hadoop2.7.2的package。所以安装很简单。

sudo pkg install hadoop2

使用参考hadoop2.7.3Setting up a Single Node Cluster即可。其中需要注意的点:

  1. 配置文件目录在/usr/local/etc/hadoop

    /usr/local/etc/hadoop/core-site.xml内容:

    <configuration>
     <property>
         <name>fs.defaultFS</name>
         <value>hdfs://localhost:9000</value>
     </property>
    </configuration>
    

    如果不想hadoop将目录创建在/tmp下,可以添加:

    <property>
       <name>hadoop.tmp.dir</name>
         <value>/your/target/hadoop/directory</value>
    </property>
    

    /usr/local/etc/hadoop/hdfs-site.xml内容:

    <configuration>
     <property>
         <name>dfs.replication</name>
         <value>1</value>
     </property>
    </configuration>
    

    另外,还有一个配置文件文档中没有提到:/usr/local/etc/hadoop/slaves,内容为命令"hostname"的输出(注意/etc/hosts里要有该hostname的配置)。

    若没有该配置文件slaves,则后面执行"start-dfs.sh"的时候不成功,没有datanode进程。启动过程中会有log提示:

    cat: /usr/local/etc/hadoop/slaves: No such file or directory
    
  2. 权限

    文档中提到需要可以无密码ssh到localhost,而后面提到的start-dfs.sh需要root执行(记得好像是要在/var下写log之类),所以实际是需要root可以ssh登录localhost。将/etc/ssh/sshdconfig中的“PermitRootLogin no”修改为“PermitRootLogin yes”,执行:

    sudo service sshd onestart
    sudo hdfs namenode -format
    sudo start-dfs.sh
    

    注意也要用sudo执行jps查看进程。有三个进程“NameNode“, ”SecondaryNameNode“, ”DataNode“表示成功。

    因为前面是用root执行的命令,所以文档中提到的创建目录需要修改如下:

    sudo hdfs dfs -mkdir /user
    sudo hdfs dfs -mkdir /user/<username>
    sudo hdfs dfs -chown -R <username> /user/<username>
    

    这样后面的hadoop job命令就可以用帐户来执行了。参照文档,稍作修改,即可执行hadoop job了。

hbase

然而FreeBSD下没有hbase package,而ports里的hbase已经broken。没关系,直接去官网下载即可。我下载的是hbase-1.2.4-bin.tar.gz。

tar zxf hbase-1.2.4-bin.tar.gz
sudo mv hbase-1.2.4 /usr/local
echo "set path = ($path /usr/local/hbase-1.2.4/bin)" >> ~/.tcshrc
source ~/.tcshrc

别忘记还要设置JAVAHOME和CLASSPATH。配置参考官网文档[[http😕/hbase.apache.org/book.html#quickstart]]。

配置文件所在目录,当然是/usr/local/hbase-1.2.4/conf了。按照文档配置好hbase-site.xml, standlone模式直接用普通用户执行start-hbase.sh即可。用jps可以查看到HMaster。可以参照文档执行hbase shell,或者参考https://github.com/hexingb/hadoopdemo

Pseudo Distributed模式类似,只需要注意文档目录权限和hdfs端口即可。

posted @ 2016-11-14 21:52  Hexing B  阅读(788)  评论(0编辑  收藏  举报