美文网首页
Mac Homebrew 安装 Hadoop

Mac Homebrew 安装 Hadoop

作者: Taeyeon37 | 来源:发表于2019-01-04 21:48 被阅读0次

    一、安装 Java 和 Hadoop

    brew install Java
    brew install Hadoop

    java -version 和 hadoop version 来查看安装版本及测试正常(PS:Java 和 Hadoop 的环境变量无需变动)

    二、配置SSH(免密登录)

    因为安装hadoop需要远程登入的功能,所以需要安装ssh工具,但Mac下自带ssh,所以不需要安装ssh。
    首先在系统里打开远程登录,位置在 System Preferences -> Sharing 中,左边勾选 Remote Login ,右边选择 Only there users,并添加当前用户。
    方法一:打开Terminal输入 ssh localhost,输入 yes 然后输入密码确认后,看到 Last login: 字样为ssh成功。
    方法二:

    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa # 生成公钥和私钥
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 将公钥追加到文件
    chmod 0600 ~/.ssh/authorized_keys # 修改相关权限

    ssh localhost用来测试

    三、修改配置文件

    /usr/local/Cellar/hadoop/3.1.1/libexec/etc/hadoop 主要都在这个目录下

    1. hadoop-env.sh
      PS:亲测无需修改 JAVA_HOME 和 HADOOP_HOME等变量(有如有问题可以修改测试,直接设置 JAVA_HOME 的路径,不要用$JAVA_HOME 代替,因为 Hadoop 对系统变量的支持不是很好)。
      查看Java安装路径:

    /usr/libexec/java_home

    vim hadoop-env.sh

    找到 # export JAVA_HOME= ,改参数如下:

    export JAVA_HOME={your java home directory}

    把 {your java home directory} 改成你上面查到的 Java 路径,记得去掉注释 # 。比如 export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home 。

    同理修改下面两个参数:

    export HADOOP_HOME=/usr/local/Cellar/hadoop/3.1.1/libexec

    根目录应该不是 /usr/local/Cellar/hadoop/3.1.1 ,可通过 hadoop version 来测试

    export HADOOP_CONF_DIR=/usr/local/Cellar/hadoop/3.1.1/libexec/etc/hadoop

    1. core-site.xml
      设置 Hadoop 的临时目录和文件系统,localhost:9000 表示本地主机。如果使用远程主机,要用相应的 IP 地址来代替,填写远程主机的域名,则需要到 /etc/hosts 文件去做 DNS 映射。

    <configuration>

    <property>
    <name>hadoop.tmp.dir</name>
    <value>/data/hadoop/tmp</value> #可自行修改
    </property>
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
    </property>
    </configuration>

    fs.default.name 保存了NameNode的位置,HDFS和MapReduce组件都需要用到它,这就是它出现在core-site.xml 文件中而不是 hdfs-site.xml文件中的原因,在该处配置HDFS的地址和端口号。

    1. hdfs-site.xml
      注意 name 和 data 的路径都要替换成本地的路径:

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

    <property>
    <name>dfs.permissions</name>
    <value>false</value>
    </property>

    <property>
    <name>dfs.namenode.name.dir</name>
    <value>/data/hadoop/name</value> #可自行修改
    </property>

    <property>
    <name>dfs.datanode.data.dir</name>
    <value>/data/hadoop/data</value> #可自行修改
    </property>
    </configuration>

    变量dfs.replication指定了每个HDFS默认备份方式通常为3, 由于我们只有一台主机和一个伪分布式模式的DataNode,将此值修改为1。

    1. mapred-site.xml
      将 yarn 设置成数据处理框架:

    <configuration>

    <property>

    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    </configuration>

    1. yarn-site.xml
      配置数据的处理框架 yarn:

    <configuration>
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>
    <property>
    <name>yarn.resourcemanager.address</name>
    <value>localhost:9000</value>
    </property>
    <property>
    <name>yarn.nodemanager.env-whitelist</name>
    <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
    </configuration>

    四、运行

    接下来用到的命令,如 hadoop、hdfs、start-all.sh、stop-all.sh 等,都已经配置到环境变量里了,所以直接使用即可。(查看位置:切换到 /usr/local/Cellar/hadoop/3.1.1//usr/local/Cellar/hadoop/3.1.1/libexec/,执行根目录下 bin 或 sbin 下的文件时,实际上执行的是 libexec/bin或 libexec/sbin 下的文件,查看脚本内容即可发现)。
    1.格式化文档系统:hadoop namenode -formathdfs namenode -format
    2.启动 NameNode 和 DataNode:

    start-dfs.sh

    现在可以看到 Overview 界面了,NameNode 和 DataNode - http://localhost:9870
    PS:Hadoop3.0中namenode的默认端口配置发生变化:从50070改为9870
    3.启动 ResourceManager 和 NodeManager:

    start-yarn.sh

    现在可以看到 All Applications 界面:
    ResourceManager – http://localhost:8088
    NodeManager – http://localhost:8042

    在 Terminal执行jps测试。

    直接执行 start-all.sh 等同于同时执行 start-dfs.sh 和 start-yarn.sh。退出时执行 stop-all.sh,或者:stop-yarn.sh 和 stop-dfs.sh。

    五、WARN(可忽略)

    在log中会显示警告 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable的提醒,是关于 Hadoop 本地库的, Hadoop本地库是为了提高效率或者某些不能用Java实现的功能组件库。

    六、基本操作

    Hadoop 的安装启动就完成啦!接下来就可以通过一些 shell 命令来操作 Hadoop 下的文件了,例如:

    hadoop fs -ls /        #查看根目录下的文件及文件夹
    hadoop fs -mkdir -p /data #在根目录下创建一个文件夹data(这个路径是虚拟的,随便填写,并不会在本机看到,可通过页面你控制台中 Utilities -> browse the file system 查看) PS: 2.x之后的版本命令需要加参数 -p
    hdfs dfs -put /root/data /data #上传本地目录文件到hadoop目录
    hdfs dfs -copyFromLocal /root/data/person.txt /data #copy本地文件到hadoop目录
    hadoop fs -rm /.../... #移除某个文件
    hadoop fs -rm -r /... #及联删除文件夹

    七、常见错误

    1.datanode没启动
    建议直接把文件name 和 data下的文件删了,然后重启hadoop。查看链接:https://blog.csdn.net/ludonqin/article/details/51396187

    参考链接:
    Mac 安装 Hadoop 3.x
    【干货】简单三步在Mac上安装Hadoop
    Mac OS X 上搭建 Hadoop 开发环境指南
    Mac下使用homebrew安装Hadoop-3.1.1记录
    【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题

    相关文章

      网友评论

          本文标题:Mac Homebrew 安装 Hadoop

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