ubuntu下hadoop环境配置
软件环境:
虚拟机:VMware Workstation 10
操作系统:ubuntu-12.04-desktop-amd64
JAVA版本:jdk-7u55-linux-x64
Hadoop版本:hadoop-1.2.1
Hadoop下载地址:http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-1.2.1/
选择hadoop-1.2.1.tar.gz这个
第一阶段:安装JDK
请参考上篇文章:http://www.cnblogs.com/madyina/p/3705520.html
第二阶段:创建Hadoop账户
呼出控制台,执行下面命令:
sudo adduser hadoop
然后要求你设置hadoop帐户密码,这个命令是添加一个名为hadoop的标准帐户,我们需要的是管理员帐号
可以直接在图形界面下修改hadoop权限,将鼠标点击右上角的一个人头处,浮现列表,点击“用户账户”,解锁,然后更改为管理员权限
然后就注销了当前用户,使用hadoop来登录吧。后续的操作都在这个账户下进行。
第三阶段:安装和配置SSH
呼出控制台,执行下面命令:
sudo apt-get install ssh
终端就会联网下载安装包并自行进行安装。安装完成后输入下面指令验证22端口是否打开:
netstat -nat
确定22端口是打开的,然后检查SSH安装正确否,输入
ssh localhost
输入当前用户名和密码按回车确认,说明安装成功,同时ssh登陆需要密码。
这种默认安装方式完后,默认配置文件是在/etc/ssh/目录下。sshd配置文件是:/etc/ssh/sshd_config
但是在Hadoop启动以后,Namenode是通过SSH(Secure Shell)来启动和停止各个datanode上的各种守护进程的,这就须要在节点之间执行指令的时候是不须要输入密码的形式,故我们须要配置SSH运用无密码公钥认证的形式。
接下来,在终端输入命令进入Hadoop账户目录:
cd /home/hadoop
再次输入:
ssh-keygen -t rsa
这个命令将为hadoop上的用户hadoop生成其密钥对,询问其保存路径时直接回车采用默认路径,当提示要为生成的密钥输入passphrase的时候,直接回车,也就是将其设定为空密码。生成的密钥对id_rsa,id_rsa.pub,默认存储在/home/hadoop/.ssh目录下然后将id_rsa.pub的内容复制到每个机器(也包括本机)的/home/dbrg/.ssh/authorized_keys文件中,如果机器上已经有authorized_keys这个文件了,就在文件末尾加上id_rsa.pub中的内容,如果没有authorized_keys这个文件,直接复制过去就行.)。
一路回车下来,将会看到类似下图的图案:
然后我们再次进入.ssh文件夹,然后将id_rsa.pub复制到authorized_keys文件,命令如下:
cd .ssh
cp id_rsa.pub authorized_keys
再次测试无密码登录
ssh localhost
当然也可以再测试下使用机器名无密码登录:
出现这个界面证明SSH安装成功!
第四阶段:安装Hadoop
将下载好的压缩包hadoop-1.2.1.tar.gz拖到桌面:
事实证明,得多拖几次才能进去。
然后再剪贴到DownLoads下面:
然后打开终端,输入ls列举当前目录,准备进入DownLoads目录将压缩包复制到指定目录下
cp hadoop-1.2.1.tar.gz /home/hadoop
然后执行授权指令,否则是解不了压缩的
chmod 700 /home/hadoop/hadoop-1.2.1.tar.gz
之后进行解压操作:
tar zxvf /home/hadoop/hadoop-1.2.1.tar.gz
接下来我们要配置hadoop的hadoop/conf下的hadoop-env.sh,core-site.xml,mapred-site.xml,hdfs-site.xml文件。
首先配置JAVA路径,执行下面指令:
gedit /home/hadoop/hadoop-1.2.1/conf/hadoop-env.sh
如果一切正确的话将会出现下面界面:
找到JAVA_HOME并配置为实际路径将前面的#去掉,如果出现的是一个空白界面,请重新解压并核实解压正确了没(下图为正确情况)
配置hadoop-1.2.1/conf/core-site.xml,输入命令:
gedit /home/hadoop/hadoop-1.2.1/conf/core-site.xml
在弹出来的文本编辑器中粘贴入:
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/hadoop-1.2.1/tmp</value> <description>A base for other temporary directories.</description> </property> </configuration>
这是hadoop核心配置文件之一,配置的是HDFS的地址和端口号。
配置hadoop-1.2.1/conf/mapre-site.xml,命令行:
gedit /home/hadoop/hadoop-1.2.1/conf/ mapre-site.xml
粘贴入:
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration>
这是Hadoop中MapReduce的配置文件,用来配置JobTracker的地址和端口。
配置hadoop-1.2.1/conf/hdfs-site.xml,输入命令:
gedit /home/hadoop/hadoop-1.2.1/conf/hdfs-site.xml
在弹出的文本编辑器中粘贴入:
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
这是HDFS的配置,配置备份方式为1,是单机版的配置。
当然这几个文件完全可以直接进入到目录下右键编辑方式修改,更准确快捷。
然后进入hadoop-1.2.1格式化hdfs文件系统,格式化一个新的分布式文件系统,命令为:
cd hadoop-1.2.1
bin/hadoop namenode –format
出现类似下面界面(注意这是无异常的界面)就说明成功:
然后启动hadoop服务:
bin/start-all.sh
可以通过jps,查看java虚拟机运行的java线程
不计jps,有3个hadoop相关线程,恭喜你,hadoop安装配置成功,运行正常。
然后可以退出hadoop。,以后再用时再启动,导入数据
bin/stop-all.sh
Hadoop测试
浏览NameNode和JobTracker的网络接口,它们的地址默认为:
NameNode - http://node3:50070/
JobTracker - http://node3:50030/