美文网首页我爱编程@IT·互联网
Mac OS X上搭建伪分布式CDH版本Hadoop开发环境

Mac OS X上搭建伪分布式CDH版本Hadoop开发环境

作者: Edward_Koios | 来源:发表于2016-07-19 11:34 被阅读0次

    最近在研究数据挖掘相关的东西,在本地 Mac 环境搭建了一套伪分布式的 hadoop 开发环境,采用CDH发行版本,省时省心。

    参考来源 How-to: Install CDH on Mac OSX 10.9 Mavericks

    官网这篇文章有的地方格式不对,部分链接也失效,运行时还会有一些问题,所以这里重新记录如下。


    安装 JDK 

    JDK 1.8 下载地址

    安装完成后路径应该是 

    /Library/Java/JavaVirtualMachines/jdk1.8.x_xx.jdk/Contents/Home 

    其中 x_xx 应该是你下载的对应版本号。

    在命令行中执行 

    export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.x_xx.jdk/Contents/Home"


    本地 SSH 登录

    打开 系统分享 设置

    勾选 Remote Login 复选框。

    打开命令行,执行以下命令:

    ssh-keygen -t rsa -P ""

    一路回车,直到结束。如果你有 ssh 登录的经验,这里可以用你自己的公钥私钥配置登录。

    最后执行 

    ssh localhost

    如果没有报错,则配置成功。


    下载 CDH Hadoop 压缩包

    CDH5下载地址

    查找下面四个文件并下载到本地

    hadoop-2.6.0-cdh5.7.1.tar.gz   

    hbase-1.2.0-cdh5.7.1.tar.gz   

    hive-1.1.0-cdh5.7.1.tar.gz     

    zookeeper-3.4.5-cdh5.7.1.tar.gz


    建立 CDH 环境

    打开命令行,执行以下命令

    mkdir -p ~/cloudera/lib ~/cloudera/cdh5.7 ~/cloudera/ops/dn ~/cloudera/ops/logs/hadoop ~/cloudera/ops/logs/hbase ~/cloudera/ops/logs/yarn ~/cloudera/nn ~/cloudera/pids ~/cloudera/tmp ~/cloudera/zk

    将上一步下载的四个压缩包拷贝到 ~/cloudera/lib 目录,并打开命令行执行以下命令

    tar -xvf hadoop-2.6.0-cdh5.7.1.tar.gz

    tar -xvf hbase-1.2.0-cdh5.7.1.tar.gz

    tar -xvf hive-1.1.0-cdh5.7.1.tar.gz

    tar -xvf zookeeper-3.4.5-cdh5.7.1.tar.gz

    命令行中 cd ~/cloudera/cdh5.7 ,并执行以下命令

    ln -s ~/cloudera/lib/hadoop-2.6.0-cdh5.7.1 hadoop

    ln -s ~/cloudera/lib/hbase-1.2.0-cdh5.7.1 hbase 

    ln -s ~/cloudera/lib/hive-1.1.0-cdh5.7.1 hive

    ln -s ~/cloudera/lib/zookeeper-3.4.5-cdh5.7.1 zookeeper

    最后你的 ~/cloudera 目录结构应该如下


    编辑配置文件

    ~/.profile

    CDH="cdh5.1"

    export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.x_xx.jdk/Contents/Home"

    export HADOOP_HOME="/Users/你的用户名/cloudera/${CDH}/hadoop"

    export HBASE_HOME="/Users/你的用户名/cloudera/${CDH}/hbase"

    export HIVE_HOME="/Users/你的用户名/cloudera/${CDH}/hive"

    export HCAT_HOME="/Users/你的用户名/cloudera/${CDH}/hive/hcatalog"

    export PATH=${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:${ZK_HOME}/bin:${HBASE_HOME}/bin:${HIVE_HOME}/bin:${HCAT_HOME}/bin:${PATH}

    按照 github 上的文件内容编辑下面一系列文件

    $HADOOP_HOME/etc/hadoop/core-site.xml

    $HADOOP_HOME/etc/hadoop/hdfs-site.xml

    $HADOOP_HOME/etc/hadoop/yarn-site.xml

    $HADOOP_HOME/etc/hadoop/mapred-site.xml

    $HADOOP_HOME/etc/hadoop/hadoop-env.sh (indicated properties only)

    $HBASE_HOME/conf/hbase-site.xml

    $HBASE_HOME/conf/hbase-env.sh


    开始运行

    命令行中执行命令

    hdfs namenode -format

    编辑文件 $HADOOP_HOME/libexec/hadoop-config.sh,查找 # Attempt to set JAVA_HOME if it is not set 到这一行,把下面的四行代码中

    if [ -x /usr/libexec/java_home ]; then

            export JAVA_HOME=($(/usr/libexec/java_home))

    else

            export JAVA_HOME=(/Library/Java/Home)

    fi

    多余的两对括号去除,变成下面这样

    if [ -x /usr/libexec/java_home ]; then

            export JAVA_HOME=$(/usr/libexec/java_home)

    else

            export JAVA_HOME=/Library/Java/Home

    fi

    这两对括号会导致取值不正确,最后 yarn 中会只用硬编码的 JAVA_HOME=/bin/ 来寻找 java 命令的位置,导致所有的任务都会执行失败。

    启动服务

    sh $HADOOP_HOME/sbin/start-dfs.sh

    sh $HADOOP_HOME/sbin/start-yarn.sh

    sh $HBASE_HOME/bin/start-hbase.sh

    停止服务

    sh $HADOOP_HOME/sbin/stop-dfs.sh

    sh $HADOOP_HOME/sbin/stop-yarn.sh

    sh $HBASE_HOME/bin/stop-hbase.sh

    服务管理地址

    HDFS: http://localhost:50070/dfshealth.html

    Yarn Scheduler: http://localhost:8088/cluster

    Yarn NodeManager: http://localhost:8042/node

    HBase: http://localhost:60010/master.jsp

    测试 MR 任务

    hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.7.1.jar pi 100 100

    相关文章

      网友评论

        本文标题:Mac OS X上搭建伪分布式CDH版本Hadoop开发环境

        本文链接:https://www.haomeiwen.com/subject/ojgpjttx.html