hadoop2.4.0 伪分布安装配置
本帖最后由 pig2 于 2014-5-20 01:13 编辑问题导读:
1.如何判断格式化成功?
2.hadoop2.4启动方式是否发生变化?
3.hadoop2.4在配置方面是否有变化?
static/image/hrline/4.gif
包下载:hadoop2.4最新版本各种包下载
在折腾了一天多才弄好环境的烦躁下,中间遇到各种问题,网上搜索还没有结果,最终经过很多折腾终于搞定,我觉得我有必要自己写一篇关于hadoop的安装了。
-------------------------------------------------------------------------------------------------------------------
本人的准备工作,官网最新的java7u25(至少是java7,具体版本不记得了,是apt安装的openjdk-java),hadoop也是最新的2.4.0。
采用伪分布式模式,即hadoop将所有进程运行于同一台主机上,但此时Hadoop将使用分布式文件系统,而且各jobs也是由JobTracker服务管理的独立进程。同时,由于伪分布式的Hadoop集群只有一个节点,因此HDFS的块复制将限制为单个副本,其secondary-master和slave也都将运行于本地主机。此种模式除了并非真正意义的分布式之外,其程序执行逻辑完全类似于完全分布式,因此,常用于开发人员测试程序执行。
1,准备工作
切换为root用户
apt安装jdk,ssh
可以参考
hadoop2完全分布式最新高可靠安装文档
官网下载hadoop2.4.0,解压到/home/wbq/hadoop2.4.0
可以下载:hadoop2.4最新版本各种包下载
2,对于hadoop的配置
#vi etc/profile注意,这里说的etc不是hadoop文件夹下的那个,是用户根目录下的。在末尾添加:export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64export HADOOP_PREFIX=/home/wbq/hadoop-2.4.0export CLASSPATH=".:$JAVA_HOME/lib:$CLASSPATH"export PATH="$JAVA_HOME/:$HADOOP_PREFIX/bin:$PATH"export HADOOP_PREFIX PATH CLASSPATH
进入hadoop2.4.0文件夹,配置etc/hadoop中的文件。 hadoop-env.shexport JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64另外可选的添加上:export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_PREFIX}/lib/nativeexport HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib"core-site.xml,做如下配置:
fs.default.name hdfs://localhost:9000
dfs.namenode.name.dir file:/home/wbq/hadoop-2.4.0/dfs/name
dfs.datanode.data.dir file:/home/wbq/hadoop-2.4.0/dfs/data
hdfs-site.xml,做如下配置(系统默认文件保存3份,因伪分布模式,故改为1份):
dfs.replication 1
dfs.namenode.name.dir /home/wbq/hadoop-2.4.0/dfs/name
dfs.datanode.data.dir /home/wbq/hadoop-2.4.0/dfs/data
mapred-site.xml,做如下配置:
mapreduce.jobtracker.address
localhost:9001
这里2.4.0中没有这个文件,可以新建一个,或者直接修改mapred-site.xml.template
mapreduce.framework.nameyarn
yarn-site.xml,如下配置:
mapreduce.framework.name
yarn
yarn.nodemanager.aux-services
mapreduce_shuffle
3,ssh免密码登陆设置
ssh-keygen -t rsa -P ""然后一直回车即可
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
注意我这里用的root目录,不是傻逼呵呵的自己的用户名下的目录。
试一下ssh localhost要是能免密码登陆显示系统信息,就应该是对的。(这里有个输入密码环节,是系统的密码)
可以参考:
linux(ubuntu)无密码相互登录高可靠文档
4,开始配置
第一步:到hadoop2.4.0目录下
./bin/hadoop namenode –format格式化结点信息
最后一句出现shutting down什么玩意,中间没有warn或者fatal error应该就对了。
第二步:然后,开始sbin/start-all.sh.
新版本的hadoop其实不建议这么直接start-all,建议一步步来,神马start-dfs,然后在start-map,之类的,我觉得麻烦,就没试。
若是这里出现神马正在running,那么先执行一步stop-all.sh操作,在start-all。
还可能出现的是java神马class不行,没找到,或者让你每步都加载,这是javahome设置的问题,请仔细检查上面关于javahome的设置,是不是输错了。
还有可能出现permission denied权限不够,那就是你设置ssh登陆的问题我觉得可能是因为,上面我说的那种情况,你是在cat的时候,把密钥加载到了wbq的目录下,而不是root目录下,而wbq(用户名)又恰恰比起root来说权限不足,所以上面我说要从一开始就切换到root下执行过程。
这里要是出现好几个staring这个那个的,而且没有报错,估计就是对了。
测试一下状态吧,检查一下进程是否启动jps命令:出现大概是:
21567 SecondaryNameNode
21384 DataNode
21921 NodeManager
22167 Jps
21720 ResourceManager
21237 NameNode
然后再测试一下hadoop状态,./bin/hadoop dfsadmin -report,出现大概是:
DEPRECATED: Use of this script to execute hdfs command is deprecated.
Instead use the hdfs command for it.
14/05/02 10:50:35 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Configured Capacity: 31407177728 (29.25 GB)
Present Capacity: 23889055744 (22.25 GB)
DFS Remaining: 23889027072 (22.25 GB)
DFS Used: 28672 (28 KB)
DFS Used%: 0.00%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
balabala&……………………(省略)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00% Cache Remaining%: 0.00% Last contact: Fri May
02 10:50:35 CST 2014
这就应该是对的了。
高兴的时候到了!浏览器下http://localhost:50070 这是hdfs的页面
http://localhost:8088 hadoop进程管理页面
详细的文档,总结的很全面,关键是配置文件及免登录配置 mapred-site.xml这个文件中需要增加下面这项配置吗?
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property> wmj007 发表于 2014-6-11 18:24
mapred-site.xml这个文件中需要增加下面这项配置吗?
mapreduce.framework.name
楼主原文这里是这样写的,没怎么看明白,希望指导,谢谢!
mapred-site.xml,做如下配置:
mapreduce.jobtracker.address
localhost:9001
这里2.4.0中没有这个文件,可以新建一个,或者直接修改mapred-site.xml.template
mapreduce.framework.nameyarn
yarn-site.xml,如下配置:
mapreduce.framework.name
yarn
yarn.nodemanager.aux-services
mapreduce_shuffle
本帖最后由 hyj 于 2014-6-11 18:55 编辑
wmj007 发表于 2014-6-11 18:26
楼主原文这里是这样写的,没怎么看明白,希望指导,谢谢!
mapred-site.xml,做如下配置:
mapred-site.xml,做如下配置:
mapreduce.jobtracker.address
localhost:9001
转换成上面形式就可 <property>
<name>mapreduce.jobtracker.address</name>
<value>localhost:9001</value>
</property>
static/image/hrline/2.gif
这里2.4.0中没有这个文件,可以新建一个,或者直接修改mapred-site.xml.template
mapreduce.framework.nameyarn这里一样的道理
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
static/image/hrline/2.gif
yarn-site.xml,如下配置:
mapreduce.framework.name
yarn
yarn.nodemanager.aux-services
mapreduce_shuffle
这里也是一样的,可以自己转换
wmj007 发表于 2014-6-11 18:24
mapred-site.xml这个文件中需要增加下面这项配置吗?
mapreduce.framework.name
这个配置是需要的~ 非常的不错哦 按照说明,伪分布式部署成功,谢谢那
HADOOP_HDFS_HOME not found!
,这是什么情况??? enson16855 发表于 2014-6-24 09:58
这个配置是需要的~
HADOOP_HDFS_HOME not found!
,这是什么情况???