写在开头:之前搭建hadoop的开发环境的时候,可以算是花了很多的经历,网上的方法都是新建一个用户,导致现在我再要使用的时候,需要将环境重新搭建,所有就写了这篇博客,记录一下第二次搭建hadoop开发环境的过程。
准备工作:1.Ubuntu Linux14.04系统
2.Eclipse4.5.2
3.hadoop1.0.4
4.hadoop1.0.4-eclipse插件
5.jdk7(version 1.7)
Hadoop环境搭建
单机环境搭建
安装java
1.下载Java开发包,解压到/usr/local文件中
2.配置环境变量
- #打开环境变量配置文件
- sudo vim /etc/profile
- #在文件中添加
- export JAVA_HOME=/usr/local/java/jdk1.7.0_79(具体路径按照你自己安装配置)
- export JRE_HOME=$JAVA_HOME/jre
- export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
- export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$TOMCAT_HOME/bin
- #保存文件
- ESC+:wq(vim基本操作)
- #使修改生效
- source /etc/profile
- #打开用户主目录下.bashrc文件
- vim ~/.bashrc
- #在文件中添加
- source /etc/profile
- #目的:.bashrc每次打开终端都会自动执行,source /etc/profile会在每次打开终端时,自动执行
- #判断是否修改成功
- java -version
- #如果输出时java-1.7说明修改成功,如果是openjdk那么需要用到使用其他命令修改其优先级,网上有,之后再补充
安装ssh服务
1.安装ssh
- 由于Hadoop用ssh通信,先安装ssh
- sudo apt-get install openssh-server
- ssh安装完成以后,先启动服务:
- sudo /etc/init.d/ssh start
- 启动后,可以通过如下命令查看服务是否正确启动:
- ps -e | grep ssh
2.配置ssh免密码登录
- sudo ssh-keygen -t rsa -P ""
- #因为我已有私钥,所以会提示是否覆盖当前私钥。第一次操作时会提示输入密码,按Enter直接过,这时会在~/home/{username}/.ssh下生成两个文件:id_rsa和id_rsa.pub,前者为私钥,后者为公钥,现在我们将公钥追加到authorized_keys中(authorized_keys用于保存所有允许以当前用户身份登录到ssh客户端用户的公钥内容):
- cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- #现在可以登入ssh确认以后登录时不用输入密码:
- ssh localhost
- #退出
- exit
安装Hadoop1.0.4(单机环境搭建)
1.下载hadoop-1.0.4压缩包,解压到/usr/local
2.配置环境变量
- #解压
- cd /usr/local
- sudo tar -zxvf hadoop-1.0.4.tar.gz
- #修改hadoop文件的owner和group,lrh:lrh是我的电脑上的主用户和所属组,你改成自己的即可
- sudo chown -R lrh:lrh /usr/local/hadoop-1.0.4/
- #类似与java环境变量配置,打开/etc/profile,
- export HADOOP_HOME=/usr/local/hadoop-1.0.4
- export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
- #使修改生效
- source /etc/profile
- #检验是否成功
- hadoop version
3.测试单机环境搭建是否成功
伪分布式环境搭建
设置*-site文件的内容
1.新建文件夹
- #在hadoop目录下新建几个文件夹
- mkdir tmp
- mkdir hdfs
- mkdir hdfs/name
- mkdir hdfs/data
2.修改文件内容
修改/usr/local/hadoop-1.0.4/conf文件夹下的core-site.xml,hdfs-site.xml,mapred-site.xml文件
- core-site.xml:
-
- <configuration>
- <property>
- <name>fs.default.name</name>
- <value>hdfs://localhost:9000</value>
- </property>
- <property>
- <name>hadoop.tmp.dir</name>
- <value>/usr/local/hadoop-1.0.4/tmp</value>
- </property>
- </configuration>
-
- hdfs-site.xml:
-
- <configuration>
- <property>
- <name>dfs.replication</name>
- <value>1</value>
- </property>
- <property>
- <name>dfs.name.dir</name>
- <value>/usr/local/hadoop-1.0.4/hdfs/name</value>
- </property>
- <property>
- <name>dfs.data.dir</name>
- <value>/usr/local/hadoop-1.0.4/hdfs/data</value>
- </property>
- </configuration>
-
- mapred-site.xml:
-
- <configuration>
- <property>
- <name>mapred.job.tracker</name>
- <value>localhost:9001</value>
- </property>
- </configuration>
格式化hdfs
- hadoop namenode -format
启动hadoop
- #启动hadoop
- start-all.sh
- #然后查看进程
- jps
补充:我遇到的问题
1.说我JAVA_HOME没有值
解决方法:打开hadoop安装目录下的conf/hadoop-env.sh在文件最后添加export JAVA_HOME=/usr/local/java/jdk_1.7.0_79(根据你自己的机器设置)
2.datanode启动失败
解决方法:对于没有报错的查看启动日志,安装目录下的logs文件夹中
可以发现是文件权限问题
之后就成功了
那一串长的我也不知道是啥,先不管
查看hadoop集群的状态
浏览器输入下面的地址
http://localhost:50030/ - Hadoop 管理介面
http://localhost:50060/ - Hadoop Task Tracker 状态
http://localhost:50070/ - Hadoop DFS 状态
三个界面都差不多,出现了说明就成功了。
注意点:1.我们构建的是hadoop集群,
@H_111_403@ @H_497_404@Eclipse环境搭建
2.hadoop集群中使用的文件系统是hdfs,节点node相当于逻辑主机,datanode放数据,namenode放元数据,就是控制信息
3.hdfs在linux下是看不见的,想对其操作需要学会使用hdfs有关的命令,比如:
hadoop dfs -mkdir//创建文件夹
map/reduce是分布式编程模型
4.hadoop namenode -format只能使用一次,如果使用多次了,namenode会启动失败,解决办法是清空tmp文件夹中的内容,原因是每次执行的时候这句的时候,会给namenode分配一个标记号,记录在tmp中,多次执行,会有多个标记,就会报错下载安装eclipse
eclips版本下载,我用的是eclipse4.5.2(Mars),也可以使用eclipse4.4(Luna)都可以使用,具体安装很简单,这边就不说了,请自行百度
配置eclipse-hadoop开发环境
1.下载eclipse-hadoop插件,要对应hadoop版本找插件,我使用的hadoop1.0.4,提供一个插件,可以用的
2.上面这个文件是jar文件,直接复制到eclipse安装目录下的plugins文件夹下,如果是文件夹,则把文件夹下的feature和plugins文件夹分别复制到eclipse对于的文件夹下
3.启动eclipse,就可以看到eclipse集成hadoop开发环境成功
配置eclipse开发环境
1.依照上图打开Map/Reduce视图
打开Windows—Open Perspective—Other
选择Map/Reduce,点击OK
通过Open Perspective菜单打开Map Reduce视图
2.配置hadoop根路径
依次点击window->preference,然后左边栏选择hadoop,配置根路径比如/usr/local/hadoop-1.0.4
3.配置Map/Reduce Locations
在右下方看到如下图所示
点击Map/Reduce Location选项卡,
点击右边小象图标,打开Hadoop Location配置窗口:输入Location Name,任意名称即可.配置Map/Reduce Master和DFS Mastrer,Host和Port配置成与core-site.xml的设置一致即可。
4.查看是否成功
上面就是成功的
下面就是失败的
出错也不怕,因为已经成功95%了,对照错误去改就行了连接的时候要保证hadoop的服务开着,也就是jps命令之后,namenode啥的全都在运行
@H_111_403@