开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情
环境配置
centos7配置
虚拟机安装好后需要配置静态ip、ip映射、防火墙设置和主机名修改
配置静态ip及ip映射。
sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=fcc18852-431d-472c-9d0d-cd3ca9d4f33a
DEVICE=ens33
ONBOOT=yes
#添加参数
IPADDR=192.168.219.102
NETWASK=255.255.255.0
GATEWAY=192.168.219.2
service network restart
虚拟机的网络配置有三种模式:桥接模式、NAT模式、Host-only 。
VMware 的几个虚拟设备:
- VMnet0:这是 VMware 用于虚拟桥接网络下的虚拟交换机,一般是不可见的,因为桥接一般直接使用真实网卡;
- VMnet1:这是 VMware 用于虚拟Host-Only网络下的虚拟交换机;
- VMnet8:这是 VMware 用于虚拟NAT网络下的虚拟交换机;
- VMware Network Adapter VMnet1:这是 Host 用于与 Host-Only 虚拟网络进行通信的虚拟网卡;
- VMware Network Adapter VMnet8:这是 Host 用于与 NAT 虚拟网络进行通信的虚拟网卡;
下面我们一块看看这三种模式的区别
桥接模式
简单来说,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。但是需要我们手动去配置IP地址和网关,IP地址要与主机的无线网的IP段对应,子网掩码,网关,DNS都需要与宿主机保持一致。
NAT模式
NAT模式实际是虚拟了一个网卡出来,虚拟机直接使用链接这个虚拟网卡,每次访问和交互通过这个虚拟网卡交换数据。虚拟机发送数据给实体机:虚拟机系统->虚拟网卡->实体机系统(可以发现是不经过真实网卡的流程简单很多);虚拟机访问外网:虚拟机系统->虚拟网卡->实体机系统->真实网卡->路由器->外网。
虚拟机借助 NAT (网络地址转换)功能,通过宿主机器所在的网络来访问公网。
Host-only
在 Host-Only 模式下,虚拟网络是一个全封闭的网络,它唯一能够访问的就是主机。其实 Host-Only 网络和 NAT 网络很相似,不同的地方就是 Host-Only 网络没有 NAT 服务,所以虚拟网络不能连接到 Internet 。主机和虚拟机之间的通信是通过 VMware Network Adepter VMnet1 虚拟网卡来实现的。
修改主机名
hostnamectl set-hostname hadoop
防火墙设置
systemctl status firewalld.service命令,查看防火墙状态
systemctl stop firewalld.service命令,关闭防火墙
systemctl disable firewalld.service”命令,永久关闭防火墙
安装jdk
将安装包解压到/opt/module 目录
配置环境变量
export JAVA_HOME=/opt/module/jdk1.8.0_341
export PATH=$PATH:$JAVA_HOME/bin
输入java -version
安装hadoop
将hadoop解压到/opt/module
配置环境变量
配置 hadoop-env.sh(在hadoop/etc/hadoop/ 下)
vim hadoop-env.sh
//修改java路径和hadoop路径
export JAVA_HOME=/opt/module/jdk1.8.0_341
export HADOOP_CONF_DIR=/opt/module/hadoop/etc/hadoop
配置 core-site.xml
vim core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop01:9000</value> # master 是你自己的主机名
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop/tmp</value> # 改成你自己的文件地址
</property>
</configuration>
配置mapred-site.xml
这个文件初始时是没有的,但是有一个模板文件,mapred-site.xml.template所以需要拷贝一份,并重命名为mapred-site.xml
cp ./mapred-site.xml.template ./mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
配置yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<!--指定yarn的老大 resoucemanager的地址-->
<name>yarn.resourcemanager.hostname</name>:
<value>hadoop01</value>
</property>
<property>
<!--NodeManager获取数据的方式-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
编辑slaves文件 修改 localhost 为 master
wordcount实例
启动hadoop start-dfs.sh 启动yarn start-yarn.sh
本地创建一个文本文件 touch test.txt
首先先在hdfs的根目录下创建一个input目录hdfs dfs -mkdir /input
然后上传到hdfs上 hdfs dfs -put ./test.txt /input
查看是否成功上传 hdfs dfs -ls /input
运行wordcount实例
hadoop jar hadoop-mapreduce-examples-2.7.7.jar wordcount /input /output
hadoop工作成功后会自己在指定路径/output 生成两个文件
我们看一下hdfs dfs -ls /output
第一个文件/output/_SUCCESS:是表示工作成功的文件,没有具体的文本,这个我们忽略.
第二个文件/output/part-r-00000:才是我们真正的输出文件
查看第二个文件 hdfs dfs -cat /output/part-r-00000
总结
Hadoop是一个分布式文件系统和分布式计算框架,它可以帮助我们处理大数据集。下面是 Hadoop 安装的一般步骤:
(1) 安装 Java 环境:Hadoop 是基于 Java 的,因此需要先安装 Java 环境。可以在官网下载最新版本的 JDK,然后根据安装指南进行安装。
(2) 下载 Hadoop:从 Hadoop 官网下载最新版本的 Hadoop。
(3) 解压 Hadoop:将下载的 Hadoop 压缩文件解压到你想要的位置。
(4) 配置环境变量:在系统的环境变量中添加 Hadoop 的安装路径。
(5) 配置 Hadoop 配置文件:在 Hadoop 的配置目录中找到并编辑配置文件,配置 Hadoop 的运行环境。
(6) 启动 Hadoop:在 Hadoop 的安装目录下运行启动脚本,启动 Hadoop 集群