Mac上运行第一个Hadoop实例
之前转过 一篇文章 ,介绍如何配置伪分布式的Hadoop。不过在Mac上的配置方法和Linux上有一点点区别。另外,本篇还从头介绍了一下创建和运行Hadoop工程的方法。
配置Hadoop
首先确保 java 已经正确安装,最好使用1.6以上的版本, java -version 查看正在使用的版本。把 java 加到 ~/.bash_profile 里。
export JAVA_HOME=`/usr/libexec/java_home`
配置 ssh ,为了简单点儿,使用当前用户账号。需要把密钥文件给自己加上,方便地用 ssh 访问本机。
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # /usr/sbin/sshd # 有点儿麻烦,需要启动ssh $ ssh localhost # 验证一下
以伪分布式安装Hadoop。把Hadoop下载下来,解压放到比如 /usr/local/ 下,加到环境变量里:
PATH="$PATH:/usr/local/hadoop/bin"
改一下用户,以便后面可以在自己的账号下启动它:
# chown -R yeolar:admin /usr/local/hadoop
Hadoop需要个临时目录:
$ mkdir /tmp/hadoop $ chmod 777 /tmp/hadoop
配置Hadoop的环境变量,在 /usr/local/hadoop/conf/hadoop-env.sh 中:
export JAVA_HOME=`/usr/libexec/java_home` export HADOOP_OPTS="-Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk" # Mac需要这个
修改一些配置文件:
/usr/local/hadoop/conf/core-site.xml:
<property><name>hadoop.tmp.dir</name><value>/tmp/hadoop</value><description>A base for other temporary directories.</description> </property><property><name>fs.default.name</name><value>hdfs://localhost:54310</value><description>The name of the default file system. A URI whosescheme and authority determine the FileSystem implementation. Theuri's scheme determines the config property (fs.SCHEME.impl) namingthe FileSystem implementation class. The uri's authority is used todetermine the host, port, etc. for a filesystem.</description> </property>
/usr/local/hadoop/conf/mapred-site.xml:
<property><name>mapred.job.tracker</name><value>localhost:54311</value><description>The host and port that the MapReduce job tracker runsat. If "local", then jobs are run in-process as a single mapand reduce task.</description> </property>
/usr/local/hadoop/conf/hdfs-site.xml:
<property><name>dfs.replication</name><value>1</value><description>Default block replication.The actual number of replications can be specified when the file is created.The default is used if replication is not specified in create time.</description> </property>
格式化HDFS文件系统:
$ hadoop namenode -format
现在就可以通过 start-all.sh 和 stop-all.sh 来启动和停止这个单点集群了。
创建一个Hadoop工程
现在大多用maven创建Java工程。
$ mvn archetype:create -DgroupId=com.yeolar.hmapred -DartifactId=hmapred -DpackageName=com.yeolar.hmapred
默认会创建一个App.java,把它删掉,然后把Hadoop源代码里面的WordCount.java复制过来,改一下 package 。
我们还要在pom.xml中加上Hadoop依赖:
<dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-core</artifactId><version>1.1.1</version> </dependency>
现在在工程的根目录就可以编译打包了:
$ mvn clean compile $ mvn package
maven首次会自动下载依赖,需要一些时间。
如果想把maven工程转换为eclipse工程,可以执行 mvn eclipse:eclipse 。同时还要在Preferences/Java/Build Path/Classpath Variables中添加变量 M2_REPO = /Users/yeolar/.m2/repository 。
运行Hadoop任务
运行普通的Java包可以使用命令 java -cp <jar file> <class> ,不过Hadoop有它自己的方式。
首先,确保Hadoop已经启动,如果还没有,使用 start-all.sh 启动起来。
然后把要处理的文档放到HDFS里面:
$ hadoop dfs -put doc.txt ~
运行Hadoop任务:
$ hadoop jar target/hmapred-1.0-SNAPSHOT.jar com.yeolar.hmapred.WordCount doc.txt out
可以合并取出输出的结果( -getmerge ),或者直接查看( -cat )。
Mac上运行第一个Hadoop实例相关推荐
- python mac可以运行win不能运行_Pymssql程序可以在mac上运行,但不能在windows上运行...
我有一段代码,如果我在mac上运行这个程序(MBA运行mavericks),它的工作原理就像一个符咒.如果我将代码移动到windows box(windows server 2008 R2 64位), ...
- 别只关注M1芯片的苹果笔记本,iOS APP支持在 Mac上运行也是大事
将会在当地时间 11 月 10 日(北京时间 11 月 11 日凌晨 2 点)在 Apple Park 举办发布会,这是苹果在本年度秋季举行的第三次发布会,App Store 上似乎透露出发布会的蛛丝 ...
- 什么是“ parentalcontrolsd”,为什么它在我的Mac上运行?
Something called parentalcontrolsd is running on your Mac-at least, that's what you found when you c ...
- 都有哪些应用程序可以在M1 Mac上运行?
如果您有幸使用新的M1 Mac,或者考虑购买一台Mac,您会想知道您需要使用的应用程序是否可以在其中运行. 苹果公司拥有Rosetta 2-一种用于翻译用于英特尔处理器的代码的工具,以便M1芯片可以理 ...
- 如何在M1 Mac上运行iOS应用?
苹果最新的MacBook Air,MacBook Pro和Mac Mini进行了重要的更改:它们都使用了苹果自己的硅M1处理器.得益于该创新芯片,iOS和MacOS应用程序的融合向前迈出了一大步. 这 ...
- Parallels 16已可在支持Windows的M1 Mac上运行
Parallels Desktop 16 被称为macOS上最强大的虚拟机软件,可以在 Mac 下同时模拟运行 Win.Linux.Android 等多种操作系统及软件而不必重启电脑,并能在不同系统间 ...
- mac 不受信任在哪里更改_什么是受信任的,为什么它可以在Mac上运行?
mac 不受信任在哪里更改 So you found something called trustd running on your Mac, and are now wondering if it ...
- 什么是云,为什么它可以在Mac上运行?
You might have noticed something named cloudd running on your Mac while using Activity Monitor. Shou ...
- 什么是“ backupd”,为什么它在我的Mac上运行?
You notice a process named "backupd" while using Activity Monitor. What is this process, a ...
最新文章
- 【跃迁之路】【678天】程序员高效学习方法论探索系列(实验阶段435-2018.12.23)...
- Winform 系统调优
- leetcode 53.最大子序和
- adb打开网页_adb命令打开手机设置页面
- Delphi XE5 for Android (十一)
- python - 内置函数
- 虚拟机VM10装Mac OS X 10.9.3
- 稳压二极管的工作原理及稳压二极管使用电路图
- Lora入门(1)—— PingPong测试(CubeMX篇)
- iOS平台游戏安全之IPA破解原理及防御
- PostgreSQL表增加一列或删除一列
- 如何用Go语言创建WebSocket服务
- runHiC分析HiC_seq数据
- 月桂酸异丙酯(IPL)行业调研报告 - 市场现状分析与发展前景预测
- 【loadrunner】——利用loadrunner进行压力测试
- 计算机知识科普策划方案,中国科普博览--中国优秀文化网站、全国优秀科普网站...
- 笔记-动物病理(3:脱水)
- CF手游自动挂机刷擎天觉醒魂(1)
- 说说淘宝和中小卖家的未来
- 《Insect pest image detection and recognition based on bio-inspired methods》翻译
热门文章
- 【错误记录】Mac 中 IntelliJ IDEA 运行 Python 程序报错 ( pip 21.0 will drop support for Python 2.7 in January 20 )
- 【错误记录】发布 Flutter 插件包报错 ( It‘s strongly recommended to include a “homepage“ or “repository“ field )
- 【OkHttp】Android 项目导入 OkHttp ( 配置依赖 | 配置 networkSecurityConfig | 配置 ViewBinding | 代码示例 )
- 【Kotlin】变量简介 ( 可空类型 | lateinit | 初始化判定 | 非空类型 | !! 与 ? 修饰符 | ?= ?. ?: 运算符 | 抽象属性变量)
- 数据方面高可用方案简单总结
- 四种Sandcastle方法生成c#.net帮助类帮助文档
- 《从paxos到zookeeper》学习笔记(一)
- 十一.安装Redis
- 关于ionic的跨域问题
- Java 8 简明教程