在这个阴雨绵绵的下午,没有睡午觉的我带着一双惺忪的眼睛坐在了电脑前,泡上清茶,摸摸已是略显油光的额头(笑cry),,奋斗啊啊啊啊!!%>_<%

1.课程回顾。

1.1 Hadoop系统运行的软件系统:Linux操作系统(小红帽或Ubuntu)、SSH(Secure Shell主要用于远程管理Hadoop节点以及Hadoop节点间的安全共享访问)、Java

这里主要多说一点SSH,它是一种网络协议,用于计算机之间的加密登陆,如一个用户从本地计算机通过SSH协议登录一台远程计算机。详情请见[1]。

1.2 Hadoop系统的安装方式:单一方式(在一台装有Linux系统的单机上安装运行Hadoop系统),单机伪分布式方式(在一台装有Linux的单机上,用伪分布式方式,用不同的Java进程模拟分布式运行中的NameNode、DateNode、JobTracker等各类节点),集群分布模式(在一个真实的集群环境下安装运行Hadoop系统,集群的每个节点可以运行Linux)

2.安装Hadoop

下面步入正题,直播我安装Hadoop的全过程。。。

参考大神们的博客[2],说MAC安装Hadoop需要如下几个步骤:

      1)安装Homebrew

      2) SSH localhost

      3)安装Hadoop

2.1 安装Homebrew[3]

这里之所以安装Homebrew是因为Mac用Homebrew安装软件真真是简洁优雅,只需一条命令行代码。

1)安装Homebrew

打开终端(快捷键control+space 或者 直接在电脑右上角点击放大镜输入Terminal),复制粘贴如下语句或从官网找到最新版的Homebrew命令行:

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

过程中会要求输入密码等,按照提示照做即可。

2)安装Homebrew-cask

打开终端,复制粘贴如下命令行:

brew tap phinze/homebrew-cask
brew install brew-cask

以下是我的显示结果,仅供参考(最后光标显示为原来的样子,表示安装成功):

那么,如何用Homebrew-cask安装及卸载软件呢,借用大神的一张图片[3],列的灰常清晰:

下面列出一些常用的cask命令:

brew cask search 列出所有可以被安装的软件
brew cask search drop 查找所有和 drop 相关的应用
brew cask info thunder 查看 迅雷 应用的信息,这货安装的可是最新版本的迅雷哦!
brew cask uninstall qq 卸载 QQ

更新软件:

brew cask uninstall qq && brew cask install qq #因为cask每次安装都是安装最新的版本

至此,Homebrew-cask安装及废话部分结束,开启下一步SSK的设置。

2.2 配置SSH localhost

  • 打开系统偏好设置-共享-远程登录(默认情况下关闭,将“远程登录打开即可”);
  • 生成密钥对,执行如下命令
    $ ssh-keygen -t rsa
  • 执行如下命令,将在当前用户目录中的.ssh文件夹中生成id_rsa文件并且以后可以不使用密码登录:
  • $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  • 使用下面命令,测试是否可以不适用密码登录:
  • $ ssh localhost

2.3 安装Hadoop

(*^__^*) 嘻嘻……这里就用到了之前安装的Homebrew-cask啦,这里仅仅输入一条命令行即可完成Hadoop的安装,是不是炒鸡easy嘞~当然,如果不安装Homebrew的话,直接用平常在Mac上安装其他软件的方法安装Hadoop也是可以的啦,就是从其官网上下载最新版本的Hadoop,然后安装即可。

这里采用Homebrew-cask的方式,命令行如下:

$ brew install hadoop

如果提示说未安装Java的话,说明你没有安装jdk,则按照它的命令提示,安装Java,然后再安装Hadoop。

