作者:studytime原文:https://www.studytime.xin/
Hadoop运行环境基于Java、所以Java环境是必须的。至于怎么安装JDK、自行谷歌,各位小哥,此处不做赘述。
开启mac远程登录功能,且将当前用户加入允许的用户列表中
避免使用hadoop命令时,多次输入密码
ssh-keygen -t rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 验证ssh ssh localhost###
本文以 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版本号:hadoop version
需要修改的 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设置 JAVA_HOME 的路径
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home默认情况下,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 相关的配置信息。需要修改 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>在该配置文件中指定与 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>修改配置文件
<!-- 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>hdfs namenode -format 成功则会看到”successfully formatted”和”Exitting with status 0”的提示,若为 “Exitting with status 1” 则是出错。
执行命令后,提示出入 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 是否正常。