配置
配置时间 | 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
- 配置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
操作检验
$ 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
问题及解决方案
出现这个警告是由于Hadoop的库文件是在32bit环境下编译的,解决方式是下载对应版本的Hadoop源码,并在本机器上编译即可,该警告不影响Hadoop功能。
出现这个问题可能是由于DataNode连接问题,尝试以下两个操作:
1 编辑**/etc/hosts**文件并将配置中使用的主机名IP地址写入该文件
2 删除Hadoop的**tmp**文件夹,尝试重启并格式化Namenode
这个问题在该URL中提出过,这也是我解决这个问题的思路。是由于把输入文件放在了/tmp路径下,导致中间结果也被当做输入读取,且Hadoop无法读取多层目录的输入,因此出错。