本次搭建使用VirtualBox虚拟机,和VMware的一些配置有所不同;
打开VirtualBox后选择新建:
内存大小根据自己的机器和需求配置;我配置的是1024MB;点击创建后:
文件大小是虚拟机硬盘大小,文件位置建议放在方便自己管理的地方,其他默认即可;
打开虚拟机前,配置一下虚拟机的网卡:
菜单栏---设备---网络--将网卡2启用,连接方式为仅主机,并在高级选项卡中,将混杂模式修改为全部允许,这个网卡可用于宿主机ping通虚拟机:
打开虚拟机,选择启动盘,即CentOS 7 系统的iso镜像:
启动,选择Install CentOS Linux 7:
稍等一会儿后选择语言,进入安装信息摘要页面:
这里配置一下网络和主机名即可,注意两个网卡都打开:
接下来就配置一下用户了,这个简单就跳过了:
我的配置: 用户名:root 密码:123456;
重启后用这个用户名和密码登录:
ip address
# 查看ip地址
虚拟机成功ping通外网
以及宿主机ping通虚拟机;
如果运行 ip address后 没有看到ip地址,就运行命令
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 # 其中ifcfg-enp0s[n] 为对应网卡,这里修改enp0s3和enp0s8
将np0s3和enp0s8下的onboot修改为yes:
重启network服务即可
service network restart
使用Xshell连接,之后操作都使用xshell;同时v-node1节点同样的方式配置
个人习惯在home目录下新建apps文件夹,存放所有自己安装的软件;
jdk可以通过网络下载安装,不过我有宿主机中有离线的安装包,所以就直接使用了;
scp -r ./jdk-8u191-linux-x64.tar.gz [email protected]:/home/apps
tar -zxf jdk-8u191-linux-x64.tar.gz
export JAVA_HOME=/home/apps/jdk1.8.0_191
export PATH=$PATH:$JAVA_HOME/bin:
source profile 更新环境变量配置
运行java -version 查看java版本
接下来自然是在虚拟机准备好hadoop的安装包了,这里一样在宿主机直接发送到虚拟机的/home/apps,第三中已写;
再将所有节点中的防火墙关闭,运行
systemctl stop firewalld.service # 关闭防火墙
systemctl disable firewalld # 禁止开机自启
解压hadoop压缩包,然后修改hadoop目录的权限(否则可能出问题)
chown -R root:root hadoop-2.6.5
进入hadoop目录下的etc/hadoop,并修改该目录以下文件;
hadoop-env.sh
hdfs-site.xml
dfs.replication
1
dfs.namenode.secondary.http-address
v-master:50090
dfs.namenode.name.dir
/home/apps/hadoop-2.6.5/name
dfs.datanode.data.dir
/home/apps/hadoop-2.6.5/data
dfs.webhdfs.enabled
true
core-site.sml
fs.defaultFS
hdfs://v-master:9000
hadoop.tmp.dir
/home/apps/hadoop-2.6.5/tmp
mapred-site.xml 原本不存在 将mapred-site.xml.template 修改为mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
修改mapred-site.sml
mapreduce.framework.name
yarn
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn-env.sh
yarn-site.sml
yarn.resourcemanager.hostname
v-master
slaves
# 这个文件写的是工作的节点,v-node1和v-node2是其他两个节点
v-master
v-node1
v-node2
先配置hadoop的环境变量,方便在任何目录下都可以使用hdfs和hadoop命令;
修改/etc/hosts文件,添加以下内容
192.168.56.103 v-master
192.168.56.104 v-node1
配置ssh免密登陆,在v-master主机中执行
ssh-keygen -t rsa # 运行后一直回车
ssh-copy-id v-node1 # 将公钥发送给v-node1,如果有其他节点则同样这样发送
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys #本地公钥导入私钥
将
/home下的apps全部拷贝至其他节点的/home目录下:
/etc/profile文件拷贝至其他节点相同位置:
/etc/hosts文件拷贝至其他节点相同位置:
scp -r ./apps root@v-node1:/home/
scp -r /etc/profile root@v-node1:/etc/
scp -r /etc/hosts root@v-node1:/etc/
其他节点执行source /etc/profile
在启动hadoop之前,需要对进行一次namenode格式化,运行命令
hdfs namenode -format
或者
hadoop namenode format
看到以下即成功格式化
启动hdfs
start-dfs.sh
进入浏览器查看输入v-master:50070,如下