Hadoop安装(vmfusion for mac、centos7)
实验步骤本实验将利用vmfusion centos7,在宿主机mac中搭建hadoop集群。集群包含1个master节点、3个slave节点。一、配置网络环境配置虚拟机网卡我使用的是vmfusion for mac查看/Library/Preferences/VMware Fusion/vmnet8/dhcpd.conf文件。或者是nat.conf文件,配置vm为静态分配ip的是这个文件。修改vm
实验步骤
本实验将利用vmfusion centos7,在宿主机mac中搭建hadoop集群。集群包含1个master节点、3个slave节点。
一、配置网络环境
- 配置虚拟机网卡
我使用的是
vmfusion for mac
查看/Library/Preferences/VMware Fusion/vmnet8/dhcpd.conf
文件。
或者是
nat.conf
文件,配置vm为静态分配ip的是这个文件。修改vmfusion为静态分配路由的方式是修改/Library/Preferences/VMware Fusion/networking
文件中vm8
网卡中的dhcp为no。
在VMware Workstation中,默认有三个虚拟交换机VMnet0用于桥接,VMnet1用于仅主机网络,VMnet8用于NAT
cd /Library/Preferences/VMware\ Fusion/vmnet8/
查看文件中包含的网卡网关
、子网掩码
如下,并以此配置虚拟机的静态ip
...
# NAT gateway address
ip = 172.16.106.2
netmask = 255.255.255.0
...
- 在虚拟机上配置静态ip
首先查询网络情况,查看在使用的是哪个网卡,如图我使用的是ens33
。
[root@localhost network-scripts]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:50:56:24:d5:78 brd ff:ff:ff:ff:ff:ff
inet 172.16.106.191/24 brd 172.16.106.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::9e38:dda8:4ec7:e0a0/64 scope link noprefixroute
valid_lft forever preferred_lft forever
- 编辑网卡
cd /etc/sysconfig/network-scripts/
vim ifcfg-ens33
修改并配置以下内容
BOOTPROTO=static
ONBOOT=yes
IPADDR=172.16.106.191
GATEWAY=172.16.106.2
NETMASK=255.255.255.0
DNS1=8.8.8.8
然后使用命令reboot
重启虚拟机就行
3. 配置网络域名
vi /etc/hosts
# 请依照自己的网络配置添加以下内容
172.16.106.191 master
172.16.106.201 slave1
172.16.106.202 slave2
172.16.106.203 slave3
# 测试一下
ping master
PING master (172.16.106.191) 56(84) bytes of data.
64 bytes from master (172.16.106.191): icmp_seq=1 ttl=64 time=0.250 ms
64 bytes from master (172.16.106.191): icmp_seq=2 ttl=64 time=0.066 ms
64 bytes from master (172.16.106.191): icmp_seq=3 ttl=64 time=0.061 ms
二、安装jdk和hadoop
2.1 下载jdk
- 在
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
中找一下包。
推荐国内镜像
https://mirrors.huaweicloud.com/java/
- 将jdk下载到本地
## 在Linux中opt目录常常用于存放测试软件和安装目录
cd /opt
curl https://repo.huaweicloud.com/java/jdk/8u172-b11/jdk-8u172-linux-x64.tar.gz -O
tar zxvf jdk-8u172-linux-x64.tar.gz
2.2 下载hadoop
- 在
http://hadoop.apache.org/
中找一下包
推荐国内镜像
http://mirror.bit.edu.cn/apache/hadoop/common
- 下载到本地
cd /opt
curl http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz -O # -O, --remote-name Write output to a file named as the remote file
tar zxvf hadoop-2.7.7.tar.gz
2.3 配置环境
# 清楚掉有的没有下载包
rm -y *.gz
# 修改环境变量
vi /etc/profile
# 填入以下内容
export JAVA_HOME=/opt/jdk1.8.0_172
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/opt/hadoop-2.7.7
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
# 保存退出
# 使其生效
source /etc/profile
测试jdk是否安装成功
[root@8e53fc296522 opt]# java -version
java version "1.8.0_172"
Java(TM) SE Runtime Environment (build 1.8.0_172-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.172-b11, mixed mode)
2.4 配置hadoop环境
推荐
vscode
中的一个ssh-remote
插件,可以用来编辑服务器中的文件。
cd /opt/hadoop-2.7.7/etc/hadoop/
vi core-site.xml
编辑为以下内容
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
vi hdfs-site.xml
编辑为以下内容
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
vi slaves
编辑为以下内容
slave1
slave2
slave3
复制 mapred-site.xml.template
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
修改为以下内容
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
vi yarn-site.xml
修改为以下内容
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master</value>
</property>
</configuration>
最后一步,配置hadoop中的 java home
添加 JAVA_HOME=/opt/jdk1.8.0_172
到 hadoop-env.sh
文件头部
三、集群配置
每一台机器要想通信,需要不一样的mac地址,不一样的ip,要不然网卡没有办法识别。
同时要想集群的每台机器都可以通过ssh相互访问,需要配置免密。
3.1 配置网卡Mac地址
- 使用
shutdown
关闭虚拟机 - 然后点击设置就行,如下图
3.2 配置ip地址
按照一开始的配置方法进行配置
3.3 配置ssh
# 安装ssh服务
yum install -y openssl openssh-server
# 安装ssh客户端
yum install -y openssh-clients
3.4 配置免登录
# 生成一个公私钥对
ssh-keygen -t rsa
私钥在/root/.ssh/id_rsa
中
公钥在/root/.ssh/id_rsa.pub
中
将公钥的内容放在其他用户的~/.ssh/authorized_keys
中,本机就能免密ssh
访问其他用户了
[root@8e53fc296522 sysconfig]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:k9bssWFmLAW8Hef4guO0g1IiyNT/vo08KnQDm7Ffy/o root@8e53fc296522
The key's randomart image is:
+---[RSA 2048]----+
| .. |
| ... . |
| . o.= |
| . + .*o . |
|o. B S.X. |
|...=.+.o+B.+. |
| ..oo=+.oo. |
| ...o=* |
| .+=Eoo |
+----[SHA256]-----+
vim ~/.ssh/authorized_keys
# 以下公钥来源于四台机器的`/root/.ssh/id_rsa.pub`文件中,请将这些信息整合输入。
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6N5QVjUl04dpli5kiJYSaz8qAlB5vJYgdk+o9tKqtyWv4PxFDN2We8SXQJNpzMbFshLQy04XrogjI08+2lffrVaKaIRvlb9rZmIHm5ZGsGJNXNvgFlRiZiBHyGXJGG8voF+cwS2n+2wowh83FB3fiFpb7/vfaQHJVnks1uX55SBWDPOcXLZjeXvYwETehHpvyA4JP2VjevXWCMyzOeywp6bW9oRN85lF0EAWFb6pMevxqDgkfl+bIPbIQX66fo+bluRvtoNsu9YgN+v+DHZt7ncrR3rgmdjZ6VdsuVxcykl2Hs8VdVjCe8yPekT5HpsHG84TK7/D7XYS5WrlQAT5v root@master
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCfd/sX8WSbtVooTuL2a5MOXWRB5M9I2SD2OzYyDD566A1YZmS9eTHuxxGfCQ0YpxNF2eOPehDqzm6qqMlDvnRqWAbVuGe3XQmgtvNXGbQo3c09/78yXzer/ElyCoF8vJgPnThYcYtDp2qQjCBl7sgEfodABsYodKR4JeHdUDRlOHTvMV06TZGpD3Z4eNCYuJ8cIz7UqzLet8fPcYEKf2JOX8RVrlzh4nXseDEPPDK/83H/QbtCVVoROrU4tLdVFz5ws0Cf942s4MJPgUXDpi+Yu+r2pyTRgoBEhs09yPpzBoCyppwlCxAajr3qlicbyGGvJ8x6nyqPl5DftB2g8Rn3 root@slave1
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDYw/p2N1hnqKk0Q1rnKMkrF48hHf0w2ppz3BHpWdPI/uXt3OBvLN39GUZJ/D/LykYG/hw1ZQFY/8AvNOO+W8yw+gEBK0LlKlMZLdkflv23FAW9bAeMDbdkGxYdnO9rCvPNxRW3Z1fYdjJN5PU12WIDCqWATbzphlMXQgopwiLfJqx7GQWRLMc2dvwb1SZV9p1lO0JVcr9r7ThNxEyzIpmJphY1Enyh8YMv4l1Du6IQXuXsOpTeQ38xKcGUoQE5EZ64IX7QxbNdrtBAfu4VqZMsPwVfNSkOoST0nmj2f8jqub1dkAAO6WccdSVEFvkiFWNSFo6pGwGrE5KFSG/X3xoR root@slave2
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDdttCPtW/paspiZHB62a+CjTOSXRVsUfYJDkxRcxPE8cawcijP0chuWtL8jJFh31I6JXYkBmjK/3s3VhT9gjrHd6VkTAs5BE855i/cbRAdq5LxkaR8w06TF/H3b8J9BCGWTsJRT9jTB1v61sFQ0Q1MwbihZ7t9IJDK5+2SimQGex055OMw8NhGCHaQBmdktO4/FH05ifdJGTj82u+ffYBBe/JEzFWL2BtmW9xSGm1w4XInHwM0bmca1jAhaeIK4dmO8yP3Tk0q4EDy26k8mFVZOss2hxCFoMfjV+Cjsu0Bxf9oHkbRzFi8a3SrcxS0wO71g7HHIjW+P+lG9EOsZKaN root@slave3
然后不同的节点之间就能互通了。可以使用ssh
测试一下。
ssh root@172.16.106.191 # 或者 ssh root@master
ssh root@172.16.106.201 # 或者 ssh root@slave1
ssh root@172.16.106.202 # 或者 ssh root@slave2
ssh root@172.16.106.203 # 或者 ssh root@slave3
四、测试hadoop
- 格式化数据
hadoop namenode -format - 启动集群
start-all.sh # 只在master节点上执行就行 - 在宿主机上访问 172.16.106.191:50070 172.16.106.191:8088
更多推荐
所有评论(0)