搭建hadoop环境
使用hadoop-1.2.1,基于vmware9,搭建hadoop环境
文件名称: 搭建hadoop-1.2.1环境20130820
1 安装操作系统
用vmware9、Linux debian7 iso,安装一个虚拟机,其hostname为vmDebA
2 安装sshd
安装操作系统时,已经安装了sshd
3 配置网络
1.1 机器vmDebA的网卡设为nat模式,网卡配置:
# file /etc/network/interfaces
auto lo
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet static
address 192.168.80.51
netmask 255.255.255.0
network 192.168.80.0
broadcast 192.168.80.255
gateway 192.168.80.2
1.2 dns配置
修改文件/etc/hosts内容为:
127.0.0.1 localhost
192.168.80.51 vmDebA
192.168.80.52 vmDebB
192.168.80.53 vmDebC
去掉开头为::1、ff02::1、ff02::2的三行
4 上传jdk安装文件
使用winscp将安装文件jdk-6u45-linux-i586.bin上传到vmDebA机器上
5 安装jdk
在机器vmDebA上,安装jdk-6u45-linux-i586.bin:
chmod uog+x /usr/jdk-6u45-linux-i586.bin
/usr/jdk-6u45-linux-i586.bin
6 设置环境变量
在机器vmDebA上,在/etc/profile的末尾添加:
JAVA_HOME=/usr/jdk1.6.0_45
PATH=$PATH:$JAVA_HOME/bin:/usr/hadoop/hadoop-1.2.1/bin
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:.:$CLASSPATH
export JAVA_HOME PATHCLASSPATH
hadoop会在下面安装
7 使环境变量生效
在机器vmDebA上,使环境变量生效:
source /etc/profile
或
reboot
8 配置无密码ssh
在机器vmDebA上,设置ssh为无密码
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cp ~/.ssh/id_dsa.pub ~/.ssh/authorized_keys
9 测试无密码ssh
测试下ssh是不是无密码登陆:
ssh localhost
ssh localhost
第一次需要输入yes,第二次以后可以直接登陆进入
10 上传hadoop安装文件
用winscp将hadoop-1.2.1.tar.gz上传到机器vmDebA上
11 安装hadoop
安装hadoop-1.2.1
mkdir /usr/hadoop
tar -zxvf /usr/hadoop-1.2.1.tar.gz -C /usr/hadoop/
12 约定
以下约定:
存在环境变量HADOOP_HOME,其值为/usr/hadoop/hadoop-1.2.1
存在环境变量HADOOP_FS,其值为/usr/hadoop/filesystem
存在环境变量HADOOP_MR,其值为/usr/hadoop/mapreduce
(事实上环境变量HADOOP_HOME、HADOOP_FS、HADOOP_MR在系统中不存在)
13 配置hadoop
配置安装hadoop-1.2.1
1) 修改文件HADOOP_HOME/conf/masters
内容改为:
vmDebA
2) 修改文件HADOOP_HOME/conf/slaves
内容改为:
vmDebB
vmDebC
3) 建立数据目录
mkdir -p /usr/hadoop/filesystem/name /usr/hadoop/filesystem/data
mkdir -p /usr/hadoop/mapreduce/system /usr/hadoop/mapreduce/local
4) 修改文件HADOOP_HOME/conf/core-site.xml
内容改为:
<?xml version="1.0"?>
<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>
<!-- Put site-specificproperty overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://vmDebA:9000</value>
</property>
</configuration>
在configuration节点下增加一个property节点即可
5) 修改文件HADOOP_HOME/conf/hdfs-site.xml
内容改为:
<?xmlversion="1.0"?>
<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>
<!-- Put site-specificproperty overrides in this file. -->
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/usr/hadoop/filesystem/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/hadoop/filesystem/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
在configuration节点下增加三个property节点即可
6) 修改文件HADOOP_HOME/conf/mapred-site.xml
内容改为:
<?xmlversion="1.0"?>
<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>
<!-- Put site-specificproperty overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>vmDebA:9001</value>
</property>
<property>
<name>mapred.tasktracker.map.tasks.maximum</name>
<value>4</value>
</property>
<property>
<name>mapred.tasktracker.reduce.tasks.maximum</name>
<value>4</value>
</property>
<property>
<name>mapred.system.dir</name>
<value>/usr/hadoop/mapreduce/system</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/usr/hadoop/mapreduce/local</value>
</property>
</configuration>
在configuration节点下增加五个property节点即可
14 克隆其余机器
使用vmware9的克隆虚拟机的功能,用vmDebA克隆出两个虚拟机vmDebB、vmDebC
15 配置其余机器的
1) 配置vmDebB、vmDebC的ip
修改/etc/network/interfaces,使得:
vmDebB的ip设置为192.168.80.52
vmDebC的ip设置为192.168.80.53
2) 配置vmDebB、vmDebC的主机名
在机器vmDebB上,修改的文件/etc/hostname内容为:
vmDebB
在机器vmDebC上,修改的文件/etc/hostname内容为:
vmDebC
16 环境搭建完成
启动vmDebA,重启vmDebB、vmDebC。
三台机器都启动好后,就可以按照20130822运行wordcount中写的步骤运行wordcount程序了