CentOS 6.5 配置hadoop 2.6.0伪分布式

Linux就该这么学

操作系统:CentOS 6.5    32位

Java环境:jdk 1.7.0_71 

hadoop下载地址:http://apache.fayea.com/hadoop/common/stable/hadoop-2.6.0.tar.gz

1.创建用户组和用户

使用su命令切换用户为root

 

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 

  1. groupadd hadoop  
  2. useradd hadoop hadoop  
  3. passwd  hadoop  #为用户添加密码   可以不设置密码  

 

2.安装ssh

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 

  1. rpm -qa |grep ssh  #检查是否装了SSH包  
  2. yum install openssh-server  # 安装ssh  
  3. chkconfig --list sshd #检查SSHD是否设置为开机启动  
  4. chkconfig --level 2345 sshd on  #如果没设置启动就设置下.  
  5. service sshd restart  #重新启动  

3.配置ssh无密码登录

切换至hadoop用户

 

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 

  1. su hadoop  

生成密钥

 

 

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 

  1. ssh-keygen -t rsa -P ""  

执行后会在.ssh目录下生成id_rsa和id_rsa.pub两个文件

 

进入.ssh目录,并将id_rsa.pub追加到authorized_keys文件中

 

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 

  1. cd ./.ssh  
  2. cat id_rsa.pub >> authorized_keys   
  3. chmod 600 authorized_keys # 修改用户权限  

 

测试是否可以登录

 

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 

  1. ssh localhost  # 执行后会提示输入 yes or no. 输入yes后 如果提示为最后一次登录时间 则表明成功。  

4.安装hadoop

 

将下载的hadoop解压并移动到期望的安装目录,修改其访问权限

 

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 

  1. tar -xvf hadoop-2.6.0.tar.gz  
  2. mv hadoop-2.6.0 /usr/opt/hadoop  
  3. chmod -R 775 /usr/opt/hadoop  
  4. chown -R hadoop:hadoop /usr/opt/hadoop  

配置hadoop 的环境变量(所有的环境变量都是必须的)

 

 

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 

  1. su  
  2. vim /etc/profile  
  3. export HADOOP_INSTALL=/usr/opt/hadoop  
  4. export PATH=${HADOOP_INSTALL}/bin:${HADOOP_INSTALL}/sbin${PATH}  
  5. export HADOOP_MAPRED_HOME=${HADOOP_INSTALL}  
  6. export HADOOP_COMMON_HOME=${HADOOP_INSTALL}  
  7. export HADOOP_HDFS_HOME=${HADOOP_INSTALL}  
  8. export YARN_HOME=${HADOOP_INSTALLL}  
  9. export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_INSTALL}/lib/natvie    
  10. export HADOOP_OPTS="-Djava.library.path=${HADOOP_INSTALL}/lib:${HADOOP_INSTALL}/lib/native"  

设置hadoop-env.sh中的java环境变量

 

 

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 

  1. cd /usr/opt/hadoop  
  2. vim ./etc/hadoop/hadoop-env.sh   
[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 

  1. export JAVA_HOME= {你的java环境变量}  

 

5.配置伪分布式

hadoop的配置文件主要有core-site.xml  、 hdfs-site.xml 、 yarn-site.xml 三个文件。

 

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 

  1. cd /usr/opt/hadoop/etc/hadoop  


 

core-site.xml

 

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 

  1. <configuration>  
  2.     <property>  
  3.         <name>hadoop.tmp.dir</name>  
  4.         <value>/usr/opt/hadoop/tmp</value>  <!--一定要配置  系统默认的缓存文件夹在每次重启后会被删除-->  
  5.     </property>  
  6.     <property>  
  7.         <name>fs.defaultFS</name>  
  8.         <value>hdfs://localhost:9000</value>  
  9.     </property>  
  10. </configuration>  



hdfs.xml

 

 

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 

  1. <configuration>    
  2. <property>    
  3.         <name>dfs.replication</name>    
  4.         <value>1</value>    
  5.     </property>    
  6.     <property>    
  7.         <name>dfs.namenode.name.dir</name>    
  8.         <value>file:/usr/opt/hadoop/dfs/name</value>    
  9.     </property>    
  10.     <property>    
  11.         <name>dfs.datanode.data.dir</name>    
  12.         <value>file:/usr/opt/hadoop/dfs/data</value>    
  13.     </property>    
  14.     <property>                 <!--这个属性节点是为了防止后面eclipse存在拒绝读写设置的 -->   
  15.             <name>dfs.permissions</name>    
  16.             <value>false</value>    
  17.      </property>    
  18.  </configuration>    



yarn-site.xml

 

 

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 

  1. <configuration>  
  2. <property>  
  3. <name>mapreduce.framework.name</name>  
  4. <value>yarn</value>  
  5. </property>  
  6.   
  7. <property>  
  8. <name>yarn.nodemanager.aux-services</name>  
  9. <value>mapreduce_shuffle</value>  
  10. </property>  
  11. </configuration>  



接下来创建需要的文件夹

 

 

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 

  1. cd /usr/local/hadoop  
  2. mkdir tmp dfs dfs/name dfs/data  

 

 

到目前为止所有的配置都已经完成。

 

6.运行

首先格式化文件系统

 

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 

  1. .bin/hdfs namenode -format   

启动

 

 

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 

  1. ./sbin/start-dfs.sh  
  2. ./sbin/start-yarn.sh  



提示如下则表明成功了。

 

 

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 

  1. Starting namenodes on [localhost]  
  2. localhost: starting namenode, logging to /usr/opt/hadoop-2.6.0/logs/hadoop-hadoop-namenode-.out  
  3. localhost: starting datanode, logging to /usr/opt/hadoop-2.6.0/logs/hadoop-hadoop-datanode-.out  
  4. Starting secondary namenodes [0.0.0.0]  
  5. 0.0.0.0: starting secondarynamenode, logging to /usr/opt/hadoop-2.6.0/logs/hadoop-hadoop-secondarynamenode-.out  

输入网址127.0.0.1:50070就可以看见hadoop的网页了。

 

PS :如果出现警告提示:

 

 

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 

  1. Unable to load native-hadoop library for your platform  

也可以看到那个网页,但hadoop并没有完全装好。

 

出现这个问题有两种情况:

一、没有设置HADOOP_OPTS这个环境变量

二、是操作系统与hadoop.so文件不兼容导致的。

hadoop 2.5以后的release版本都是64位编译的,如果自己的电脑是32位的就出现不兼容的情况。这时需要重新编译hadoop源码(编译hadoop源码时,不要使用jdk1.8.0,使用1.6和1.7就可以了,不然会报这个错误[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.8.1:jar (module-javadocs) on project hadoop-annotations: MavenReportException: Error while creating archive ):

本文由 CentOS中文站 - 专注Linux技术 作者:centos 发表,其版权均为 CentOS中文站 - 专注Linux技术 所有,文章内容系作者个人观点,不代表 CentOS中文站 - 专注Linux技术 对观点赞同或支持。如需转载,请注明文章来源。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注