前言
声明
我所有参考的文章,均在我的简书中已标明参考链接出处。
Mac系统。(当然其他的系统也可以参考,区别并不大。)
Hadoop2.8.1
homebrew
eclipse
相关的插件
最近在学习Hadoop,在搭建环境当中遇到了一些问题,如今总算是解决了,花了不少时间,毕竟万事开头难嘛,现在也有一些了解了。在此,我将记录下我遇到的所有的问题以及搭建的所有详细过程,以此帮助需要的朋友。
准备
homebrew下载:
用homebrew下载可以自动为此配置系统环境,是Mac系统不可或缺的下载神器,但就是它的镜像在国外,所以有时下载会非常慢,甚至于没有动静。若是下载太慢,可以参考这篇文章
- homebrew下载之后打开终端,输入
brew install Hadoop
,开始自动下载Hadoop,我的是Hadoop2.8.1版本。homebrew下载到的目录(如图)
- Hadoop-eclipse-plugin2.7.3.jar插件,见我的百度云下载 。实际上这个插件对于Hadoop2.8.1版本同样适用,本人已经用此搭建环境成功。当然,如果你有强迫症之类的可以见我的百度云下载2.7.3版本 ,这个版本已经在官网查找不到了,实际上经过我的测试这个对应的版本问题多多..
- GitHub上的Hadoop-eclipse-plugin2.X.jar插件,见我的百度云下载
- eclipse下载。自行去官网解决吧。
- 声明
以上的插件资源来自此处
开始Hadoop的伪分布式配置
配置ssh
- 打开
系统偏好设置
–>共享
–>远程登录
–>所有用户
(如图)
- 配置ssh
即为免密码输入的繁琐过程的配置
打开终端,输入 ssh localhost
是否以前有过配置,没有的话 输入ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
回车至可以输入下一行命令行,输入 cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys
,再次输入验证 ssh localhost
,发现不需要密码输入了(如图)
配置Hadoop伪分布式
找到下面所有需要的配置文件
Finder
–>hadoop2.8.1
–>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="
`
打开 yarn-env.sh
在下面添加YARN_OPTS="$YARN_OPTS -Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk"
`
打开 core-site.xml
添加配置如下:
` <configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>`
如图:
其中端口号:
9000
的对应以下的用eclipse搭建Hadoop时的窗口连接的DFS Master Port
其中的
localhost
对应本机号,也可以自己根据需要设置
打开 hdfs-site.xml
添加配置如下:
`<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
`
因为是一台机伪分布式,
1
即可
打开 mapred-site.xml
,其中一般没有,需要将文件 mapred-site.xml.template
改为 mapred-site.xml
之后再进行配置过程
添加配置如下:
`
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapred.child.java.opts</name>
<value>-Xmx4096m</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
`
其中的
localhost
同样对应本机端,9001
默认端口号对应eclipse Hadoop环境搭建时的连接窗口中的Map/Reducr Master Port
,均可根据需要更改
打开 yarn-site.xml
添加配置如下:
`
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
`
启动过程
打开终端,先将目录对应到Hadoop2.8.1安装目录
cd /usr/local/Cellar/hadoop/2.8.1/sbin
格式化 HDFS
若是以前有过Hadoop启动,清除 rm -rf /tmp/hadoop-tanjiti
格式化 hadoop namenode -format
- 启动
|
|
- 输入
jps
,查看是否部署伪分布式成功(如图)
- 在想要关闭Hadoop可以如下输入推出
|
|
配置Hadoop伪分布式介绍结束,开始eclipse的Hadoop开发环境搭建,这是一个折磨人的过程,我花了一天时间终于建好(比较幸运了..)。记录在下
- 再次声明,在我的简书均已声明来处,同时感谢那一些默默分享的人们。
eclipse搭建Hadoop开发环境
配置好需要的前提
参考:参考
进行以下过程前提: 在Hadoop端打开的情况下进行连接开发
将下载好的插件放入eclipse的
plugin
目录文件夹(如图1,图2),之后重新打开eclipse之后,打开eclipsepreferences
偏好设置可以看到插件(如图3)图1
- 图2
- 图3
- 对应自己的Hadoop下载地址(如图)
- 打开窗口端添加
Map/Reduce
窗口(如图)
右键添加 DFS Locations 连接配置(如图1,图2)
图1
图2
其中
Localtion name
随意两边的端口号根据我上方提到的,可以根据需要自行更改
- 若是有文件夹出现(如图),表示连接成功
如果是文件显示为0,不要慌张,这是需要自己来增加文件的(如图1)增加文件,注意,并且在在每一次创建文件要自行刷新(如图2),也大大避免了运行命令行的繁琐过程,增加一个
user
文件夹(如图3),在user
下增加一个hadoop
文件夹,在hadoop
下增加一个input
文件夹,在其下并且导入安装Hadoop目录中的README.txt
文件(如图4,图5)。注意,许多教程中说的output
文件夹是不需要自行增加的,是系统在运行结果出来后自行创建的,这是一个坑
- 图1
- 图2
- 图3
- 图4
- 图5
最终效果:
建立一个Hadoop项目
如图1,图2,图3
图1
- 图2
名字随意取
- 图3
在这个项目下像建立一个java工程一样建立一个Hadoop工程名为
WorkCount
文件(如图1),并且自行配置导入所有的Hadoop的包(如图2,图3),包得要自行导入了,这个是比较麻烦一点,但是毕竟一个项目导入一次就一劳永逸啦~图1
- 图2
- 图3
- 之后效果如下
将Hadoop内的被修改过的文件与日志文件加入在工程下,即将配置过的文件与其中的日志文件加入到工程文件中的
src
目录下,否则会发生不必要的错误。如下图我是将整个的
Hadoop
目录(其中包括所有配置文件的哪个Hadoop文件夹)都加入在了src
目录下
- 效果如下
测试WorkCount例子
注意,工程命为
WorkCount
的前提下
- 在建立的工程中输入如下
|
|
配置参数
如图1,如图2,其中的参数配置,即机号,端口号,我们先前建立的
user
hadoop
input
一一对应,可以根据需要自行更改,其中的output
是结果出来以后自行创建的,并且记得要在每一次运行结果前更改output
为其他的不冲突的名字,比如output1
(如图3)图1
- 图2
- 图3
运行
- 点击运行刚刚配置好的参数配置运行(如图)
- 在系统自行创建的
output
的文件夹(看不到文件夹就如上刷新)下面的文件可以看到结果输出了(如图)
至此,环境搭建大功告成!!!期间没有像其他人遇到什么问题,不过虽然是迟早的事,不过也是在以后了,哈哈😹。
- GoodJ,可以开始安心学习Hadoop基础理论了🤓
在eclipse中直接读取Hadoop源码
- 参考我的这一篇文章
最后
提示
要记得在看不到文件时就刷新。
注意配置的字母多少与大小。
每一次在输出时要将参数中的
output
部分更改名字,以免冲突。
资源链接