安装完Hadoop后,需要配置一下才能成功安装[4]。(又是一项浩大的工程啊,路途中出现各种小问题,下面一一道来)

  • 在目录/usr/local/Cellar/hadoop/2.6.0/libexec/etc/hadoop下找到hadoop-env.sh文件中找到其中一行:(有木有盆友不造怎么进入目录啊。。就是打开Finder,然后找最上面工具栏有一个“前往”-->“前往文件夹”-->将路径复制进去即可)
  • 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="
  • 在目录/usr/local/Cellar/hadoop/2.6.0/libexec/etc/hadoop下找到core-site.xml,插入如下代码:
  • <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>
  • 在目录/usr/local/Cellar/hadoop/2.6.0/libexec/etc/hadoop下找到mapred-site.xml, 在其中添加:
  • <configuration>
    <property>
    <name>mapred.job.tracker</name>
    <value>localhost:</value>
    </property>
    </configuration>

    这里!!就是这里,我居然没有找到mapred-site.xml这个文件,只有一个mapred-site-template.xml文件,然后打不开,最后没办法只好从朋友那里copy了一个这样的文件,具体如下:(当然有该文件的朋友直接按照上面的修改就行了)

  • <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <!--
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License. See accompanying LICENSE file.
    --> <!-- Put site-specific property overrides in this file. --> <configuration>
    <property>
    <name>mapred.job.tracker</name>
    <value>localhost:</value>
    </property>
    </configuration>
  • 在目录/usr/local/Cellar/hadoop/2.6.0/libexec/etc/hadoop下找到hdfs-site.xml
  • <configuration>
    <property>
    <name>dfs.replication</name>
    <value></value>
    </property>
    </configuration>
  • 在运行后台程序前, 必须格式化新安装的HDFS, 并通过创建存储目录和初始化元数据创新空的文件系统, 执行下面命令:
  • $ hdfs namenode -format
    #生成类似下面的字符串:
    ...
    #此书省略大部分
    STARTUP_MSG: java = 1.6.0_65
    ************************************************************
    /************************************************************
    SHUTDOWN_MSG: Shutting down NameNode at Andrew-liudeMacBook-Pro.local/192.168.1.100
    ************************************************************/
  • 启动后台程序:在/usr/local/Cellar/hadoop/2.6.0/sbin目录下, 执行如下命令
  • $ start-dfs.sh  #启动HDFS
    $ stop-dfs.sh #停止HDFS,当然不是现在停止啦

    (PS:自我反省一下,我是小白我是小白我是小白%>_<%  这里列出几个常用的供自己及同样的小白补脑%>_<%%>_<%)

  • # shell命令有好多种,目前系统默认的应该是bash,但是大神们一致推荐崇尚的时zsh,那么怎么在两者之间切换呢?
    
    cat /etc/shells #将会显示所有的shell命令,目前小白我用过的只有bash跟zsh...然后根据显示输入命令即可转换shell
    ls #显示当前目录下所有子目录
    ls -i #显示当前目录下所拥有的子目录的访问权限
    cd Desktop/ #切换至当前目录下的Desktop
    cd ./path #切换到当前目录下得path目录
    cd ../path #切换到上层目录的path目录
    cd / #切换到根目录 # 一般情况下,ls与cd是交叉使用的,进入一个cd就用ls查看一下,然后才能进入下面一层子目录嘛

    这里我又遇到了一个超级严重的问题,无usr访问权限,反正自己谷歌了好久,具体步骤也有些混乱了,大概就是更改权限,这里只是说一下如何修改一个文件夹的访问权限,以后以不变应万变即可。右击想要更改权限的文件夹--》显示简介——》点击右下角的那个小锁——》输入密码——》更改权限——》改完后别忘记上锁。这样就OK啦。

哦,对还有一个问题,就是我输入 $start-dfs.sh后提示说命令无效,若出现这种情况,可将上述命令更改为

  • ./ start-dfa.sh

  显示如下式样说明启动成功~

   

    最后,在浏览器中输入 http://localhost:50070便可访问Hadoop页面。

    从下午三点钟折腾到现在,边记录,边安装,边查阅才把它安装完毕,光说不练嘴把式,动手动脑动起来~。

参考文献:

[1]. SSH原理与应用(一):远程登录——http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html

[2]. Mac OS X Yosemite安装Hadoop 2.6记录——http://blog.csdn.net/yechaodechuntian/article/details/44312343

[3]. 简洁优雅的Mac OS X软件安装体验-homebrew-cask——http://ksmx.me/homebrew-cask-cli-workflow-to-install-mac-applications/

[4].在Mac OSX Yosemite上安装Hadoop——http://andrewliu.tk/2015/03/05/%E5%9C%A8Mac-OSX-Yosemite%E4%B8%8A%E5%AE%89%E8%A3%85Hadoop/

