hadoop

环境介绍:

在两台装有centos6.4(32位)的服务器上安装Hadoop-2.5.1分布式集群(2台机器,主要试验用,哈哈)。


1.修改主机名和/etc/hosts文件

1)修改主机名(非必要)

[plain]  view plain  copy
  1. vi /etc/sysconfig/network  
  2. HOSTNAME=XXX  

重启后生效。

2)/etc/hosts是ip地址和其对应主机名文件,使机器知道ip和主机名对应关系,格式如下:

[plain]  view plain  copy
  1. #IPAddress HostName  
  2. 192.168.1.67 MasterServer  
  3. 192.168.1.241 SlaveServer  


2.配置免密码登陆SSH

1)生成密钥:

[plain]  view plain  copy
  1. ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa  
以上是两个单引号。

2)将id_dsa.pub(公钥)追加到授权的key中:

[plain]  view plain  copy
  1. cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys  

3)将认证文件复制到其它节点上:

[plain]  view plain  copy
  1. scp ~/.ssh/authorized_keys hadooper@192.168.1.241:~/.ssh/  

4)测试:

[plain]  view plain  copy
  1. ssh SlaveServer  

第一次要确认连接,输入yes即可。

但我的仍要求输入密码,原因是.ssh和authorized_keys权限不对,具体见:http://blog.csdn.net/hwwn2009/article/details/39852457


3.各节点上安装jdk
1)选择的版本是
jdk-6u27-linux-i586.bin,下载地址:http://pan.baidu.com/s/1mgICcFA
2)上传到hadooper用户目录下,添加执行权限

[plain]  view plain  copy
  1. chmod 777 jdk-6u27-linux-i586.bin  
3 安装

[plain]  view plain  copy
  1. ./jdk-6u27-linux-i586.bin  
4 配置环境变量:vi /etc/profile加入以下三行
[plain]  view plain  copy
  1. #JAVA_HOME  
  2. export JAVA_HOME=/usr/lib/jvm/jdk1.6/jdk1.6.0_27  
  3. export PATH=$JAVA_HOME/bin:$PATH  
5 执行source /etc/profile使环境变量的配置生效
6 执行java –version查看jdk版本,验证是否成功。


4. Hadoop安装

每台节点都要安装hadoop。上传hadoop-2.5.1.tar.gz到用户hadooper目录下。

1)解压

[plain]  view plain  copy
  1. tar -zvxf hadoop-2.5.1.tar.gz  
2)添加环境变量:vi  /etc/profile,尾部添加如下
[plain]  view plain  copy
  1. export HADOOP_HOME=/home/hadooper/hadoop/hadoop-2.5.1  
  2. export HADOOP_COMMON_HOME=$HADOOP_HOME  
  3. export HADOOP_HDFS_HOME=$HADOOP_HOME  
  4. export HADOOP_MAPRED_HOME=$HADOOP_HOME  
  5. export HADOOP_YARN_HOME=$HADOOP_HOME  
  6. export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop  
  7.   
  8. export CLASSPATH=.:$JAVA_HOME/lib:$HADOOP_HOME/lib:$CLASSPATH  
  9. export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH  
设置立即生效:

[plain]  view plain  copy
  1. source /etc/profile  
3)修改Hadoop配置文件

(1)core-site.xml

[plain]  view plain  copy
  1. <property>  
  2.     <name>fs.defaultFS</name>  
  3.     <value>hdfs://MasterServer:9000</value>  
  4. </property>  

(2)hdfs-site.xml 

[plain]  view plain  copy
  1. <property>  
  2.     <name>dfs.replication</name>  #值不应大于datanode数量  
  3.     <value>1</value>  
  4.  </property>  
[plain]  view plain  copy
  1. <property>  
  2.   <name>dfs.namenode.name.dir</name>         #设置分布式文件系统存放于/home/hadooper/hadoop/dfs 的本地目录  
  3.   <value>/home/hadooper/hadoop/dfs/name</value>  
  4.   <description>  </description>  
  5. </property>  
  6.   
  7. <property>  
  8.   <name>dfs.datanode.data.dir</name>  
  9.   <value>/home/hadooper/hadoop/dfs/data</value>  
  10.   <description> </description>  
  11. </property>  
  12.     
  13. <property>  
  14.   <name>dfs.webhdfs.enabled</name>  
  15.   <value>true</value>  
  16. </property>    
