Mac系统安装Hadoop

来源:互联网 发布:房地产经纪人必备软件 编辑:程序博客网 时间:2024/06/16 10:06

我的系统是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---

0 0
原创粉丝点击