您的位置:首页 > 运维架构

Mac系统安装Hadoop

2016-05-05 10:05 351 查看
我的系统是MAX OS X 10.10.5,所以本文以当前系统版本为例。



图0-1 系统版本

1. 下载Hadoop

下载链接:http://hadoop.apache.org/releases.html



图1-1 Hadoop下载页面

我下载的是2.7.2版本的binary,所以我们下面的安装配置以这个版本为例。

下载来,我们解压有得到如下的文件夹:



图1-2 Hadoop解压后的文件目录结构

我们把这个解压文件放到我们想要放的路径中,这里我选的是/Users文件夹的根目录,在里面新建了hadoop文件夹,然后把hadoop-2.7.2文件夹放到hadoop里面;



图1-3 hadoop文件夹在/User文件夹根目录



图1-4 在hadoop文件夹下的hadoop-2.7.2文件夹

2. 得到Java路径
Java路径会在接下来的文件配置中用到,所以我们在这里先要得知我们Java的路径。
我们Mac系统自带Oracle JDK 1.6版本,所以我们只要在Terminal输入java -version就可以得知我们系统的版本号,但是对于一些开发者来说,1.6版本的JDK太老,不适合做一些开发,所以会自己安装一些其他版本的JDK,就像我用的是1.7版本的jdk。那我们怎么得到Java路径呢?
我们可以参考这个链接:
在MAC上查询和设置%JAVA_HOME
因为我们使用这一次,所以我们就不配置java_home的路径里,我们直接到/usr/libexec/文件夹下,找到java_home文件,双击,得到java路径;



图2-1 在/usr/libexec文件夹下的java_home快捷方式



图2-2 双击后得到的java路径
从上图,我得到我的java路径是:/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home

3. 配置MAC OS自身环境

这里我们主要配置SSH环境。

打开Terminal,输入如下命令:

ssh localhost
这时候我们会发现,ssh无法远程登录我们自己的电脑;



图3-1 远程登录失败

这是因为我们没有对自己的电脑开启远程服务,我们在“系统偏好设置-共享-远程登录”打钩,然后选择右侧的“所有用户”;



图3-2 开启远程登录服务

然后我们继续Terminal指令操作:

ssh localhost


ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
ssh-keygen表示生成秘钥;-t表示秘钥类型;-P用于提供密语;-f指定生成的秘钥文件。

这个命令在”~/.ssh/“文件夹下创建两个文件id_dsa和id_dsa.pub,是ssh的一对儿私钥和公钥。接下来,将公钥追加到授权的key中去;

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys


这时候,我们MAC OS自身环境配置完毕。

4. Hadoop环境配置

我们修改.bash_profile文件进行配置,在Terminal输入vim ~/.bash_profile编辑文件,在文件中输入如下内容;



图4-1 配置HADOOP_HOME

编辑完成后,我们在Terminal中输入:

source ~/.bash_profile
使我们的编辑有效。

但是我们这样编辑只能使本次有效,如果我们关闭Terminal,重新打开后,我们会发现,之前的配置失效了,为了使我们的配置永久有效,我们需要进行如下指令的输入:

vim ~/.bashrc


在.bashrc(MAC OS 10.2及之前修改.zshrc)文件中输入如下内容:



图4-2 .bashrc文件编辑

然后在Terminal输入:

source ~/.bashrc
使我们的更改有效。

5. 文件配置

这里我们主要针对/hadoop-2.7.2/etc/hadoop的文件夹(hadoop2.0版本一下在/hadoop-1.x.x/bin文件夹)中的hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml(2.7.2版本没有mapred-site.xml只有mapred-site.xml.template,所以这里我们新建一个mapred-site.xml文件夹)进行修改配置。

hadoop-env.sh文件修改如下:

我们用到了之前得到的Java路径;



在export JAVA_HOME=${JAVA_HOME}前面添加:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home


去掉HADOOP_HEAPSIZE的注释,并设置为2000;



export HADOOP_HEAPSIZE=2000


注释掉原来的HADOOP_OPTS,并添加:



export HADOOP_OPTS="-Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk"


core-site.xml文件修改如下:

<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/Users/hadoop/hadoop-2.7.2/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:8020</value>
</property>
</configuration>


hdfs-site.xml文件修改如下:

<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/Users/hadoop/hadoop-2.7.2/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/Users/hadoop/hadoop-2.7.2/tmp/dfs/data</value>
</property>
</configuration>


mapred-site.xml文件修改如下:

<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hdfs://localhost:9001</value>
</property>
<property>
<name>mapred.tasktracker.map.tasks.maximum</name>
<value>2</value>
</property>
<property>
<name>mapred.tasktracker.reduce.tasks.maximum</name>
<value>2</value>
</property>
</configuration>


6. 安装HDFS

在Terminal输入:

$HADOOP_HOME/bin/hdfs namenode -format


老版本hadoop使用hadoop指令:

$HADOOP_HOME/bin/hadoop namenode -format


如果执行指令后出现如下情况说明,HDFS已成功安装;



图6-1 HDFS成功安装

7. 开启Hadoop

我们在Terminal输入:

$HADOOP_HOME/sbin/start-all.sh
老版本hadoop输入:

$HADOOP_HOME/bin/start-all.sh


如果运行结果如下图,说明我们的hadoop已成功开启;



图7-1 Hadoop成功开启

---END---
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: