配置Hadoop伪分布最简方案

来来往往配置了很多次了,每次总结的文件要用的时候都找不到。

本文仅仅是方便快速开发测试mapreduce程序而搭建Hadoop单机环境。

Hadoop官方下载地址:http://archive.apache.org/dist/hadoop/core/

1.在CentOs中安装拼音输入法:
su root
yum install "@Chinese Support"
exit
注销:System>Log Out 用户名
重新登录之后:System>Preferences>Input Method>选中Enable input method feature>
Use IBus>Input Method Preferences>选中Tab-Input Method>Select an input method>Chinese>add
------------------------------------------------------------------------------
2.安装jdk
su -
sh jdk...
cd /
#vim /etc/profile
在里面添加如下内容
export JAVA_HOME=/usr/java/jdk1.6.0_27
export JAVA_BIN=/usr/java/jdk1.6.0_27/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
要按esc进入命令模式,然后输入:wq
让/etc/profile文件修改后立即生效 ,可以使用如下命令:
 # . /etc/profile
注意: . 和 /etc/profile 有空格. 
检验:java -version
------------------------------------------------------------------------------
3.配置SSH
ssh-keygen -t rsa


------------------------------------------------------------------------------
4.配置hadoop
/usr/local目录下 mkdir hadoop
在usr/local/hadoop/下unzip hadoop-1.0.3.zip


配置Hadoop环境变量:(profile是全局变量,.bash_profile是私有变量)
su -
#vim /etc/profile
export HADOOP_INSTALL=/usr/local/hadoop/hadoop-1.0.3
export PATH=$PATH:$HADOOP_INSTALL/bin
给所有子目录操作权限:
[root@localhost ~]# chmod -R 777 /usr/local/hadoop
检验:hadoop version


1.给Hadoop配置jdk
打开usr/local/hadoop/hadoop-1.0.3/conf中的hadoop-env.sh配置hadoop的jdk:
export JAVA_HOME=/usr/java/jdk1.6.0_27


ifconfig,替换ip
2.配置core-site.xml
<configuration>
<property>  
     <name>fs.default.name</name>  
     <value>hdfs://192.168.40.130:9000/</value>
   </property>  
   <property>  
     <name>hadoop.tmp.dir</name>  
     <value>/usr/local/hadoop/hadooptmp</value>  
   </property> 
</configuration>


3.配置hdfs-site.xml
<configuration>
<property>  
     <name>dfs.name.dir</name>  
     <value>/usr/local/hadoop/hdfs/name</value>  
  </property>  
  <property>  
     <name>dfs.data.dir</name>  
     <value>/usr/local/hadoop/hdfs/data</value>  
  </property>  
  <property>  
     <name>dfs.replication</name>  
     <value>1</value>  
  </property>

</configuration>



4.配置mapred-site.xml
<configuration>
<property>  
     <name>mapred.job.tracker</name>  
     <value>192.168.40.130:9001</value>  
  </property>  
  <property>  
     <name>mapred.local.dir</name>  
     <value>/usr/local/hadoop/mapred/local</value>  
  </property>  
  <property>  
     <name>mapred.system.dir</name>  
     <value>/tmp/hadoop/mapred/system</value>  
  </property>
</configuration>


5.配置masters和slaves
在/usr/local/hadoop/hadoop-1.0.3/conf/下中的masters文件和slaves文件,
将其中的localhost换成IP地址192.168.40.130


6.编辑主机名:# vim /etc/hosts
127.0.0.1                 localhost 
192.168.40.130            master 
192.168.40.130            slave 
按esc进入命令模式,然后输入:wq


7.格式化Hadoop
进入 /usr/local/hadoop/hadoop-1.0.3/bin目录下,格式化namenode 
[root@master bin]# hadoop namenode -format 


8.启动hadoop
进入 /usr/local/hadoop/hadoop-1.0.3/bin目录下,

使用创建用户启动Hadoop:执行start-all.sh命令 

启动完成后,可用jps命令查看hadoop进程是否启动完全。正常情况下应该有如下进程: 
29151 Jps
3106 SecondaryNameNode
3190 JobTracker
2846 NameNode
3306 TaskTracker
2960 DataNode 


查看节点:localhost:50070
查看job:localhost:50030
此时除了本机外,其他机器无法访问。设置防火墙(单机快速搭建环境,直接关闭防火墙比较好,否则涉及到的端口较多,需要全部设置)
System>Administration>FireWall>Disable



使用Eclipse插件遇到问题:

权限问题两种解决方案:

1.通过代码设置用户:http://heipark.iteye.com/blog/1178810

  1. UserGroupInformation ugi = UserGroupInformation.createRemoteUser("root");  
  2. try {  
  3.     ugi.doAs(new PrivilegedExceptionAction<Void>() {  
  4.         public Void run() throws IOException {  
  5.             Job job = new Job(initConf(), "tencent m/r");  
  6.             // do something  
  7.             System.exit(job.waitForCompletion(true) ? 0 : 1);  
  8.             return null;  
  9.         }  
  10.     });  
  11. catch (InterruptedException e) {  
  12.     e.printStackTrace();  
  13. }

2.编译插件(这是网上的方法,亲测没用,获得的用户还是本机用户,没具体看源码,改一下应该不难):

将hadoop-x.x.x/src/core/org/apache/hadoop/fs/FileUtil.java里面方法checkReturnValue的代码注释掉.

放到一个新项目中,包名一定要对应,编译,找到FileUtil.class,压缩文件管理器打开,覆盖源文件。


查看hdfs目录:
[root@master hadoop-1.0.3]# sh bin/hadoop fs -lsr /

[root@master conf]# hadoop fs -cat /tmp/hadoop/mapred/output/part-r-00000

上传文件:

[root@master hadoop-1.0.3]# sh bin/hadoop fs -put /home/duke147/data.txt /usr/local/hadoop/hadooptmp/mapred

Hadoop 解除 “Name node is in safe mode”
hadoop@hadoop-master:~$ hadoop dfsadmin -safemode leave
sudo -u hdfs hadoop dfsadmin -safemode leave
解决办法:(无权限操作就用这个命令)
切换到root下执行:sudo -u hdfs /bin/ksh
hdfs@:/root> sudo -u hdfs hadoop dfsadmin -safemode leave

安装过程中会有各种问题,总的解决方案:看日志。日志目录默认路径在Hadoop的安装环境下。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码上富贵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值