1-Hadoop环境配置

配置

配置时间2015年5月5日
操作系统Mint-16,64bit
Hadoop版本2.2.0
安装模式单机伪分布式

步骤

  • 安装JAVA

    • 下载安装JAVA —— Open-JDK 1.7 64bit

    • 设置环境变量

    • 使用java -version命令验证JAVA安装是否成功

$ sudo vi /etc/profile

#在文件结尾添加以下四个路径
export JAVA_HOME=/usr/lib/jdk/jdk1.7.0_51

export JRE_HOME=/usr/lib/jdk/jdk1.7.0_51/jre

export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

#更新文件内容
$ source /etc/profile

《1-Hadoop环境配置》 java -Version

  • 配置SSH免密码登录
#创建RSA密钥对并复制公钥到钥匙串authorized_keys即可

$ ssh-keygen -t rsa -P "" 

$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys 

$ ssh localhost
  • Hadoop下载
$ wget https://archive.apache.org/dist/hadoop/core/hadoop-2.2.0/hadoop-2.2.0.tar.gz 

$ tar -xvzf hadoop-2.2.0.tar.gz

$ sudo mv hadoop-2.2.0/ /usr/

$ chmod 777 -R hadoop-2.2.0/
  • Hadoop配置
$ cd /usr/hadoop-2.2.0/etc/hadoop

hadoop-env.sh yarn-env.sh 添加JDK路径

$ vi hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64

$ vi yarn-env.sh
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64

hdfs-site.xml HDFS配置

<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/zhy/hdfs/name</value>
        <final>true</final>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/zhy/hdfs/data</value>
        <final>true</final>
    </property>  
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

core-site.xml 配置Namenode

<configuration>
<property>
    <name>fs.default.name</name>
    <value>hdfs://node:8020</value>
    <final>true</final>
</property>
</configuration>

mapred-site.xml MapReduce设置

<configuration>
    <property>  
        <name>mapreduce.framework.name</name>  
        <value>yarn</value>  
    </property>  

    <property>  
        <name>mapred.system.dir</name>  
        <value>file:/home/zhy/hadoop/mapred/system</value>  
        <final>true</final>  
    </property>  

    <property>  
        <name>mapred.local.dir</name>  
        <value>file:/home/zhy/hadoop/mapred/local</value>  
        <final>true</final>  
    </property>
</configuration>

yarn-site.xml Yarn资源管理配置

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
</configuration>

slaves保存所有slave节点的主机名或IP地址;
/etc/hostname 保证主机名和其他节点中主机名一致;
/etc/hosts 主机名和IP地址的映射关系,这里只需要添加本机

$ vi slaves
node

$ vi /etc/hosts
node 172.20.10.6

  • 验证Hadoop安装配置

格式化Namenode

hdfs namenode -format

启动HDFS和Yarn

$ cd /usr/hadoop-2.2.0/sbin/

$ ./hadoop-daemon.sh start namenode

$ ./hadoop-daemon.sh start datanode

$ ./yarn-daemon.sh  start resourcemanager

$ ./yarn-daemon.sh  start nodemanager

#简单命令启动
$ ./start-dfs.sh

$ ./start-yarn.sh

#简单但废弃的启动命令
$ ./start-all.sh

使用jps查看进程启动是否成功

 $ jps

《1-Hadoop环境配置》 jps 命令结果

操作检验

$ hdfs dfs -ls /

$ hdfs dfs -mkdir  /home
 
$ hdfs dfs -put /usr/hadoop-2.2.0/LICENSE.txt  /home/hadoop/

其他操作

  • 关闭Hadoop
$ cd /usr/hadoop-2.2.0/sbin/

$ ./stop-yarn.sh

$ ./stop-dfs.sh

问题及解决方案

  • 《1-Hadoop环境配置》 Warning

出现这个警告是由于Hadoop的库文件是在32bit环境下编译的,解决方式是下载对应版本的Hadoop源码,并在本机器上编译即可,该警告不影响Hadoop功能。

  • 《1-Hadoop环境配置》 could only be replicated to 0 nodes error

出现这个问题可能是由于DataNode连接问题,尝试以下两个操作:

1 编辑**/etc/hosts**文件并将配置中使用的主机名IP地址写入该文件

2 删除Hadoop的**tmp**文件夹,尝试重启并格式化Namenode
  • 《1-Hadoop环境配置》 path is not a file error

这个问题在该URL中提出过,这也是我解决这个问题的思路。是由于把输入文件放在了/tmp路径下,导致中间结果也被当做输入读取,且Hadoop无法读取多层目录的输入,因此出错。

    原文作者:一只小青鸟
    原文地址: https://www.jianshu.com/p/e660e7adc66a
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