集群安装在多个节点上的
1)多个节点的要求:
多个节点的用户名(安装的时候使用的用户/普通用户)一定要统一
多个节点的安装目录统一
集群规划:集群中的各个节点安装的组件有哪些
HDFS yarn
namenode datanode secondarynamenode rm nm
master namenode resourcemanager
node1 datanode secondarynamenode nodemanager
node2 datanode nodemanager
搭建
准备:
1)ip
2)主机名
3)映射
4)关闭防火墙和sellinux
vi /etc/sysconfig/selinux
SELINUX=disabled
linux的安全认证 高级运维人员会用到
5)为普通用户添加 sudoers
vi /etc/sudoers
hadoop ALL=(ALL) ALL
6) 切换到普通用户
7)做免密码登录
一定切换到普通用户
~/.ssh
这里和用户有关的
3台机器之间 相互都需要做 免密码登录
ssh-keygen
ssh-copy-id master
ssh-copy-id node1
ssh-copy-id node2
测试:
ssh master
ssh node1
ssh node2
然后 source /etc/profile
8)修改系统的启动级别 3
sudo vi /etc/inittab
hadoop的安装:
先装在一个节点上 在进行远程发送
mkdir /home/hadoop/apps
1)安装jdk
source /etc/profile
java -version
2)上传安装包
3)解压hadoop的安装包
tar -xvzf hadoop-2.7.6.tar.gz
4)配置hadoop的环境变量
sudo vi /etc/profile
export JAVA_HOME=/home/hadoop/apps/jdk1.8.0_73
export HADOOP_HOME=/home/hadoop/apps/hadoop-2.7.6
/*注意此处为PATH,不要弄成CLASSPATH了,使用时删掉这一行*/
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
验证
hadoop version
5)修改hadoop的配置文件 6个
$HADOOP_HOME/etc/hadoop/
1)hadoop-env.sh
export JAVA_HOME=/home/hadoop/apps/jdk1.8.0_73
2)core-site.xml 公共的配置文件
hdfs的访问url hdfs://namenode的主机名:9000
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
hdfs的文件的存储路径 包括namenode的信息存储目录 datanode的信息存储目录 没有配置 /tmp存储 会造成核心数据的丢失 这个生产环境中一定要配置的
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/data/hadoopdata</value>
</property>
3)hdfs-site.xml
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/data/hadoopdata/name</value>
<description>namenode的数据的存储目录</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/data/hadoopdata/data</value>
<description>datanode 的数据存储目录</description>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
<description>HDFS 的数据块的副本存储个数</description>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>node1:50090</value>
<description>secondarynamenode 运行节点的信息,和 namenode 不同节点</description>
</property>
4)mapred-site.xml
这里可以直接将文件夹中的mapred-site.xml.template文件的.template去掉之后编辑
cp mapred-site.xml.template mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
5)yarn-site.xml
配置的是yarn的主节点的 主机名
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>YARN 集群为 MapReduce 程序提供的 shuffle 服务</description>
</property>
6)vi slaves
从节点信息 一行一个 不要有空格 和换行 datanode nodemanager
hadoop02
hadoop03
hadoop04
6)远程发送到其他节点
jdk
scp -r jdk1.8.0_73 node1:/home/hadoop/apps/
scp -r jdk1.8.0_73 node2:/home/hadoop/apps/
hadoop:
scp -r hadoop-2.7.6 node1:/home/hadoop/apps/
scp -r hadoop-2.7.6 node2:/home/hadoop/apps/
/etc/profile
sudo scp /etc/profile node1:/etc/
sudo scp /etc/profile node2:/etc/
3个节点都执行 source /etc/profile
验证:
jdk
java -version
hadoop
hadoop version
7)进行格式化 格式化的是hdfs
在namenode所在的节点 ---master
hadoop namenode -format
/home/hadoop/data/hadoopdata/name has been successfully formatted.
成功的格式化只能进行一次
8)启动
先启动hdfs:
任意一个节点启动 start-dfs.sh
/* 此时Hadoop的更目录下要有一个logs文件夹
并且需要赋予读写权限
sudo chmod a+w logs
*/
jps
master: namenode
node1: secondarynamenode datanode
node2:datanode
启动yarn:
start-yarn.sh 最好在yarn的主节点执行master
/*要记得关闭防火墙
firewall-cmd --state 查询防火墙状态
systemctl stop firewalld 关闭防火墙
*/
验证:
hdfs的网页:
主节点主机名或ip:50070
hadoop01:50070
yarn的网页:
yarn主节点的主机名或ip:8088
集群的关闭和重启的问题
集群关闭:
关闭hdfs:
stop-dfs.sh 任意节点执行
关闭yarn:
stop-yarn.sh 在yarn的主节点执行
集群重启:
不需要格式化
先启动hdfs
再启动yarn