Hadoop-1.0.4 安装配置
Hadoop-1.0.4 安装配置
一、 安装VMware
本人使用的是11.1.2 build-2780323版本
不详细讲述。
二、 在VMware上安装ubuntu
本人使用的是ubuntu 14.10
(为了后续步骤的说明,本人在安装时的用户名、密码均定为hadoop)
开启虚拟机后,调整时间区域,调整系统语言(可选)
三、 克隆虚拟机
关掉虚拟机,在VMware中将安装好的ubuntu克隆出来,这里克隆出了两个当做slave。
四、 虚拟机设置
在VMware中打开“虚拟网络编辑器”,进行NAT设置(可以使用默认的设置,但要记住网关IP),一般情况下,我们习惯把网关设置为主机号为1的IP,如下图
然后进行DHCP设置(也可以默认不管),一般情况下,我们习惯把2~254的主机号分配出来,如下图
接下来为三台虚拟机配置静态IP
Master 192.168.171.128
Slave01 192.168.171.129
Slave02 192.168.171.130
系统设置—网络—选项,如下图
为了方便以后的命令操作,我们修改三台机器的hostname并对应各自IP(IP是王道,如果没有修改对应的hostname,可以使用其本质——IP)
(若机器没装vim,那么得先通过
sudo apt-get install vim
安装vim。当然,我们也可以直接使用默认安装的vi)
每台机器都
sudo vim /etc/hostname
分别将原有名称改为Master、Slave01、Slave02
重启生效
sudo reboot
然后每台机器都
sudo vim /etc/hosts
注释掉原来的127.0.0.1 ubuntu(用“#”进行注释)
加入
192.168.171.128 Master
192.168.171.129 Slave01
192.168.171.130 Slave02
五、 安装ssh
每台机器都
sudo apt-get install openssh-server
安装完成后可以通过
ssh hadoop@Master
或者ssh Master、ssh Slave01、ssh 192.168.171.130等等进行测试ssh登录
然后通过
exit
退出登录
此时登录是需要密码验证的。
六、 ssh无密钥登录
每台机器上都通过
ssh-keygen
然后一路回车得到各自的id_rsa.pub文件
在Slave01和Slave02上将各自的id_rsa.pub发到Master上
scp /home/hadoop/.ssh/id_rsa.pub hadoop@Master:~/.ssh/slave01.pub
scp /home/hadoop/.ssh/id_rsa.pub hadoop@Master:~/.ssh/slave02.pub
Then,在Master的/home/hadoop/.ssh目录中可以看到自己的id_rsa.pub以及Slave01和Slave02的slave01.pub和slave02.pub
然后,通过
cat id_rsa.pub >> authorized_keys
cat slave01.pub >> authorized_keys
cat slave02.pub >> authorized_keys
可以通过cat authorized_keys查看其内容
将authorized_keys发到Slave01和Slave02上
scp authorized_keys hadoop@Slave01:~/.ssh/
scp authorized_keys hadoop@Slave02:~/.ssh/
然后可以通过
ssh Slave01或者ssh Master测试登录,通过exit注销
此时已经不再需要密码验证了
再之后的操作可以全部在Master的终端中完成,顶多就是通过ssh Slave01等切换一下,而不必具体切换到另外的机器上。
(在安装JDK和hadoop前,先下载好相应的安装包。这里下载的是
jdk-8u60-linux-x64.tar.gz 和 hadoop-1.0.4-bin.tar.gz 放在/home/hadoop/Downloads目录中)
七、 安装JDK
在主目录(/home/hadoop)下创建Cloud目录
mkdir Cloud
在Downloads目录下解压jdk
cd Downloads
tar zxvf jdk-8u60-linux-x64.tar.gz
移动解压出来的jdk1.8.0_60文件夹
mv jdk1.8.0_60 ~/Cloud/
发送jdk1.8.0_60文件夹到Slave01/02
(有的机器可能还需要在Slave01/02上的主目录下创建Cloud目录,若是机器数量很多很多时,往往需要写shell语句完成以下操作)
cd ~/Cloud
scp -r jdk1.8.0_60 hadoop@Slave01:~/Cloud/ jdk1.8.0_60
scp -r jdk1.8.0_60 hadoop@Slave02:~/Cloud/ jdk1.8.0_60
每台机器再配置环境变量
sudo vim /etc/profile
(为了以后的操作,这里一次性把HADOOP_HOME变量也一起作了配置)
在profile文件末尾添加
export JAVA_HOME=/home/hadoop/Cloud/jdk1.8.0_60
export HADOOP_HOME=/home/hadoop/Cloud/hadoop-1.0.4
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HADOOP_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
弄完后可以通过java -version命令查看是否成功
八、 安装hadoop
在Downloads目录下解压hadoop-1.0.4-bin.tar.gz
cd ~/Downloads
tar zxvf hadoop-1.0.4-bin.tar.gz
移动hadoop-1.0.4文件夹
mv hadoop-1.0.4 ~/Cloud/
修改配置文件
cd ~/Cloud/hadoop-1.0.4/conf
***hadoop-env.sh***
vim hadoop-env.sh
(修改JAVA_HOME的值:
export JAVA_HOME=/home/hadoop/Cloud/jdk1.8.0_60)
***core-site.xml***
vim core-site.xml
(
<configuration>
<property>
<name>fs.default.name</name>
<!--最好不要用 localhsot,否则 Eclipse 插件会出问题 -->
<value>hdfs://192.168.171.128:9000</value>
</property>
<property>
<!--A base for other temporary directories(用来存储其他临时目录>的根目录) -->
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/Cloud/tmpdir</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
)
***mapred-site.xml***
vim mapred-site.xml
(
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hdfs://Master:9001</value>
</property>
</configuration>
)
***hdfs-site.xml***
vim hdfs-site.xml
(
<configuration>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<!--指定 namenode 存储文件系统元数据的目录 -->
<name>dfs.name.dir</name>
<value>/home/hadoop/Cloud/tmpdir/hdfs/name</value>
</property>
<property>
<!--指定 datanode 存储数据的目录 -->
<name>dfs.data.dir</name>
<value>/home/hadoop/Cloud/tmpdir/hdfs/data</value>
</property>
</configuration>
)
***masters***
vim masters
(
Master
)
***slaves***
vim slaves
(
Slave01
Slave02
)
将hadoop-1.0.4文件夹拷贝到Slave01/02上
scp –r hadoop-1.0.4 hadoop@Slave01:~/Cloud/hadoop-1.0.4
scp –r hadoop-1.0.4 hadoop@Slave02:~/Cloud/hadoop-1.0.4
在Master上格式化HDFS文件系统
$HADOOP_HOME/bin/hadoop namenode -format
九、 启动hadoop
$HADOOP_HOME/bin/start-all.sh
可用
jps
命令查看各节点是否正常启动
若正常启动,则
Master:
hadoop@Master:~$ jps
6130 SecondaryNameNode
5940 NameNode
6212 JobTracker
6812 Jps
Slave01/02:
4993 DataNode
5106 TaskTracker
6077 Jps
也可以在浏览器中打开以下地址查看状态
NameNode:
http://localhost:50070/
JobTracker:
http://localhost:50030/
十、 关闭所有节点
$HADOOP_HOME/bin/stop-all.sh