Hadoop安装及配置 —— MacOS High Sierra

折腾了小半天,看了官方文档和许多博客,终于在Mac里安装上了Hadoop。所以在这里总结一下,让更少的人走弯路。


Hadoop安装最好还是在Linux里面,毕竟以后的工作环境肯定是Linux,不过平时可以在Mac练练手,毕竟装个虚拟机的话要占用Mac的配置。一开始我看了一篇用Homebrew安装的文章,以为brew会简化问题,但是最后发现还要自己配置hadoop的工作路径等等,最后弄得乱七八糟也没成功。所以最后还是用的hadoop binary version 2.8.2,下载链接。然后用tar命令在自己选择的目录进行解压(用解压工具也可以),解压后我这里的文件夹名称为hadoop-2.8.2


1.首先检验是否安装了java

打开terminal,输入下面命令,如果安装的话会有Java版本的输出,最好用Java 8。

java -version


2.配置SSH

首先要在Mac系统设置里面允许SSH daemon,System Preferences => Sharing,勾上Remote Login。博主系统是英文的,请自行翻译。

之后检测系统中是否已经有SSH文件生成,终端中输入~/.ssh/id_rsa~/.ssh/id_rsa.pub,如果没有错误提示的话就说明已经有SSH文件生成,如果文件不存在,就需要我们重新生成,在terminal中输入:

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

然后进行检验,运行正常则返回Login的时间:

ssh localhost


3.安装配置Hadoop

首先需要确定系统Java的安装路径,运行下面命令

/usr/libexec/java_home

我这里的输出为:

/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home

注意:“hadoop-2.8.2”文件夹为hadoop的根目录,之后的操作都在进入这个文件夹后进行

etc/hadoop/hadoop-env.sh.文件中添加下列语句,并保存,可以用nanovi命令进行编辑。

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

之后就是更改一些配置文件:

etc/hadoop/core-site.xml中的<configuration>里面,添加:

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

etc/hadoop/hdfs-site.xml中的<configuration>里面,添加:

<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>

etc/hadoop/mapred-site.xml

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

etc/hadoop/yarn-site.xml

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
    <name>yarn.nodemanager.env-whitelist</name>
    <value>JAVA_HOME, HADOOP_COMMON_HOME, HADOOP_HDFS_HOME, HADOOP_CONF_DIR, CLASSPATH_PREPEND_DISTCACHE, HADOOP_YARN_HOME, HADOOP_MAPRED_HOME
    </value>
</property>


4.初始化Hadoop Cluster(在本地系统中format HDFS(Hadoop Distributed File System))

hadoop-2.8.2路径里面运行

bin/hdfs namenode -format


5.配置HDFS路径

bin/hdfs dfs -mkdir /user
bin/hdfs dfs -mkdir /user/yourusername

路径名字自己设定,我这里方便管理用的user名称。


6.运行Hadoop

首先设置个alias,这样一打开终端输入ilias就可以运行Hadoop了,不需要在进入hadoop的目录。

nano ~/.profile

~/.profile写入下面文件,保存退出

alias hstart="/usr/local/hadoop-2.8.2/sbin/start-dfs.sh;/usr/local/hadoop-2.8.2/sbin/start-yarn.sh"
alias hstop="/usr/local/hadoop-2.8.2/sbin/stop-yarn.sh;/usr/local/hadoop-2.8.2/sbin/stop-dfs.sh"

输入source ~/.profile,或者重启终端激活这个文件。之后在终端任意地方输入hstart启动Hadoop,hstop终止Hadoop。

注意:这里补充一个小知识,我们在为软件配置系统环境的时候往往会见到这四个文件,~/.bash_profile,/etc/profile,~/.profile,~/.bashrc。在interactive login shell里面,会按照/etc/profile,~/.bash_profile,~/.profile这个顺序只读取并执行第一个存在的文件里面的命令,后面的不再执行。所以如果你已经有了~/.bash_profile,就不要再在~/.profile文件中填写命令了。所以上面的ilias命令要写在~/.bash_profile里面,否则每次重启终端都要重新执行一次source ~/.profile。而在interactive non-login shell,bash只读取并执行~/.bashrc文件。

然后就可以在终端任一路径,输入下面命令开启hadoop了。

hstart

检验是否namenode and datanode daemons正在运行,在terminal中输入jps,返回

22193 NodeManager
22114 ResourceManager
22244 Jps
21128 NameNode
59674
21214 DataNode
21311 SecondaryNameNode


7.Hadoop安装最终检验

Resource Manager: http://localhost:50070/

JobTracker(cluster details): http://localhost:8088/


最后还得说说,从事技术方面工作的要学稳啊,不能贪图速度出成绩,得不偿失,生活中的很多事情也都是这样吧。

登录注册后参与评论