环境配置
1.配置网络
命令:vi /etc/sysconfig/network-script/ifcfg-eno1666666
网络刷新:service network restart
2.修改windows主机的映射
3.修改linux中主机的映射
vi /etc/hosts
4.修改主机名
vi /etc/hostname
5.查看防火墙状态
firewall-cmd --state
停止firewall
systemctl stop firewalld.service
禁止firewall开机启动
systemctl disable firewalld.service
6.关闭selinux
进入到/etc/selinux/config文件
vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
7.创建用户
useradd hadoop
修改密码:sudo passwd hadoop
8.配置sudo
vi /etc/sudoers
9.配置免密登录
生成密钥对:ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免密登录的目标机器上:ssh-copy-id hadoop1
jdk的安装
- 查看jdk是否安装
rpm –qa | grep java - 解压jdk压缩包 tar –axvf jdkxxxxxxx.gz –C ~/jdk
- 配置java环境变量
刷新配置文件:source /etc/profile
伪分布式的集群的搭建
1.配置:hadoop-env.sh
2.配置:core-site.xml
指定HDFS中NameNode的地址
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop101:9000</value>
</property>
指定hadoop运行时产生文件的存储目录
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
3.配置:hdfs-site.xml
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
4.配置yarn-env.sh
export JAVA_HOME=/opt/module/jdk1.7.0_79
5.配置yarn-site.xml
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop101</value>
</property>
6.mapred-env.sh
export JAVA_HOME=/opt/module/jdk1.7.0_79
7.配置: (对mapred-site.xml.template重新命名为) mapred-site.xml
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
8.启动集群
- 格式化namenode
hdfs namenode -format - 启动namenode
hadoop-daemon.sh start namenode - 启动datanode
hadoop-daemon.sh start datanode - 启动resourcemanager
yarn-daemon.sh start resourcemanager - 启动nodemanager
yarn-daemon.sh start nodemanager
完全分布式部署Hadoop
1.集群规划
hadoop1 | hadoop2 | hadop3 | |
---|---|---|---|
HDFS | NameNode DataNode | DataNode | SecondaryNameNode DataNode |
YARN | NodeManager | ResourceManager NodeManager | NodeManager |
2.配置
core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
<!—这个必须和namenode在同一节点-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop1:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.7.0_79
hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
和seconddarynamenode在一起
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop3:50090</value>
</property>
</configuration>
slaves
hadoop102
hadoop103
hadoop104
所有datanode
yarn-env.sh
export JAVA_HOME=/opt/module/jdk1.7.0_79
yarn-site.xml
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop2</value>
</property>
mapred-env.sh
export JAVA_HOME=/opt/module/jdk1.7.0_79
mapred-site.xml
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
3.给其他节点分发hadoop包
4.集群测试
如果集群是第一次启动,需要格式化namenode
hdfs namenode -format
启动HDFS:
start-dfs.sh
启动yarn
start-yarn.sh
注意:Namenode和ResourceManger如果不是同一台机器,不能在NameNode上启动 yarn,应该在ResouceManager所在的机器上启动yarn。