如果你的电脑内存为8G,建议每台虚拟机给1G内存。
推荐至少内存大于等于12G,每台虚拟机2G。
链接:https://pan.baidu.com/s/1zxiR3xbZ73AEOxI5Kl2_ZQ
提取码:ifob
VMware(许可证中含有密钥)、XShell、IDEA的安装省略。
安装CentOS-7
2.
3.
4.
5. 注意修改位置,默认是C盘
6.
7.
8.
9.
10.
11.
12. 博主这是给20G,如果你后期会安装HBase、Hive、Kafka、Spark等,建议40G左右
后面默认即可。。。
在VMware中选中data1右键设置:
添加网络适配器:
NAT用于虚拟机与windows的通信,桥接用于连接外网:
设置镜像:
选择安装(箭头上下移动),ctrl + alt 跳出虚拟机,等待安装:
最小化安装:
分盘默认即可,点击安装(如果无法点击安装,先点击有黄色警告的地方-> Done):
设置密码,建议两个都设置,左边是root用户密码,右边添加新的普通用户,等待安装:
安装成功,重启:
登录root:
设置NAT网卡IP:
注意:这里第一个虚拟机设置为192.168.1.126,后面第二、三个虚拟机依次为127、128。
设置桥接网卡:
保存后重启网卡:
测试:
与windows通信
外网通信:
使用XShell 连接:
点击连接,输入用户名、密码
下面的两个设置是为了避免输入数字小键盘键和方向键乱码:
关闭防火墙:
关闭selinux:
修改主机名:
设置IP映射:
下载WinSCP软件:
https://winscp.net/eng/docs/lang:chs
连接data1:
这里跳过单机、伪分布的安装。。。
经过第2步,你已经有了一个可以正常运行的CentOS,并且上传有Haodop、JDK安装包。
tar -zxvf /opt/soft/jdk-8u144-linux-x64.tar.gz -C /opt/module/
# JDK
export JAVA_HOME=/opt/module/jdk1.8.0_144/
export PATH=$PATH:$JAVA_HOME/bin
tar -zxvf /opt/soft/hadoop-2.8.4.tar.gz -C /opt/module/
以下所有修改都在/opt/module/hadoop-2.8.4/etc/hadoop 目录下:
hadoop-env.sh
修改前:
修改后:
core-site.xml
fs.defaultFS
hdfs://data1:9000
hadoop.tmp.dir
/opt/module/hadoop-2.8.4/data/tmp
hdfs-site.xml
dfs.replication
3
dfs.namenode.secondary.http-address
data1:50090
dfs.permissions
false
yarn-site.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
data1
yarn.log-aggregation-enable
true
yarn.log-aggregation-seconds
604800
mapred-site.xml (原文件为mapred-site.xml.template,修改名称即可)
mapreduce.framework.name
yarn
mapreduce.jobhistory.address
data1:10020
mapreduce.jobhistory.webapp.address
data1:19888
slaves
data1
data2
data3
设置环境变量,添加到/etc/profile 末尾:
# HADOOP
export HADOOP_HOME=/opt/module/hadoop-2.8.4/
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
关机data1:
shutdown -h now
克隆完成:
启动三台虚拟机:
修改第二台主机名为data2、修改IP为192.168.1.127
修改第二台主机名为data3、修改IP为192.168.1.128(不清楚如何修改可以看第2步)
重启后,使用Xshell连接,得到如下三台机器:
在data1中测试是否能够与data2、data3通信:
在XShell中设置一键操作三台虚拟机(如果没有安装XShell的推荐安装):
作用是在一台虚拟机中发送命令在其他两台中将执行同样的命令。。。。
开启后的效果:
生成密钥(一直回车即可):
添加本机的密钥到指定的主机:
连续执行了三条命令,这样每台虚拟机都会有包括自己在内的另外两台虚拟机的密钥:
关闭一键执行到所有会话:
测试免密登录:
在data1中执行:
hadoop namenode -format
出现0则成功:
启动 hdfs:
启动 yarn:
页面访问:
因为在windows可以与虚拟机的通信,所以可以在windows下访问集群的hadoop页面:
192.168.1.126:50070
可以在命令中查看data2和data3的启动情况:
也可以在页面中查看是否启动成功:
至此,Hadoop集群搭建成功。。。
前提:已安装IDEA
alimaven
central
aliyun maven
http://maven.aliyun.com/nexus/content/repositories/central/
repo1
central
Human Readable Name for this Mirror.
http://repo1.maven.org/maven2/
repo2
central
Human Readable Name for this Mirror.
http://repo2.maven.org/maven2/
Windows下配置Hadoop
解压Ha的oop安装包(与Linux上的为同一解压包)到安装JDK的目录(windows确保你安装了jdk)
并将hadoop.dll 和 winutils.exe 复制到 hadoop-2.8.4/bin 目录下:
设置环境变量:
测试:
在pom.xml (该文件在新建的Maven项目路径下)中导入Hadoop相关依赖,等待下载完成:
org.apache.hadoop
hadoop-common
2.8.4
org.apache.hadoop
hadoop-hdfs
2.8.4
org.apache.hadoop
hadoop-client
2.8.4
log4j
log4j
1.2.17
org.slf4j
slf4j-api
1.7.7
junit
junit
4.12
test
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.io.IOException;
public class HadoopTest {
public static void main(String[] args) throws IOException {
// 1. 创建配置信息对象
Configuration configuration = new Configuration();
configuration.set("fs.defaultFS", "hdfs://192.168.1.126:9000");
// 2. 获取文件系统
FileSystem fileSystem = FileSystem.get(configuration);
// 3. 上传文件
Path source = new Path("D:\\Test\\Test.txt");
Path out = new Path("/");
fileSystem.copyFromLocalFile(source, out);
// 4. 关闭文件系统
fileSystem.close();
}
}