虚拟机VirtualBox 中 ubuntu13.04 安装Hadoop 集群
来源:互联网 发布:网络兼职信息网 编辑:程序博客网 时间:2024/05/16 14:40
最近在捣鼓云计算的东西,在虚拟机中装完OpenStack又捣鼓Hadoop,搞了半天,写下以方便后人吧。
1. 安装环境:
宿主机:MacOS(这个没什么要紧,windows一样可以完成)
虚拟机软件:VirtualBox
操作系统: 全部都为ubuntu13.04
网络环境:
主机名 IP cloud 192.168.3.1(内网,使用VirtualBOX inet) 192.168.1.201(外网,桥接无线网卡) master机器(主要的控制机器) network 192.168.3.2 (内网,使用VirtualBOX inet) 192.168.1.200(外网,桥接无线网卡) slave机器(1) compute 192.168.3.3(内网,使用VirtualBOX inet) slave机器(2)
这样原因是之前OpenStack建立的环境,懒得弄了,就使用原有网络环境了。所有的ip均为静态ip。
2. 安装java环境
之前看到别人写的都是sudo apt-get install sun-java6-....,事实上现在不好使了,因为sun被oracle收购了。
因此,前往http://www.oracle.com/technetwork/java/javase/downloads/index.html, 将java的jdk环境下下来。
可以在虚拟机内直接wget,也可以放到宿主机上再copy进去。Anyway, as you wish.
下下来后,我的文件名为:jdk-7u25-linux-x64.tar.gz, 存储在/home/username/jdk-7u25-linux-x64.tar.gz
接下来:
sudo mkdir /usr/lib/jvmsudo cp /home/username/jdk-7u25-linux-x64.tar.gz /usr/lib/jvm/sudo cd /usr/lib/jvm/sudo tar zxvf jdk-7u25-linux-x64.tar.gz这时候,/usr/lib/jvm/下就有了jdk的相关java环境文件,文件夹名: jdk1.7.0_25
设置JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_25export JRM_HOME=${JAVA_HOME}/jreexport PATH=${JAVA_HOME}/bin:$PATH将以上语句,放到/etc/profile 文件的最后。
运行 java -version,出现以下,则环境安装好了。
java version "1.7.0_25"Java(TM) SE Runtime Environment (build 1.7.0_25-b15)Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)
Note: ubuntu 的java环境,可能是openjdk,需要进行卸载。如果java -version出现错误,可以重启一下,即可。
2. 安装ssh
为什么要安装ssh?
事实上,Hadoop是一个集群运行环境,因此,需要多个机器同时运行来完成任务。这时候就需要有一台机器能够控制其他所有的机器。ssh成为了最好的工具。
但平常ssh的连接,总是会提示需要密码之类,因此,我们在这里需要为master机器和slave机器来配置连接的秘钥,保证机器之间的ssh顺畅无需密码之类。
2.1 建立公共帐户 hadoop以及其文件夹
sudo useradd hadoopsudo mkdir /home/hadoop
sudo chown hadoop -R /home/hadoopsudo chgrp hadoop -R /home/hadoop2.2 安装ssh
这里由于我在安装ubuntu时候,已经选择了安装openSSH Server, 因此ssh已经安装好。
没有的可以 sudo apt-get install ssh 来安装
2.3 建立配对的钥匙
这里我们使用hadoop用户,来创建钥匙
sudo su hadoopcd ~ssh-keygen -t rsa然后按照提示,一路回车,就会在/home/hadoop/.ssh/ 下声称密钥对:
id_rsa,id_rsa.pub
然后master机器上:
cp /home/hadoop/.ssh/id_rsa.pub authorized_keys如果本机上已经存在authorized_keys文件,则将id_rsa.pub的内容添加到authorized_keys最后。
接下来,将master机器上的authorized_keys, 复制到两台slave机器上:
前提:两台slave机器上,已经执行了2.1,2.2和2.3的以上步骤。
scp /home/hadoop/.ssh/authorized_keys 192.168.3.2:/home/hadoop/.ssh/authorized_keysscp /home/hadoop/.ssh/authorized_keys 192.168.3.3:/home/hadoop/.ssh/authorized_keys测试一下连接:
ssh localhost第一次连接会出现:
The authenticity of host ‘cloud (192.168.3.1)’ can’t be established.RSA key fingerprint is *****:******.Are you sure you want to continue connecting (yes/no)?这是第一次连接,需要存储一下known_hosts, 输入yes,未来就不会再询问。
同理可以测试一下2台slave机器的ssh连接:
ssh 192.168.3.2ssh 192.168.3.3如果未要求输入密码,则ssh安装成功。
Note:
测试ssh连接时,一定记得在hadoop用户下进行,即执行过sudu su hadoop来切换用户。
3. 安装Hadoop
前往http://hadoop.apache.org/ 下载一个Hadoop版本。
目前Hadoop的版本管理稍微显得有些混乱,建议如果会在生产环境下使用的话,使用Hadoop1.2.x版本来测试和搭建。
我下载后的版本是:hadoop-1.2.0-bin.tar.gz
以下在master 机器上操作:
3.1 解压Hadoop
Hadoop用户下操作:
cp /home/username/hadoop-1.2.0-bin.tar.gz /home/hadoop/cd /home/hadoop/tar zxvf hadoop-1.2.0-bin.tar.gzmv hadoop-1.2.0 hadoop即:将解压后的hadoop文件夹命名为hadoop.
3.2 增加Hadoop_HOME 环境变量
export HADOOP_HOME=/home/hadoop/hadoopexport PATH=${HADOOP_HOME}/bin:${JAVA_HOME}/bin:$PATH将以上语句放到/etc/profile中。注意PATH行是修改。
3.3 配置hosts环境
修改/etc/hosts, 增加:
192.168.3.1 cloud192.168.3.2 network192.168.3.3 compute请在两台slave机器上同样增加hosts设置
4. 配置Hadoop
现在可以开始配置Hadoop的几个配置文件了,所有的配置文件都在/home/hadoop/hadoop/conf 中
4.1 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://192.168.3.1:49000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/hadoop/tmp</value> </property></configuration>
4.2 mapred-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>192.168.3.1:49001</value> </property></configuration>
4.3 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>2</value> <!- 这里指定rep数,我们有2台机器,所以是2, 默认为3 --> </property> <property> <name>dfs.name.dir</name> <value>/home/hadoop/name1,/home/hadoop/name2</value> <description>Nothing</description> </property> <property> <name>dfs.data.dir</name> <value>/home/hadoop/data1,/home/hadoop/data2</value> <description>Nothing At All</description> </property></configuration>
4.4 hadoop-env.sh
该文件,主要是设置JAVA_HOME.
虽然在/etc/profile里已经设置过,但这里也需要有。
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_25
4.5 masters
该文件,指定master机的ip或者主机名。
192.168.3.1
4.6 slaves
该文件,指定slaves机的ip或者主机名
192.168.3.2192.168.3.3
一行一个。
至此,就基本完成了Hadoop在master机器上的配置。
那么接下来,将所有的东西从master机器上放到slave机器上
scp -r /home/hadoop/hadoop 192.168.3.2:/home/hadoopscp -r /home/hadoop/hadoop 192.168.3.3:/home/hadoop
这样,在slave机上就有相同配置了。
5. 启动Hadoop
5.1 初始化namenode
cd /home/hadoop/hadoopbin/hadoop namenode -formate
如果看到类似以下输出,则正确:
12/02/06 00:46:50 INFO namenode.NameNode:STARTUP_MSG:/************************************************************STARTUP_MSG: Starting NameNodeSTARTUP_MSG: host = ubuntu/127.0.1.1STARTUP_MSG: args = [-format]STARTUP_MSG: version = 0.20.203.0STARTUP_MSG: build =http://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20-security-203-r 1099333; compiled by 'oom' on Wed May 4 07:57:50 PDT 2011************************************************************/12/02/0600:46:50 INFO namenode.FSNamesystem: fsOwner=root,root12/02/06 00:46:50 INFO namenode.FSNamesystem:supergroup=supergroup12/02/06 00:46:50 INFO namenode.FSNamesystem:isPermissionEnabled=true12/02/06 00:46:50 INFO common.Storage: Imagefile of size 94 saved in 0 seconds.12/02/06 00:46:50 INFO common.Storage: Storagedirectory /opt/hadoop/hadoopfs/name1 has been successfully formatted.12/02/06 00:46:50 INFO common.Storage: Imagefile of size 94 saved in 0 seconds.12/02/06 00:46:50 INFO common.Storage: Storagedirectory /opt/hadoop/hadoopfs/name2 has been successfully formatted.12/02/06 00:46:50 INFO namenode.NameNode:SHUTDOWN_MSG:/************************************************************SHUTDOWN_MSG: Shutting down NameNode atv-jiwan-ubuntu-0/127.0.0.1************************************************************/
5.2 启动Hadoop
cd /home/hadoop/hadoopbin/start-all.sh如果看到以下信息,则正常启动:
starting namenode, logging to /home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-namenode-cloud.out192.168.3.3: starting datanode, logging to /home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-compute.out192.168.3.2: starting datanode, logging to /home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-Network.out192.168.3.1: starting secondarynamenode, logging to /home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-secondarynamenode-cloud.outstarting jobtracker, logging to /home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-jobtracker-cloud.out192.168.3.2: starting tasktracker, logging to /home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-Network.out192.168.3.3: starting tasktracker, logging to /home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-compute.out如果有问题,可以在以上提供的.log文件中查找问题所在。
使用 java的jps命令,可以在master机器上看到:
16032 NameNode16325 SecondaryNameNode16415 JobTracker
说明守护进程已开启。在slave机上也可以看到tasknode和datatracker守护进程在运行。
好了,就这么愉快的结束了。
- 虚拟机VirtualBox 中 ubuntu13.04 安装Hadoop 集群
- Ubuntu13.04安装Hadoop集群环境
- Virtualbox安装Ubuntu13.04并搭建Hadoop环境(单机模式+伪分布模式)
- Ubuntu13中Virtualbox(Vbox)的虚拟机访问USB设备
- VirtualBox安装CentOS 7虚拟机(集群)
- 安装配置Hadoop虚拟机集群
- Hadoop集群测试第一步:在虚拟机中安装Linux
- ubuntu13.04下安装Xen虚拟机
- VirtualBox中安装Ubuntu虚拟机
- Virtualbox虚拟机中安装ubuntu
- Hadoop 2.5.2分布式集群配置(VirtualBox虚拟机模拟)
- virtualbox虚拟机集群
- ubuntu10.04安装virtualbox虚拟机
- 虚拟机VirtualBox安装Ubuntu14.04
- VirtualBox中安装Ubuntu12.04/Ubuntu14.04虚拟机
- VirtualBox中安装Ubuntu12.04/Ubuntu14.04虚拟机
- VirtualBox中安装Ubuntu12.04/Ubuntu14.04虚拟机
- hadoop-2.5.1虚拟机上集群安装
- 初学dll
- Tomcat支持中文名和不区分大小写
- Vs2010+VB+SQL2008 DataSet
- 【js学习笔记-028】-- 对象的创建
- jave学习第三节代码
- 虚拟机VirtualBox 中 ubuntu13.04 安装Hadoop 集群
- [Oracle] expdp ORA-39006, ORA-39065 的解决办法
- 十进制与十六进制相互转换
- const static 的问题
- nginx中CPU亲和性源码解读
- 【netca错误】图形界面可以起来,但是netca起不来,报错。
- Entity Framework 4.1/4.3 之四(DBContext 之 1 DBContext 是谁)
- 【js学习笔记-029】-- 属性查询和设置
- linux mount (挂载命令)详解