安装单机Hadoop系统(完整版)——Mac的更多相关文章

  1. CentOS 6.5以上版本安装mysql 5.7 完整版教程(修订版)

    转载自:https://codeday.me/collect/20170524/21861.html 1: 检测系统是否自带安装mysql # yum list installed | grep my ...

  2. 新手之VM下安装centos版本Linux系统完整版!

    一.安装必备软件 1:下载好VM workstations虚拟机 2:下载好你要安装的centos版本. 如果没有,请自己先百度下载好~或者找我要. 二.开始安装 VM workstation部分 1 ...

  3. xshell连接vmware系统完整版

    设置静态ip需要修改文件一共有两个要修改的文件vi /etc/resolv.confvi /etc/sysconfig/network-scripts/ifcfg-eno16777736 第一个文件 ...

  4. CentOS7.3利用kubeadm安装kubernetes1.7.3完整版(官方文档填坑篇)

    安装前记: 近来容器对企业来说已经不是什么陌生的概念,Kubernetes作为Google开源的容器运行平台,受到了大家的热捧.搭建一套完整的kubernetes平台,也成为试用这套平台必须迈过的坎儿 ...

  5. Cent OS安装使用ffmpeg(完整版)

    Cent OS安装使用ffmpeg centos作为主流后台linux 系统,ffmpeg作为视频流解析的主力,尤其是ffmpeg配合opencv使用,则是视觉操作的基础 版本: ffmpeg3.1 ...

  6. docker安装单机hadoop

    安装环境 centos7. docker -ce(这个安装参考我的另外一篇博客 首先关闭防火墙 systemctl stop firewalld.service #停止firewall systemc ...

  7. centos6 yum安装mysql 5.6 (完整版)

    使用源代码编译安装mysql还是比较麻烦,一般来说设备安装时请网络同事临时开通linux上网,通过yum网络实现快速安装,或配置yum仓库进行内网统一安装. 通过网络快速安装过程如下 一.检查系统是否 ...

  8. 阿里云ECS服务安装 nginx+php+MariaDB完整版

    安装 Nginx想在 CentOS 系统上安装 Nginx ,你得先去添加一个资源库,像这样: vim /etc/yum.repos.d/nginx.repo使用 vim 命令去打开 /etc/yum ...

  9. SVN 添加账号密码的方法(Windows 系统完整版)

    前言: 本人新接了一个项目,目前该项目基本完工,现在想要将该项目上传至SVN上保管,然后设置并添加账号密码信息,以便于后期加入这个项目的小伙伴可以通过新增加的账号密码信息获取到SVN项目,以便后期项目 ...

随机推荐

  1. linux进程的学习笔记(未完)

    1. 进程是程序执行的一个实例,如果16个用户同时运行vi,那么有16个独立的进程,尽管它们共享同一个可执行代码,问题在于FreeRTOS这种系统,是否可以建2个相同的任务,需要注意什么?在linux ...

  2. crash:EXC_ARM_DA_ALIGN(关于内存对齐,memcpy)

    crash:EXC_ARM_DA_ALIGN(关于内存对齐,memcpy) 问题描述 在iOS game开发时做内存拷贝时出现了 crash:EXC_ARM_DA_ALIGN,debug版本不会出现, ...

  3. 「日常训练」Uncle Tom's Inherited Land*(HDU-1507)

    题意与分析 题意是这样的:给你一个\(N\times M\)的图,其中有一些点不能放置\(1\times 2\)大小的矩形,矩形可以横着放可以竖着放,问剩下的格子中,最多能够放多少个矩形. 注意到是\ ...

  4. 使用 Fiddler工具模拟post四种请求数据

    post请求主体详解: 对于get请求来说没有请求主体entity-body.对于post请求而言,不会对发送请求的数据格式进行限制,理论上你可以发任意数据,但是服务器能不能处理就是另一回事了.服务器 ...

  5. MVC数据的注册及验证简单总结

    一.注解 注解是一种通用机制,可以用来向框架注入元数据,同时,框架不只驱动元数据的验证,还可以在生成显示和编辑模型的HTML标记时使用元数据. 二.验证注册的使用 1.Require:属性为Null或 ...

  6. 小组ITalk网站开发中使用到的一些技巧

    ----->Display属性和Visibility属性:一个清除内容和框体,另一个只清除内容而保留窗体: $('#abc').css({ 'font-size' : '12px', '-web ...

  7. JAVA Map 之元素定位,冲突碰撞

    基本特性: 维持健值对的集合接口,健不可以重复,每一个健只能映射到一个值. Map替代了原来的虚拟类Directory. Map提供了三种集合视角,keys(KeySet),values(Values ...

  8. 深入理解java虚拟机学习笔记(一)

    第二章 Java内存区域与内存溢出异常 运行时数据区域 程序计数器(Program Counter Register) 程序计数器:当前线程所执行的字节码行号指示器.各条线程之间计数器互不影响,独立存 ...

  9. Java中定时器相关实现的介绍与对比之:Timer和TimerTask

    Timer和TimerTask JDK自带,具体的定时任务由TimerTask指定,定时任务的执行调度由Timer设定.Timer和TimerTask均在包java.util里实现. 本文基于java ...

  10. python常用函数—enumerate()

    enumerate() 对于一个可迭代的(iterable)/可遍历的对象(如列表.字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值的元组. 使用拆包,可以单独获得索引和值 ...