设为首页 加入收藏

TOP

mac 搭建hadoop伪分布式
2019-04-24 00:41:25 】 浏览:43
Tags:mac 搭建 hadoop 分布式
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/maxmao1024/article/details/78848679

公司因为业务需求使用Hbase存储和分析数据。在mac上搭建hadoop伪分布式,记录过程如下。

准备工作:
- 安装brew
- 安装java开发环境

1. 安装

brew install hadoop 
hadoop version  # 查看安装版本, 目前默认安装版本是 3.0.0

2. 配置

  • 进入配置目录

    cd /usr/local/Cellar/hadoop/3.0.0/libexec/etc/hadoop # hadoop 配置目录

  • hadoop-env.sh

    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home
    – 指定JAVA 环境变量 (查看java路径: /usr/libexec/java_home)

  • core-site.sh

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
        <property>
        <name>hadoop.tmp.dir</name>
        <value>/Users/max/tmp/hadoop</value> ## 自定义文件夹
    </property>
</configuration>
  • hdfs-site
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration> 

3. 配置ssh

sudo scutil --set HostName localhost # 设置HostName
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist #启动sshd服务
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys #如果没有公私钥对需要先生成: ssh-keygen -t rsa -P ""
ssh localhost #显示:Last login: xxx, 配置成功

4. 启动hadoop

cd /usr/local/Cellar/hadoop/3.0.0/libexec
hdfs namenode -format  # 格式化文件系统

start-all.sh (= start-dfs.sh + start-yarn.sh) # 启动
jps # 查看hadoop的运行情况, 看到如下信息
    2611 Jps
    1107 DataNode
    1027 NameNode
    1331 ResourceManager
    1219 SecondaryNameNode
    1415 NodeManager

访问 http://localhost:9870 测试是否正常

stop-all.sh (= stop-dfs.sh + stop-yarn.sh) # 停止

更多关于Hadoop、MapReduce、YARN和Spark的区别与联系,可以参考链接
http://blog.csdn.net/leijie0322/article/details/44343887

5. 使用

hdfs dfs -mkdir input # 创建输入目录
hdfs dfs -put etc/hadoop/*.xml input # 复制文件进入输入目录
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0.jar grep input output 'dfs[a-z.]+' # 运行 map-reduce 例子
hdfs dfs -cat output/* # 查看输出结果

6. 遇到的问题

  • namenode 格式化后, datanode/namenode 启动不了

    • 原因:
      系统启动后会默认读取linux根目录下的tmp/hadoop-hadoop/下的文件。
      如果系统没有重启,这个目录不会被系统清理掉,保存了namenode和datanode相关信息。
      这样下次启动hadoop时(不论是重新格式化hdfs文件系统,还是其他操作),hadoop还是会读取hadoop.tmp.dir配置路径下的文件作为namenode、datanode的配置信息。
      重新格式化时,namenode会重新生成,但保存配置信息不会重新生成。
      导致两个cluster-ID冲突,启动失败。

    • 解决方法:

      • 方法1:在core-site.xml,hdfs-site.xml文件中,设置namenode和datanode配置文件的位置, 配置方法见参考链接2。
      • 方法2:系统开机后,只执行一次format操作。(如果不小心format了,则可以先删除配置文件夹,然后在执行format等启动hadoop操作)

7. 参考链接

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Hadoop进阶之路(4)——Java接口.. 下一篇什么是Hadoop?

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目