安装hadoop
---恢复内容开始---
一.CentOS的设置:
1.用户名:hadoop
2.密码:123456
3.root密码:123456
4.ip地址:192.168.119.180
5.本机目录:
/opt -- 父目录
/pt/softwares -- 存放软件安装包目录
/opt/modules -- 存放软件的安装目录
/opt/tools -- 存储工具目录(Eclipse等)
/opt/data -- 存储一些测试数据
/home/hadoop -- 存储工具盒数据目录
二.CentOS安装jdk(安装目录是:/usr/java)
1.查看系统java
[root@hadoop hadoop]$ java –version:
java version "1.7.0_09-icedtea"
OpenJDK Runtime Environment (rhel-2.3.4.1.el6_3-x86_64)
OpenJDK 64-Bit Server VM (build 23.2-b09, mixed mode)2.进一步查看jdk信息
[root@hadoop hadoop]:[root@hadoop hadoop]# rpm -qa | grep java:
tzdata-java-2012j-1.el6.noarch
java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64
java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_643.卸载OpenJDK:
[root@hadoop hadoop]# rpm -e --nodeps tzdata-java-2012j-1.el6.noarch
[root@hadoop hadoop]# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64
[root@hadoop hadoop]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_644.上传新的jdk-6u45-linux-x64.bin软件到/home/hadoop/opt/modules:
[root@hadoop local]# chmod u+x jdk-6u45-linux-x64.bin
[root@hadoop local]# ./jdk-6u45-linux-x64.bin
5.配置环境变量
[root@hadoop hadoop]#vim + /etc/profile:
在文件最后加:{ JAVA_HOME=/usr/java/jdk1.7.0
JRE_HOME=/usr/java/jdk1.7.0/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH}
[root@admin local]# source /etc/profile //使修改立即生效6.验证jdk安装成功
[root@hadoop hadoop]# java –version:
java version "1.7.0_15"
Java(TM) SE Runtime Environment (build 1.7.0_15-b03)
Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)
三.hadoop单机模式的安装(安装目录:/home/hadoop/opt/modules)
1.hadoop1.2.1的解压
[root@hadoop softwares]# tar zxvf hadoop-1.2.1.tar.gz
2.移动到modules文件夹内
[root@hadoop softwares]# mv hadoop-1.2.1.tar.gz /home/hadoop/opt/modules
3.修改环境变量
[root@hadoop modules]# vim /etc/profile
在文件最后加:{ ##HADOOP
export HADOOP_HOEM=/home/hadoop/opt/modules/hadoop-1.2.1
export PATH=$PATH:/home/hadoop/opt/modules/hadoop-1.2.1/bin
}
[root@hadoop modules]# source /etc/profile
4.测试 [root@hadoop ~]# hadoop:
Usage: hadoop [--config confdir] COMMAND
where COMMAND is one of:5.配置hadoop:
[root@hadoop modules]# cd /home/hadoop/opt/modules/hadoop-1.2.1/conf
[root@hadoop conf]# vim hadoop-env.sh
把java路径改为{ export JAVA_HOEM=/usr/java/jdk1.7.0_15 }
6.hadoop测试程序(程序为:在input目录中.xml文件名中的【a-z】的个数):
(1).创建input目录:[root@hadoop data]# mkdir input
(2).复制一些文件在input中:[root@hadoop data]# cp /home/hadoop/opt/modules/hadoop-1.2.1/conf/*.xml /home/hadoop/opt/data/input
(3).运行程序:[root@hadoop hadoop-1.2.1]# hadoop jar hadoop-examples-1.2.1.jar grep /home/hadoop/opt/data/input/ /home/hadoop/opt/data/output/ 'dfs[a-z.]+'
出现:
(4).查看/hadoop/opt/data/output/中part-00000文件:[root@hadoop output]# more part-00000
出现: 1 dfsadmin(就运行成功了)。
运行程序中出现的错误:
java.ioExcption 原因:自己创建了output目录忘记错误情况了,解决方法:修改 /etc/hosts文件([root@hadoop output]# vim /etc/hosts):
四.hadoop伪分布式安装
1.关闭防火墙及SElinux:
(1).查看防火墙:[root@hadoop hadoop]# service iptables status
(2).永久关闭防火墙:[root@hadoop hadoop]# chkconfig --level 35 iptables off
(3).暂时关闭防火墙:[root@hadoop hadoop]# service iptables stop
(4).暂时打开防火墙:[root@hadoop hadoop]# service iptables start
(5).配置selinux::[root@hadoop hadoop]# vim /etc/sysconfig/selinux:修改后如下图:
2.设置静态ip地址:
[root@hadoop output]# more /etc/sysconfig/network-scripts/ifcfg-eth0
3.修改hostname与本地DNS配置(修改host文件):
[root@hadoop output]# hostname hadoop
编辑 /etc/hosts文件:[root@hadoop hadoop]# vim /etc/hosts 修改后如下图所示:
4.设置ssh自动登录:
首先配置ssh:[hadoop@hadoop ~]$ ssh-keygen -t rsassh-keygen -t rsa(若已经配置过,则需要先删除: [hadoop@hadoop ~]$ rm -rf .ssh/)
进入.ssh/文件夹内:[hadoop@hadoop ~]$ cd .ssh/
由于其权限太高,所以:[hadoop@hadoop .ssh]$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
然后配置用户:[hadoop@hadoop .ssh]$ ssh localhost
如上依次配置 hadoop hadoop.dragon.org 用户:
[hadoop@hadoop .ssh]$ ssh hadoop.dragon.org
[hadoop@hadoop .ssh]$ ssh hadoop
之后查看 ./ssh 中 known_hosts 文件:[hadoop@hadoop .ssh]$ more known_hosts
6.安装hadoop:
(1).hadoop的解压,安装和配置环境变量和上面hadoop单机模式一样。
在进行(2)时,使用UE的FTP模式:最先发现不能保存文件?
解决问题方法:
1.网上搜索发现ftp(文本传输协议),发现要在centos下配置ftp权限:于是根据 http://www.cnblogs.com/xiongpq/p/3384759.html 配置了ftp
2.第一步完成后发现还是不能保存,后来发现UE添加ftp帐号用的用户名是:Hadoop,而要修改文件权限不够,后来把UE中ftp帐号改为:root ,然后就好了。
(2).让Hadoop用户通过sudo命令执行root用户相关命令(修改/etc/sudoers文件):
1.修改/etc/sudoers/文件必须使用 visudo 命令进行修改。(visudo命令可以修改文件并且查看你是否有语法错误。之前未使用该命令修改,结果使得文件有语法错误,最后无法改掉。只得重新装了一次系统。)
[root@hadoop bin]# visudo /etc/sudoers
在
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
后 添加:
Hadoop ALL=(ALL) ALL
如下图:
(3).修改 hadoop-1.2.1中conf目录下的一些文件(使用UE修改):core-size.xml hdfs-site.xml mapred-site.xml hadoop-env.sh
1. hadoop-env.sh文件(修改hadoop中默认java目录,和单机模式一样):
2. core-size.xml文件:
代码解释:
<property> --指定NameNode主机名与端口号
<name>fs.default.name</name>
<value>hdfs://hadoop.dragon.org:9000</value>
</property><property> --Hadoop.tmp目录
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/opt/data/tmp</value>
</property>
3.hdfs-site.xml文件:
代码解释:
<property> --设置HDFS副本数
<name>dfs.replication</name>
<value>1</value>
</property><property> --是否进行权限检查
<name>dfs.permissions</name>
<value>false</value>
</property>
4.mapred-site.xml文件:
代码解释:
<property> --设置JobTracker的主机名与端口号
<name>mapred.job.tracker</name>
<value>hadoop.dragon.org:9001</value>
</property>
5.slaves文件(DataNode的主机名):
6.masters文件(SecondaryNameNode的主机名):
(4).格式化一些文件(使用 $ hadoop namenode -format命令):
出现错误:
Google后解决方法:
刚才使用UE修改文件时编码格式有误,后来用UE转换编码格式为UTF-8后好了
好了后再次输入命令:[hadoop@hadoop bin]$ hadoop namenode –format 出现:
(5).使用一些命令:
1.[hadoop@hadoop bin]$ start-dfs.sh
出现错误:
权限不够
Google后解决方法:修改权限
1.修改hadoop目录的权限:
[root@hadoop modules]# sudo chown -R hadoop /home/hadoop/opt/modules/hadoop-1.2.1
[root@hadoop modules]# sudo chmod -R 755 /home/hadoop/opt/modules/hadoop-1.2.1
2.修改hdfs的权限:
[root@hadoop modules]# sudo /home/hadoop/opt/modules/hadoop-1.2.1/bin/hadoop dfs -chmod -R 755
[root@hadoop modules]# sudo /home/hadoop/opt/modules/hadoop-1.2.1/bin/hadoop dfs –ls
改好后输入命令:[hadoop@hadoop bin]$ start-dfs.sh 出现:
在浏览器中输入:192.168.119.180:50070 查看namenode及整个分布式文件系统的状态:
也可以输入:hadoop.dragon.org:50070 查看:这样就必须修改 windows的hosts文件,使得IP地址:192.168.119.180 指向 hadoop.dragon.org :
---恢复内容结束---