mac 搭建hadoop伪分布式

公司因为业务需求使用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. 参考链接
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值