准备环境
准备多台虚拟机,并安装JDK环境
详见链接: 云服务器/本地虚拟机(Linux)安装JDK教程
多台虚拟机部分数据如下
编号 | 主机名 | 主机域名 | ip地址 |
① | Toozky | Toozky | 192.168.64.220 |
② | Toozky2 | Toozky2 | 192.168.64.221 |
③ | Toozky3 | Toozky3 | 192.168.64.222 |
设置ssh免密连接
详见链接: Linux虚拟机ssh免密连接
虚拟机①
将hadoop-1.2.1.tar.gz放到虚拟机①的/root目录(filezilla或WinSCP发送文件)
在虚拟机①中输入如下命令,解压hadoop文件
cd /root
tar -zxvf hadoop-1.2.1.tar.gz
修改配置
虚拟机①
以虚拟机①为NameNode
core-site.xml
在虚拟机①中输入
cd /root/hadoop-1.2.1/conf/
vi core-site.xml
按a或insert进入编辑,在configuration
标签中添加
<property>
<name>fs.default.name</name>
<value>hdfs://Toozky:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop1.2</value>
</property>
hdfs://Toozky:9000
意为指定①域名:9000作为系统网址
第二个property
标签的内容作用是指定格式化dfs系统的目录为/opt/hadoop1.2
按ESC退出编辑
输入:wq
保存退出
hdfs-site.xml
指定dfs主机的数量(DataNode的主机数)
cd /root/hadoop-1.2.1/conf/
vi core-site.xml
按a或insert进入编辑,在configuration
标签中添加
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<value>2</value>
2意为2个DataNode主机
hadoop-env.sh
添加JAVA环境变量(JDK目录)
cd /root/hadoop-1.2.1/conf/
vi hadoop-env.sh
按a或insert进入编辑,找到代码行# export JAVA_HOME=……
取消该行的注释,并修改为①的JDK目录
export JAVA_HOME=/root/jdk1.8.0_192
按ESC退出编辑
输入:wq
保存退出
slave
修改slave中的内容为虚拟机②、③的域名
cd /root/hadoop-1.2.1/conf/
vi slave
按a或insert进入编辑,清空文本,输入②、③的域名
Toozky2
Toozky3
按ESC退出编辑
输入:wq
保存退出
masters
指定 secondNameNode
注意:secondNameNode不能与NameNode主机一致! 下文指定虚拟机②为secondNameNode
cd /root/hadoop-1.2.1/conf/
vi masters
按a或insert进入编辑,清空文本,输入
Toozky2
此处填写的是②的域名
按ESC退出编辑
输入:wq
保存退出
profile
添加Hadoop环境变量
vi etc/profile
按G或insert进入编辑,光标移动到文末,按Enter另起一行输入
#Hadoop
export HADOOP_HOME=/home/hadoop1.2
export PATH=$PATH:$HADOOP_HOME/bin
按ESC退出编辑
输入:wq
保存退出
发送相关文件到虚拟机②、③
虚拟机①
发送hadoop目录到②、③
scp -r /root/hadoop-1.2.1 root@Toozky2:~/
scp -r /root/hadoop-1.2.1 root@Toozky3:~/
发送profile(环境变量)文件到②、③
scp /etc/profile root@Toozky2:/etc/profile
scp /etc/profile root@Toozky3:/etc/profile
虚拟机①、②、③
刷新/etc/profile
source /etc/profile
在虚拟机①、②、③中的家目录(\home)创建hadoop目录的软链接,并命名为hadoop1.2
①、②、③均执行该语句
ln -sf /root/hadoop-1.2.1 /home/hadoop1.2
关闭①、②、③的防火墙
关闭所有虚拟机的防火墙
永久关闭防火墙
chkconfig iptables off
临时关闭防火墙(重启失效)不推荐
service iptables stop
启动DFS系统
虚拟机①
格式化/opt/hadoop1.2目录
cd /home/hadoop1.2/bin
./hadoop namenode -format
启动DFS系统
cd /home/hadoop1.2/bin/
./start-dfs.sh
验证java进程
输入
jps
虚拟机①显示如图
虚拟机②
虚拟机③
测试上传文本文件
虚拟机①
创建test.txt文件并随意编辑一些文字
vi /root/test.txt
按a或insert进入编辑
输入
aaa
张三
123
按ESC退出编辑
输入:wq
保存退出
上传test.txt文件到DFS根目录
cd /home/hadoop1.2/bin/
./hadoop dfs -put /root/test.txt /
访问DFS系统
打开浏览器,地址栏输入虚拟机①的域名:50070
回车
效果如图
点击Browse the filesystem浏览文件列表
点击test.txt查看文件内容
补充和注意
作为NameNode的虚拟机(虚拟机①)关机时,需先关闭DFS,先进入hadoop的bin目录cd /home/hadoop1.2/bin/
关闭DFS./stop-dfs.sh
当格式化opt/hadoop失败时需要先关闭DFS,再将所有作为Node的虚拟机/opt/hadoop目录删除
重新格式化,进入hadoop的bin目录cd /home/hadoop1.2/bin
重新格式化./hadoop namenode -format
当Node进程启动异常时,注意排查是否已经关闭防火墙,以及配置/root/hadoop/conf/masters文件是否正确
当配置好Hadoop环境变量后,可在NameNode主机任意目录位置输入start-dfs.sh
启动DFS,stop-dfs.sh
关闭DFS
start-all.sh
是一个批处理命令,是启动hadoop的同时也启动mapreduce,由于目前没有配置mapreduce,所以暂时不要使用此命令
以上就是本期总结的全部内容,愿大家相互学习,共同进步!