Mac下面配置hadoop 3.1.1

Java 版本 1.8.0_18

mac os 10.13.6

hadoop 版本: 3.1.1

安装Java

首先要确定mac上是否安装了Java环境, 在命令行输入下面的语句就可以验证并得到Java的版本。

java -version

如果没有安装好Java环境,网上有很多安装Java的教程,大家可以去查阅。

安装hadoop

在mac上brew很方便的对软件进行安装和卸载。

brew install hadoop

然后使用下面的命令,如果出现hadoop的版本信息则表示安装成功。

hadoop version

配置ssh环境

在terminal里面输入: ssh localhost

如果有错误提示信息,表示当前用户没有权限。这个多半是系统为安全考虑,默认设置的。

更改设置如下:进入system preference --> sharing --> 勾选remote login,并设置allow access for all users。

再次输入“ssh localhost",再输入密码并确认之后,可以看到ssh成功。

如果不执行这一步,后面启动hadoop时会出现Connection refused的错误。

配置hadoop

从命令行进入/usr/local/Cellar/hadoop/3.1.1/libexec/etc/hadoop,然后修改下面的文件。

1、修改core-site.xml

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

  <!--用来指定hadoop运行时产生文件的存放目录  自己创建-->
  <property>
    <name>hadoop.tmp.dir</name>
    <value>file:/usr/local/Cellar/hadoop/tmp</value>
  </property>
</configuration>

2、修改hdfs-site.xml,配置namenode和datanode

<configuration>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
        <!--不是root用户也可以写文件到hdfs-->
        <property>
                <name>dfs.permissions</name>
                <value>false</value>    <!--关闭防火墙-->
        </property>
        <!--把路径换成本地的name坐在位置-->
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/usr/local/Cellar/hadoop/tmp/dfs/name</value>
        </property>
        <!--在本地新建一个存放hadoop数据的文件夹,然后将路径在这里配置一下-->
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/usr/local/Cellar/hadoop/tmp/dfs/data</value>
        </property>
</configuration>

3、修改 mapred-site.xml.

<configuration>
  <property>
    <!--指定mapreduce运行在yarn上-->
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
  <property>
     <name>mapred.job.tracker</name>
     <value>localhost:9010</value>
  </property>
  <!-- 新添加 -->
  <!-- 下面的路径就是你hadoop distribution directory -->
  <property>
     <name>yarn.app.mapreduce.am.env</name>
     <value>HADOOP_MAPRED_HOME=/usr/local/Cellar/hadoop/3.1.1/libexec</value>
  </property>
  <property>
     <name>mapreduce.map.env</name>
     <value>HADOOP_MAPRED_HOME=/usr/local/Cellar/hadoop/3.1.1/libexec</value>
  </property>
  <property>
     <name>mapreduce.reduce.env</name>
     <value>HADOOP_MAPRED_HOME=/usr/local/Cellar/hadoop/3.1.1/libexec</value>
</property>

</configuration>

然后输入hdfs namenode -format 格式化namenode节点,看到下面的结果就说明成功了。

4、修改yarn-site.xml

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
<property>
    <name>yarn.resourcemanager.address</name>
    <value>localhost:9000</value>
  </property> 

启动hadoop 

在sbin/目录下输入./start-dfs.sh启动hdfs服务。然后,在浏览器中输入http://localhost:9870/,出现以下界面就说明成功了。特别要注意的是这里不是http://localhost:50070。输入./stop-dfs.sh就可以停止服务。

启动yarn服务

在sbin目录下输入./start-yarn.sh, 然后在浏览器中打开http://localhost:8088/就会出现下图的界面。用./stop-yarn.sh可以停止服务。

 

至此,配置就成功了。配置时有个警告,WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable,但是不会影响搭建。还没有在上面运行例子,还不知道会不会有问题。

后面在上面运行了workcount的例子,可以正常运行!!但是需要在mapred-site.xml里面添加几个<property></property>, 代码里面已经备注了新添加。否则mapreduce的时候会出错误。

如果yarn-site.xml没有配置好,在后面使用hive执行mapreduce sql任务就有可能会出现下面的错误:

ACCEPTED: waiting for AM container to be allocated, launched and register with RM.状态

在yarn-site.xml加入下面一段代码可能会解决问题。记得要重启yarn,不然修改可能不会生效。 

<property>
  <name>yarn.scheduler.capacity.maximum-am-resource-percent</name>
  <value>100</value>
</property>

参考连接:https://www.jianshu.com/p/34521593f30e

                  https://www.swift.red/2018/05/10/machadoop3.1.0/

                  https://stackoverflow.com/questions/34467308/mapreduce-job-hangs-waiting-for-am-container-to-be-allocated

                  https://blog.csdn.net/a1833255/article/details/81158435

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 21
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值