Map/Reduce开发环境
最近,在Mac上折腾了下,想搭建一个hadoop的测试环境,用于写一些Map/Reduce的sample,下面就先将搭建环境的过程记录下来。 1. hadoop 单机搭建 1.1 确认java环境已经安装 在terminal里再次键入java -version,出现如下信息: 1.2 安装SSH 首先,输入 ssh-ke
最近,在Mac上折腾了下,想搭建一个hadoop的测试环境,用于写一些Map/Reduce的sample,下面就先将搭建环境的过程记录下来。
1. hadoop 单机搭建
1.1 确认java环境已经安装
在terminal里再次键入”java -version”,出现如下信息:
1.2 安装SSH
首先,输入 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免登陆设置完成。然后输入 ssh localhost 查看下即可
1.3 下载hadoop压缩包
1.4 hadoop-env.sh脚本文件,设置如下环境变量:
export JAVA_HOME=/usr/alibaba/java
export HADOOP_INSTALL=/Users/metaboy/project/hadoop/hadoop-1.0.4/
export PATH=$PATH:$HADOOP_INSTALL/bin
export HADOOP_OPTS=”-Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk”
1.5 core-site.xml文件,配置hdfs的地址和端口号:
fs.default.name
hdfs://localhost:9000
hadoop.tmp.dir
/Users/metaboy/project/hadoop/hadoop-1.0.4/tmp
A base for other temporary directories.
1.6 mapred-site.xml文件,设置map-reduce中jobtracker的地址和端口号:
mapred.job.tracker
localhost:9001
mapred.local.dir
/Users/metaboy/project/hadoop/hadoop-1.0.4/tmp/mapred/local
mapred.system.dir
/Users/metaboy/project/hadoop/hadoop-1.0.4/tmp/mapred/system
1.7 最后是hdfs-site.xml文件,设置hdfs的默认备份方式:
默认值是3,在伪分布式系统中,需要修改为1。
dfs.replication
1
dfs.permissions
false
dfs.data.dir
/Users/metaboy/project/hadoop/hadoop-1.0.4/tmp/hdfs/data
dfs.name.dir
/Users/metaboy/project/hadoop/hadoop-1.0.4/tmp/hdfs/name
1.8 格式化namenode
在terminal里输入如下命令:
bin/Hadoop NameNode -format
1.9 启动
在terminal里输入如下命令:
bin/start-all.sh
1.10 测试是否正常
如果一切正常的话,会在http://localhost:50030和http://localhost:50070分别看到map-reduce和hdfs的相关信息。
2. hadoop eclipse 插件编译
2.1 导入hadoop的eclipse-plugin的工程
用hadoop提供的文件自行编译,导入hadoop的eclipse-plugin文件夹.打开eclipse,在File菜单中选择Import.
2.2 导入后,在项目中新建lib目录,并复制jar文件
在项目中新建lib目录,并将hadoop安装根目录的hadoop-core-1.0.4.jar文件,lib目录中的commons-cli-1.2.jar、commons-configuration-1.6.jar、commons-httpclient-3.0.1.jar、commons-lang-2.4.jar、jackson-core-asl-1.8.8.jar、jackson-mapper-asl-1.8.8.jar文件复制到新建的目录中。复制完成后,将新建目录中的hadoop-core-1.0.4.jar文件名改为hadoop-core.jar 。
2.3 修改hadoop-1.0.4/src/contrib目录的build-contrib.xml文件
找到
并在该行下面添加以下两行内容。
eclipse.home是指eclipse的安装目录,需要替换为你自己的安装路径。
version的值要替换为hadoop的版本号。
2.4 修改MapReduceTools项目下的build.xml文件
打开build.xml文件,在文件中搜索name=”jar” ,找到的代码段并加上
–>
–>
jarfile=”${build.dir}/hadoop-${name}-${version}.jar”
manifest=”${root}/META-INF/MANIFEST.MF”]]>
2.5 在build.xml文件中查找
2.6 在文件中搜索
2.7 修改 Bundle-ClassPath
使用编辑器打开META-INF文件夹中的MANIFEST.MF文件,在文件中搜索Bundle-ClassPath,可以看到该行内容如下:
Bundle-ClassPath: classes/,
lib/hadoop-core.jar,lib/commons-cli-1.2.jar,lib/commons-httpclient-3.0.1.jar,lib/jackson-core-asl-1.8.8.jar,lib/jackson-mapper-asl-1.8.8.jar,lib/commons-configuration-1.6.jar,lib/commons-lang-2.4.jar
2.8 用ant开始编译
保存build.xml文件后,在build.xml文件上点击右键,并选择Run As -> Ant Build
2.9 安装插件
编译后的plugin文件会保存在hadoop-1.0.4/build/contrib/eclipse-plugin文件夹中,文件名为hadoop-eclipse-plugin-1.0.4.jar 。
将该文件复制到eclipse安装目录的plugins文件夹下,并重启eclipse。
2.10 测试
在eclipse的window菜单中选择Show View -> Other,在Show View窗口中选择MapReduce Tools下的Map/Reduce Locations,点击OK
问题记录:
1. An internal error occurred during: “Connecting to DFS localhost”.
详细信息如下:
java.lang.NoClassDefFoundError: org/codehaus/jackson/map/JsonMappingException
找到刚才添加的lib目录下的几个jar文件,分别解压,然后通过betterzip将这些字节码分别添加到classes下面
问题2:Call to localhost/127.0.0.1:9000 failed on connection exception: java.net.ConnectException
使用jps发现NameNode进程没有正确运行。解决的办法就是先停止服务,然后重新格式化namenode。
bin/hadoop namenode -format
重新启动后,运行该插件无问题
问题3:Unable to load realm info from SCDynamicStore
这个问题是hadoop官方的一个bug,详细bug介绍可以参考这个链接:https://issues.apache.org/jira/browse/HADOOP-7489
一般在是当start-all.sh 的时候,会抛出这样的异常:
Unable to load realm info from SCDynamicStore
网络上有一种解决方法,解决单机部署还行,对于伪分布式部署还是不行:
就是在hadoop-env.sh文件中加上这一行:
export HADOOP_OPTS=”-Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk”
(意思是设置启动hadoop时设定相关的JVM参数)
~~~EOF~~~
原文地址:Map/Reduce开发环境, 感谢原作者分享。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 AI 지원 프로그래밍 도구는 급속한 AI 개발 단계에서 유용한 AI 지원 프로그래밍 도구를 많이 발굴했습니다. AI 지원 프로그래밍 도구는 개발 효율성을 높이고, 코드 품질을 향상시키며, 버그 발생률을 줄일 수 있습니다. 이는 현대 소프트웨어 개발 프로세스에서 중요한 보조자입니다. 오늘 Dayao는 4가지 AI 지원 프로그래밍 도구(모두 C# 언어 지원)를 공유하겠습니다. 이 도구가 모든 사람에게 도움이 되기를 바랍니다. https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot은 더 빠르고 적은 노력으로 코드를 작성하는 데 도움이 되는 AI 코딩 도우미이므로 문제 해결과 협업에 더 집중할 수 있습니다. 힘내

최근 일부 친구들이 음성 메시지를 텍스트로 자동 변환하도록 WeChat Mac을 설정하는 방법에 대해 편집자에게 문의했습니다. 다음은 음성 메시지를 텍스트로 자동 변환하도록 WeChat Mac을 설정하는 방법입니다. 1단계: 먼저, Mac 버전의 WeChat을 엽니다. 그림에 표시된 대로: 2단계: 다음으로 "설정"을 클릭합니다. 그림에 표시된 대로: 3단계: 그런 다음 "일반"을 클릭합니다. 그림에 표시된 대로: 4단계: 그런 다음 "채팅 음성 메시지를 텍스트로 자동 변환" 옵션을 선택합니다. 그림과 같이: 5단계: 마지막으로 창을 닫습니다. 그림과 같이:

Go 언어 개발 모바일 애플리케이션 튜토리얼 모바일 애플리케이션 시장이 지속적으로 성장함에 따라 점점 더 많은 개발자가 Go 언어를 사용하여 모바일 애플리케이션을 개발하는 방법을 모색하기 시작했습니다. 간단하고 효율적인 프로그래밍 언어인 Go 언어는 모바일 애플리케이션 개발에서도 강력한 잠재력을 보여주었습니다. 이 기사에서는 Go 언어를 사용하여 모바일 애플리케이션을 개발하는 방법을 자세히 소개하고 독자가 빠르게 시작하고 자신의 모바일 애플리케이션 개발을 시작할 수 있도록 특정 코드 예제를 첨부합니다. 1. 준비 시작하기 전에 개발 환경과 도구를 준비해야 합니다. 머리

기본적으로 iPhone은 카메라에서 HEIC 형식으로 사진을 찍습니다. HEIC는 고효율 이미지 컨테이너(High Efficiency Image Container)를 의미하며 PNG 또는 JPG 파일보다 더 많은 픽셀 데이터를 저장할 수 있어 다른 형식에 비해 iPhone 저장 공간을 훨씬 적게 차지합니다. 이러한 파일은 iPhone에서 가장 잘 작동하지만 Apple 이외의 장치와 공유할 때 사진이 흐리거나 거친 결과를 낳는 경우가 많기 때문에 인터넷에서는 널리 받아들여지지 않습니다. HEIC 이미지가 다른 장치에서 호환되는지 확인하려면 해당 이미지를 JPG 형식으로 변환해야 할 수도 있습니다. 이 기사에서는 Mac에서 HEIC 이미지를 JPG로 변환하는 방법을 소개합니다. Mac에서 HEIC 사진을 JPG로 변환하는 방법 [3가지 방법]

세계 최초의 AI 프로그래머 데빈(Devin)이 태어난 지 한 달도 채 안 된 2022년 3월 3일, 프린스턴 대학의 NLP팀은 오픈소스 AI 프로그래머 SWE-에이전트를 개발했습니다. GPT-4 모델을 활용하여 GitHub 리포지토리의 문제를 자동으로 해결합니다. SWE-bench 테스트 세트에서 SWE-agent의 성능은 Devin과 유사하며 평균 93초가 걸리고 문제의 12.29%를 해결합니다. SWE-agent는 전용 터미널과 상호 작용하여 파일 내용을 열고 검색하고, 자동 구문 검사를 사용하고, 특정 줄을 편집하고, 테스트를 작성 및 실행할 수 있습니다. (참고: 위 내용은 원문 내용을 약간 조정한 것이지만 원문의 핵심 정보는 그대로 유지되며 지정된 단어 수 제한을 초과하지 않습니다.) SWE-A

친구 여러분, WeChat Mac에 Moments를 게시하는 방법을 알고 계시나요? 오늘은 WeChat Mac에 Moments를 게시하는 방법을 설명하겠습니다. 관심이 있으시면 저와 함께 살펴보시기 바랍니다. 1단계: WeChat을 연 후 왼쪽에 있는 Moments 버튼을 클릭하세요. 2단계: 다음으로, 오른쪽 상단에 있는 카메라 버튼을 클릭하세요. 3단계: 보내려는 텍스트 내용을 입력합니다. 4단계: 다음으로 시청할 수 있는 사람을 클릭합니다. 5단계: 팝업 상자에서 표시 가능한 조건을 선택하고 확인을 클릭합니다. 6단계: 마지막으로 게시 버튼을 클릭합니다.

Mac 시스템의 드라이브를 포맷하는 것은 올바른 작동을 위해 매우 중요합니다. 다양한 시스템 문제를 방지하고 Mac을 전반적으로 더욱 안정적으로 만드는 데 도움이 됩니다. Mac은 당연히 다양한 파티션 구성표를 지원하지만 GUID는 다른 옵션에 비해 더 현대적이고 다양한 기능을 제공합니다. 또한 최신 Mac에 필수적이며 더 큰 드라이브를 지원하여 최고의 호환성과 안정성을 제공합니다. 이 가이드에서는 macOS에서 GUID를 사용하여 드라이브를 포맷하는 방법을 자세히 살펴봅니다. 즉, 시작합시다. macOS 설치에 GUID가 중요한 이유 GUID(Globally Unique Identifier의 전체 형식)는 macOS 운영 체제를 설치하고 실행하는 데 도움이 되는 파티션 구성표입니다. 기존 MBR(주요 리드)보다 낫습니다.

Apple M4 기반 OLED iPad Prolineup이 출시된 이후 Apple Silicon 애호가들은 Mac 라인업에 M4 SoC가 출시되기를 간절히 기다리고 있었습니다. M4는 컴퓨팅 및 그래픽 성능 모두에서 의심할 여지 없이 큰 도약을 이루었습니다.
