大数据分析———摸索hadoop安装(MAC、树莓派|Windows安装虚拟机)下篇

in Linux分类Mac分类 with 0 comment

咳咳咳,我还是忍不住自己的勤奋,在这大半夜又泡了一杯茶准备写下这下半篇(本来明天有约的好吧,我是准备洗洗早点睡的,但是被人放鸽子了,而且放我鸽子的人最近脾气不好,我也没办法。)那长夜漫漫,何不寥寥几笔写一点东西...
下面我就直击主题mac下hadoop安装,我是课上完成安装,下课完成测试,最后一切ok
mac下hadoop安装
我先给大家说一下我mac版本是macOS Sierra 10.12

屏幕快照 2017-03-05 上午12.15.57.png

整个过程分为四部分

  1. 安装Homebrew
  2. ssh localhost
  3. 安装Hadoop已经进行配置文件设置(伪分布式)
  4. 运行栗子

1. 安装Homebrew
采用Homebrew安装Hadoop非常简洁方便,之前在Windows上Cygwin上安装过Hadoop,感觉好麻烦。关于Homebrew可以查看其官网 http://brew.sh/
在终端中执行下面代码:

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

装完3天了,我也忘了过程中需不需要yes,如果有的话,就输入‘yes’

2. ssh localhost
因为安装hadoop需要远程登入的功能,所以需要安装ssh工具。 Mac OS X只需在“系统偏好设置”的“共享”的“远程登录”勾选就可以使用ssh了。

屏幕快照 2017-03-05 上午12.26.29.png

如果没有生成过ssh公钥,就使用命令:

~/.ssh/id_dsa     #
~/.ssh/id_dsa.pub #查看存不存在就知道之前有没有生成过公钥,或者直接执行
ssh localhost     #看能否成功

执行下面命令将自己的公钥存到对方的公钥保存文件夹中, 这是为了避免每次执行ssh localhost进行远程登入的时候都要输入密码。

$ ssh-keygen -t rsa -P ""  
$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys  

3. 安装Hadoop已经进行配置文件设置(伪分布式)
为什么安装为分布式,因为老师要求的(直观原因是我们需求不大且只有一台电脑吧)

$ brew install hadoop

同样忘了中间的过程了,可能需要输入管理员密码,和一通‘yes’
hadoop 就安装成功了,当然这样安装的最新稳定版, 我安装时最新为2.7.3。
下面就是修改一些配置文件了,这里是重点
下面就是配置文件的修改了,先修改hadoop-env.sh

$cd /usr/local/Cellar/hadoop/2.7.3/libexec/etc/hadoop/hadoop-env.sh

将 export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true"修改为:

export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true -Djava.security.krb5.realm= -Djava.security.krb5.kdc="

这里改的是JAVA路径,上篇已经解释过原因了,但是我好像漏了一些(JAVA在mac下的安装教程,我的天,妈呀,我尽快找时间再补一个mac下JAVA的安装吧,我电脑上JAVA环境是装好的,上学期学的《面相对象软件工程与UML实践教程》需要用到Eclipse和一些简单的JAVA代码,所以我这里JAVA是装好的。。。)
下面继续编辑 Core-site.xml

cd /usr/local/Cellar/hadoop/2.7.3/libexec/etc/hadoop
nano core-site.xml #终于可以用nano了,舒服

<configuration>
  <property>
     <name>hadoop.tmp.dir</name>  
<value>/usr/local/Cellar/hadoop/hdfs/tmp</value>
    <description>A base for other temporary directories.</description>
  </property>
  <property>
     <name>fs.default.name</name>                                     
     <value>hdfs://localhost:9000</value>                             
  </property>                                                        
</configuration> 

改完了,control+O(ou)保存,control+X退出。
这里说明一下 fs.default.name 保存了NameNode的位置,HDFS和MapReduce组件都需要用到它,这就是它出现在core-site.xml 文件中而不是 hdfs-site.xml文件中的原因
同理编辑 mapred-site.xml.templete

$nano mapred-site.xml #刚开始是空白的文件

<configuration>
       <property>
         <name>mapred.job.tracker</name>
         <value>localhost:9010</value>
       </property>
 </configuration>

这里说明一下变量mapred.job.tracker 保存了JobTracker的位置,因为只有MapReduce组件需要知道这个位置,所以它出现在mapred-site.xml文件中。
再编辑 hdfs-site.xml

$nano hdfs-site.xml

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

再说明一下变量dfs.replication指定了每个HDFS数据库的复制次数。 通常为3, 由于我们只有一台主机和一个伪分布式模式的DataNode,将此值修改为1。

至此,配置文件编辑完毕。

接下来是进到 hadoop 的安装目录

cd /usr/local/Cellar/hadoop/2.7.3/sbin

然后执行:

 ./start-dfs.sh  
 ./start-yarn.sh #就可以启动 Hadoop了,mac下比虚拟机中多安装了一个yarn

不过在启动hadoop之前要先格式化 hdfs

$ hadoop namenode -format

4. 运行栗子
这时就可以用hstart启动hadoop了。 可以使用 jps 命令验证 Hadoop是否在运行。

$jps

然后可以通过Web端进行监控。

Resource Manager: http://localhost:50070
JobTracker: http://localhost:8088
Specific Node Information: http://localhost:8042
通过他们可以访问 HDFS filesystem, 也可以取得结果输出文件.

因为我平时mac从来不关,所以不用的时候我需要手动关闭进程,不然它会一直在后台跑
本篇文章参考流浪的虾壳的Mac OS X Yosemite安装Hadoop 2.6记录

Responses