标签:
我的系统是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路径呢?
我们可以参考这个链接:
因为我们使用这一次,所以我们就不配置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_dsassh-keygen表示生成秘钥;-t表示秘钥类型;-P用于提供密语;-f指定生成的秘钥文件。
这个命令在”~/.ssh/“文件夹下创建两个文件id_dsa和id_dsa.pub,是ssh的一对儿私钥和公钥。接下来,将公钥追加到授权的key中去;
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
4. Hadoop环境配置
我们修改.bash_profile文件进行配置,在Terminal输入vim ~/.bash_profile编辑文件,在文件中输入如下内容;
图4-1 配置HADOOP_HOME
编辑完成后,我们在Terminal中输入:
source ~/.bash_profile使我们的编辑有效。
但是我们这样编辑只能使本次有效,如果我们关闭Terminal,重新打开后,我们会发现,之前的配置失效了,为了使我们的配置永久有效,我们需要进行如下指令的输入:
vim ~/.bashrc
图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
export HADOOP_HEAPSIZE=2000
export HADOOP_OPTS="-Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk"
<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>
<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>
<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>
在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
标签:
原文地址:http://blog.csdn.net/wj_november/article/details/51320518