MAC下搭建Hadoop运行环境

Hadoop环境的搭建和配置还是有些麻烦的,尤其是mac,此处整理下自己搭建的过程和步骤。

作者:studytime
原文:https://www.studytime.xin/
 

安装 Java

Hadoop运行环境基于Java、所以Java环境是必须的。至于怎么安装JDK、自行谷歌,各位小哥,此处不做赘述。

配置ssh

开启mac远程登录功能,且将当前用户加入允许的用户列表中

避免使用hadoop命令时,多次输入密码

ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

# 验证ssh 
ssh localhost

###

下载Hadoop源码

本文以 hadoop-2.7.3为例,下载 hadoop-2.7.0.tar.gz 即可。下载完成后,解压到本地合适的目录下。

# 新建目录,存放安装的hadoop应用
mkdir Users/baihe/App

# 新建目录,存放应用的数据文件
mkdir Users/baihe/Data/

tar -zxvf hadoop-2.7.3.tar.gz -C /Users/baihe/App

添加 Hadoop 环境变量

vim ~/.bash_profile

# hadoop
export HADOOP_HOME=/Users/baihe/App/hadoop-2.7.3
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

退出编辑模式,使用 :wq 保存修改,然后运行 source 命令使文件中的修改立即生效:

source ~/.bash_profile

查看Hadoop版本号:hadoop version

修改Haoop配置文件

需要修改的 Hadoop 配置文件都在/Users/baihe/App/hadoop-2.7.3/etc/hadoop/下,包括:

hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml

下面开始进行配置:

cd /Users/baihe/App/hadoop-2.7.3/etc/hadoop

修改 hadoop-env.sh 文件

设置 JAVA_HOME 的路径

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home

修改 core-site.xml 文件

默认情况下,Hadoop 将数据保存在/tmp 下,当重启系统时,/tmp 中的内容将被自动清空, 所以我们需要制定自己的一个 Hadoop 的目录,用来存放数据。另外需要配置 Hadoop 所使用的默认文件系统,以及 Namenode 进程所在的主机。

<property>
     <name>fs.defaultFS</name>
     <value>hdfs://localhost:9000</value>
</property>
<!--用来指定hadoop运行时产生文件的存放目录  自己创建-->
<property>
     name>hadoop.tmp.dir</name>
     <value>file://Users/baihe/Data/hadoop/tmp</value>
</property>
<property>
     <name>fs.trash.interval</name>
     <value>1440</value>
</property>

配置文件系统 hdfs-site.xml

该文件指定与 HDFS 相关的配置信息。需要修改 HDFS 默认的块的副本属性,因为 HDFS 默认 情况下每个数据块保存 3 个副本,而在伪分布式模式下运行时,由于只有一个数据节点,所 以需要将副本个数改为 1;否则 Hadoop 程序会报错。

vim hdfs-site.xml

修改配置文件

<property>
     <name>dfs.replication</name>
     <value>1</value>
</property>
<!--不是root用户也可以写文件到hdfs-->
<property>
     <name>dfs.permissions</name>
     <value>false</value>    <!--关闭防火墙-->
</property>
<!-- name node 存放 name table 的目录 -->
<property>
     <name>dfs.namenode.name.dir</name>
     <value>file:/Users/baihe/Data/hadoop/tmp/dfs/name</value>
</property>
<!-- data node 存放数据 block 的目录 -->
<property>
     <name>dfs.datanode.data.dir</name>
     <value>file:/Users/baihe/Data/hadoop/tmp/dfs/data</value>
</property>

配置计算框架 mapred-site.xml

在该配置文件中指定与 MapReduce 作业相关的配置属性,需要指定 JobTracker 运行的主机 文件夹中并没有 mapred-site.xml 文件,但提供了模板 mapred-site.xml.template 将其重命名为 mapred-site.xml 即可

mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml

修改配置文件

<property>
      <!--指定mapreduce运行在yarn上-->
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
</property>

配置文件系统 yarn-site.xml

vim yarn-site.xml

修改配置文件

<!-- Site specific YARN configuration properties -->
<property>
<!-- mapreduce 执行 shuffle 时获取数据的方式 -->
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
</property>
<property>
      <name>yarn.resourcemanager.address</name>
      <value>localhost:18040</value>
</property>
<property>
      <name>yarn.resourcemanager.scheduler.address</name>
      <value>localhost:18030</value>
</property>
<property>
       <name>yarn.resourcemanager.resource-tracker.address</name>
       <value>localhost:18025</value>
</property>
<property>
       <name>yarn.resourcemanager.admin.address</name>
       <value>localhost:18141</value>
</property>
<property>
       <name>yarn.resourcemanager.webapp.address</name>
       <value>localhost:18088</value>
</property>

Hadoop namenode 格式化

hdfs namenode -format 成功则会看到”successfully formatted”和”Exitting with status 0”的提示,若为 “Exitting with status 1” 则是出错。

启动 Hadoop 集群

/Users/baihe/App/hadoop-2.7.3/sbin
./start-all.sh

执行命令后,提示出入 yes/no 时,输入 yes 启动所有的 hadoop 服务,包括 hdfs 和 yarn

同时启动中可能会出现问题、继续向下看,下方会有描述。

查看进程是否启动

1、在 Hadoop 的终端执行 jps 命令,在打印结果中会看到 5 个进程,分别是 namenode、 secondarynamenode、datanode、resourcemanager、nodemanager, 如下图所示。 如果出现 了这 5 个进程表示主节点进程启动成功。

2、Web UI 查看集群是否成功启动,浏览器中打开http://localhost:50070/,以及http://localhost:18088/;检查 namenode 和 datanode 是否正常,检查 Yarn 是否正常。

 
原文地址:https://www.cnblogs.com/studytime/p/12871033.html