Hadoop分布式环境搭建
网络环境
CentOS网络策略
虚拟机网络设置为NAT模式
ip | user/password(hadoop) | hostname | user/password(root) |
---|---|---|---|
192.168.182.15 | hadoop/hadoop | master | root/root123 |
192.168.182.16 | hadoop/hadoop | slave1 | root/root123 |
192.168.182.17 | hadoop/hadoop | slave2 | root/root123 |
主机策略
VMware Network Adapter VMnet8设置
虚拟机虚拟网络编辑器设置
这个里面需要注意的是要讲虚拟机里面的默认网关设置成虚拟网络编辑器里面的网关,也就是主机VMnet8的网络适配器的默认网关,192.168.182.2,同时将DNS设置成114.114.114.114
联通各个节点
host相关设置
切换root权限后编辑/etc/hosts和/etc/hostname
hostsname修改后需要重启网络或者重启才能生效
SSH免密码登陆
生成密钥对,写入授权文件并赋值权限
编辑/etc/ssh/sshd_config
打通虚拟机之间的SSH免密码登陆,在master节点上把id_rsa.pub文件通过scp传到slave1的hadoop用户文件夹下面
在slave1节点上面查看是否传输过来,并将文件加入授权文件中,然后重启ssh
在master节点上面检查
在传输文件的时候如果slave1节点没有.ssh文件夹,创建一个.ssh文件夹,并赋予700的管理权限,然后将公钥追加到授权文件中,并赋予600的权限
软件环境
JDK
下载tar.gz格式的JDK
解压文件
解压到当前文件夹
tar -zxvf jdk-8u144-linux-x64.tar.gz
剪切文件夹到/usr目录下面
在/etc/profile最后添加
使文件生效并测试
Hadoop
文件准备
选择hadoop版本:
hadoop-2.7.3
解压文件
tar zxvf hadoop-2.2.0_x64.tar.gz
解压后
重命名文件夹
sudo mv hadooop-2.7.3 hadoop
剪切到usr下面
这个地方做了一个小测试
sudo mv hadooop-2.7.3 hadoop
后面是文件夹名的话会直接把文件夹改名
sudo mv hadooop-2.7.3 /usr
后面是路径的话会把文件夹剪切到路径下面去
sudo mv hadooop-2.7.3/* hadoop
后面是文件夹名加上/*的话会文件夹下文的文件全部剪切到另一个文件夹下面去
在用户目录下面创建目录
~/tmp
~/dfs/name
~/dfs/data
注意用户和用户组
hadoop配置
这里总共有7个文件需要修改
- /usr/hadoop/etc/hadoop/hadoop-env.sh
- /usr/hadoop/etc/hadoop/yarn-env.sh
- /usr/hadoop/etc/hadoop/slaves
- /usr/hadoop/etc/hadoop/core-site.xml
- /usr/hadoop/etc/hadoop/hdfs-site.xml
- /usr/hadoop/etc/hadoop/mapred-site.xml
- /usr/hadoop/etc/hadoop/yarn-site.xml
配置文件中
和 节点不要有空格
- hadoop-env.sh
- /usr/hadoop/etc/hadoop/yarn-env.sh
- /usr/hadoop/etc/hadoop/slaves
- /usr/hadoop/etc/hadoop/core-site.xml
这里用到了之前创建的文件夹 ~/tmp (/home/hadoop/tmp)
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
<description>hadoop用户可以代理任意机器上的用户</description>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
<description>hadoop用户代理任何组下的用户</description>
</property>
</configuration>
- /usr/hadoop/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
这里用到了之前创建的文件夹~/dfs (/home/hadoop/dfs)
~/dfs/name (/home/hadoop/dfs/name)
~/dfs/data (/home/hadoop/dfs/data)
- /usr/hadoop/etc/hadoop/mapred-site.xml
先把模板文件拷贝一份并重命名
cp mapred-site.xml.template mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
- /usr/hadoop/etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
配置环境变量
测试
启动HDFS
在master节点
-
格式化hdfs
hdfs namenode -format
或者hdfs namenode format
-
启动hdfs
start-dfs.sh
在slave1和slave2节点上面使用jps命令
master节点上的NameNode和SecondaryNameNode启动起来了;slave节点上的DataNode启动起来了,这就说明HDFS启动成功
启动yarn
master节点上面
slave节点上面
master节点上的ResourceMananger启动起来了;slave节点上的NodeMananger启动起来了,这就说明yarn启动成功
访问WebUI
访问http//:master:8088
搭建成功