最近大数据很流行,而Hadoop又 是分析大数据的有力工具,加之工作需要,我近期也在学习hadoop的相关知识。学习归学习,还是要实践;而实践,得先有环境。看到教科书上的一些方法, 都是在linux上配置;mac与linux相近,我就在mac os上实践了。mac os版本是10.8.1,配置的是单机伪分布式环境,目的是学习hadoop程序编写;至于hadoop集群搭建,暂时不感兴趣。
主要参考的资料是《hadoop实战》第二章,p18 -- p21的内容。
《Hadoop实战》中文版+英文文字版+源码【PDF】 下载见 http://www.linuxidc.com/Linux/2012-10/71901.htm
hadoop伪分布式环境搭建,大概分三个步骤:1. java环境配置;2. mac os自身环境设置;3. hadoop环境配置。
1. java环境配置
这一步主要是让mac os支持java,并且配置相关环境变量,使得系统能够自动找到javac和java。在mac系统下,支持java相对简单。我打开terminal, 想看下是否系统已经安装了java(之前安装过xcode的command line版本),键入"java -version",结果mountain lion很智能的问我要不要安装java,并且自动连接apple网站下载安装了java编译、运行环境,并配置好相关环境变量。
在terminal里再次键入"java -version",出现如下信息:
java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01-428, mixed mode)
为了进一步验证,打开vim写了一段helloworld程序,并保存为helloworld.java,如下:
- package helloworld;
- public class helloworld
- {
- public static void main (String [] args)
- {
- System.out.println ("Hello world for java!");
- }
- }
需要注意的是,文件名字“helloworld.java”需要和主类的名字一致。而且,package的名字,最终会在生成.class文件的时 候决定路径的深度,例如:我最开始起的名字是“package java.tryjava.helloworld”,结果.class文件生成在了“.../java/tryjava/helloworld”路径下, 烦死。
命令行中用javac编译刚才的文件,如下:
javac -d ../bin/ helloworld.java
其中“-d”表示生成文件的目录,再往后,是要编译的源代码文件。查看../bin/helloworld/目录下,生成helloworld.class文件,cd到该目录,输入
java hell world/helloworld
注意第二个是不带后缀的文件名hellworld,而不是生成的全名hellworld.class。如期得到
Hello world for java!
至此,java环境安装完毕。在《hadoop实战》中,还要设置一些环境变量。这些在mac系统下可以省略,在刚才安装过程中,已经设置好这些变量了。
2. 配置mac os 自身环境
这个主要是配置ssh环境。先在terminal里面输入
ssh localhost
会有错误提示信息,表示当前用户没有权限。这个多半是系统为安全考虑,默认设置的。更改设置如下:进入system preference --> sharing --> 勾选remote login,并设置allow access for all users。再次输入“ssh localhost",再输入密码并确认之后,可以看到ssh成功。
不过这里面还有一个麻烦,就是每次都会要求输入用户密码。《Hadoop实战》提供了一种免登陆的方法。首先,输入
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
ssh免登陆设置完成。
3. 安装并运行hadoop
首先下载hadoop,链接是http://apache.etoak.com/hadoop/common/,里面由hadoop的各个版本。看到书上用的是0.20.2版本,我也就下这个了。文件不大,135M左右。接下来,到 hadoop-0.20.2/conf 文件夹下,要配置的几个文件都在这里。
第一个是hadoop-env.sh脚本文件,设置如下环境变量:
- export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
- export HADOOP_INSTALL=/Volumes/Data/Works/Hadoop/hadoop-0.20.2/
- export PATH=$PATH:$HADOOP_INSTALL/bin
从名字都能判断各个环境变量的含义。需要说明的是,第一个路径,实际上是从”/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home“来的,只不过中间有些软连接,最后的实际目录如上面所示。
接下来是core-site.xml文件,配置hdfs的地址和端口号,如下:
- <?xml version="1.0"?>
- <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
- <!-- Put site-specific property overrides in this file. -->
- <configuration>
- <property>
- <name>fs.default.name</name>
- <value>hdfs://localhost:9000</value>
- </property>
- </configuration>
默认是没有中间<property>区域的,需要自己加上。
然后是mapred-site.xml文件,设置map-reduce中jobtracker的地址和端口号,如下:
- <?xml version="1.0"?>
- <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
- <!-- Put site-specific property overrides in this file. -->
- <configuration>
- <property>
- <name>mapred.job.tracker</name>
- <value>localhost:9001</value>
- </property>
- </configuration>
最后是hdfs-site.xml文件,设置hdfs的默认备份方式。默认值是3,在伪分布式系统中,需要修改为1,如下:
- <?xml version="1.0"?>
- <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
- <!-- Put site-specific property overrides in this file. -->
- <configuration>
- <property>
- <name>dfs.replication</name>
- <value>1</value>
- </property>
- </configuration>
设置总算是完成了,接下来,格式化namenode。啊,namenode是啥?问度娘吧。在terminal里输入如下命令:
bin/Hadoop NameNode -format
我曾担心把我的整个Data盘都给废掉,后来看看,不是的。不知道这个namenode在mac系统中的哪个目录下。
接下来,启动hadoop,输入命令:
bin/start-all.sh
如果一切正常的话,会在http://localhost:50030和http://localhost:50070分别看到map-reduce和hdfs的相关信息。总之,走到这一步,我看到信息了,虽然没太看懂吧,但证明hadoop在我的mac上运行起来了.
相关推荐
详细的hadoop2 伪分布式环境搭建以及eclipse部署。demo示例代码测试运行。文中有插件包。资源包等参考链接参考下载。
Hadoop安装教程_单机_伪分布式配置
2、大数据环境-安装Hadoop2.5.2伪分布式傻瓜教程 原创
如果用的是 CentOS/RedHat 系统,请查看相应的CentOS安装Hadoop教程_单机伪分布式配置。 本教程基于原生 Hadoop 2,在 Hadoop 2.6.0 (stable) 版本下验证通过,可适合任何 Hadoop 2.x.y 版本,如 Hadoop 2.7.1、...
hadoop安装与配置,hadoop的伪分布式模式配置与安装伪分布式模式,讲解hadoop的伪分布式模式进⾏对hadoop的基本模拟部署
Hadoop伪分布式集群环境搭建 Hadoop伪分布式集群环境搭建
Linux Hadoop 伪分布式配置 一个节点,线程模仿分布式
虚拟机Ubuntu下hadoop2.6.0的安装与配置 (单机模式,伪分布式,完全分布式)非常详细的安装配置指南
常用伪分布式hadoop中的配置
hadoop伪分布式安装!
ubuntu下Hadoop的伪分布式配置
hadoop2.6.5伪分布式搭建hadoop2.6.5伪分布式搭建hadoop2.6.5伪分布式搭建hadoop2.6.5伪分布式搭建
伪分布式Hadoop安装配置测试全过程
Hadoop安装教程_伪分布式配置_CentOS6.4/Hadoop2.6.0_厦大数据库实验室博客总结、分享、收获大数据 (http://dblab.xmu.
适用于《shell脚本配置伪分布式Hadoop》
实验1.hadoop伪分布式配置.docx
1.本机虚拟机镜像为ova格式,大小为2.9G,仅限VirtualBox使用,本机无图形界面!请注意! 2.本机为ubuntu16.04服务器版本,无图形...5.使用hadoop集群前,需要根据本地虚拟机的IP地址修改/etc/hosts文件中的host配置。
Hadoop安装教程_单机/伪分布式配置_Hadoop2.7.1/Ubuntu 16.04
王家林的“云计算分布式大数据Hadoop实战高手之路---从零开始”的第二讲Hadoop图文训练课程:全球最详细(不放过任何一个细节)的从零起步搭建Hadoop单机和伪分布式开发环境图文教程.pdf
大数据hadoop平台伪分布式搭建详细步骤,基于ubtuntu系统,供初学者学习使用。... 大数据hadoop平台伪分布式搭建详细步骤,基于ubtuntu系统,供初学者学习使用。...