注:访问namenode的hdfs使用50070端口,访问datanode的webhdfs使用50075端口。要想不区分端口,直接使用namenode的IP和端口进行所有的webhdfs操作,就需要在所有的datanode上都设置hdfs-site.xml中的dfs.webhdfs.enabled为true。

(3)mapred-site.xml

[plain]  view plain  copy
  1. <property>  
  2.     <name>mapreduce.framework.name</name>  
  3.     <value>yarn</value>  
  4.  </property>  
  5.  <property>  
  6.     <name>mapreduce.jobhistory.address</name>  
  7.     <value>MasterServer:10020</value>  
  8.  </property>  
  9.  <property>  
  10.   <name>mapreduce.jobhistory.webapp.address</name>  
  11.   <value>MasterServer:19888</value>  
  12.  </property><span style="font-family: Arial, Helvetica, sans-serif;">         </span>  

jobhistory是Hadoop自带了一个历史服务器,记录Mapreduce历史作业。默认情况下,jobhistory没有启动,可用以下命令启动:

[plain]  view plain  copy
  1. sbin/mr-jobhistory-daemon.sh start historyserver  
(4)yarn-site.xml

[plain]  view plain  copy
  1. <property>    
  2.    <name>yarn.nodemanager.aux-services</name>    
  3.    <value>mapreduce_shuffle</value>    
  4. </property>    
  5. <property>    
  6.    <name>yarn.resourcemanager.address</name>    
  7.    <value>MasterServer:8032</value>    
  8. </property>    
  9. <property>    
  10.    <name>yarn.resourcemanager.scheduler.address</name>    
  11.    <value>MasterServer:8030</value>    
  12. </property>    
  13. <property>    
  14.    <name>yarn.resourcemanager.resource-tracker.address</name>    
  15.    <value>MasterServer:8031</value>    
  16. </property>    
  17. <property>    
  18.    <name>yarn.resourcemanager.admin.address</name>    
  19.    <value>MasterServer:8033</value>    
  20. </property>    
  21. <property>    
  22.    <name>yarn.resourcemanager.webapp.address</name>    
  23.    <value>MasterServer:8088</value>    
  24. </property>    

(5)slaves

[plain]  view plain  copy
  1. SlaveServer  
(6)分别在hadoop-env.sh和yarn-env.sh中添加JAVA_HOME

[plain]  view plain  copy
  1. export JAVA_HOME=/usr/lib/jvm/jdk1.6/jdk1.6.0_27  


5.运行Hadoop

1)格式化

[plain]  view plain  copy
  1. hdfs namenode –format  
2)启动Hadoop

[plain]  view plain  copy
  1. start-dfs.sh   
  2. start-yarn.sh  
也可以用一条命令:

[plain]  view plain  copy
  1. start-all.sh  
3)停止Hadoop

[plain]  view plain  copy
  1. stop-all.sh  
4)jps查看进程

[plain]  view plain  copy
  1. 7692 ResourceManager  
  2. 8428 JobHistoryServer  
  3. 7348 NameNode  
  4. 14874 Jps  
  5. 7539 SecondaryNameNode  
5)通过浏览器查看集群运行状态

(1)http://192.168.1.67:50070


(2)http://192.168.1.67:8088/


(3)http://192.168.1.67:19888



6. 运行Hadoop自带的wordcount示例

1)建立输入文件:

[plain]  view plain  copy
  1. echo "My first hadoop example. Hello Hadoop in input. " > input  
2)建立目录

[plain]  view plain  copy
  1. hadoop fs -mkdir /user/hadooper  
3)上传文件

[plain]  view plain  copy
  1. hadoop fs -put input /user/hadooper  
4)执行wordcount程序
[plain]  view plain  copy
  1. hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.1.jar wordcount /user/hadooper/input /user/hadooper/output  
5)查看结果

[plain]  view plain  copy
  1. hadoop fs -cat /user/hadooper/output/part-r-00000  
[plain]  view plain  copy
  1. Hadoop  1  
  2. My  1  
  3. example.Hello   1  
  4. first   1  
  5. hadoop  1  
  6. in  1  
  7. input.  1  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值