Hadoop集群配置部署
Hadoop集群配置部署
你我皆温柔Hadoop集群配置部署
Hadoop框架配置
- 上传hadoop压缩包到node1 
- 解压到 /export/servers 
- 创建软连接 - 1 
 2
 3- cp -r hadoop-3.3.6 /export/server 
 cd /export/server
 ln -s /export/seervers/hadoop-3.3.x
- 进入hadoop安装包内 - 1 - cd /hadoop 
- Hadoop文件结构 - 1 
 2
 3
 4
 5
 6
 7
 8- bin:存放Hadoop的各类程序(命令) 
 etc:存放Hadoop的配置文件
 include:C语言的一些头文件
 lib:存放Linux的动态链接库(.so文件)
 libexec:存放Hadoop系统的脚本文件(.sh和.cmd)
 licenses-binary:存放许可证文件
 sbin:管理员程序(super bin)
 share:存放二进制编码(Java jar包)
- 配置HDFS集群需要修改的文件(hadoop/etc/hadoop文件中) - workers:配置从节点(DataNode) - 1 
 2
 3- hadoop 
 node1
 node2
- hadoop-env.sh:配置Hadoop的相关环境变量 - 1 
 2
 3
 4- export JAVA_HOME=/export/server/jdk # java环境的位置 
 export HADOOP_HOME=/export/server/hadoop # Hadoop的安装位置
 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop # Hadoop配置文件目录位置
 export HADOOP_LOG_DIR=$HADOOP_HOME/logs # 运行日志的位置
- core-site.xml:Hadoop核心配置文件 - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25- <configuration> 
 <!--
 key:fs.defaultFS
 含义:HDFS文件系统的网络通讯路径
 值:hdfs://node1:8020
 协议为:hdfs://
 namenode为node1
 namenode通讯端口为8020
 -->
 <property>
 <name>fs.defaultFS</name>
 <value>hdfs://node1:8020</value>
 </property>
 <!--
 key:io.file.buffer.size
 含义:io操作文件的缓冲区大小
 值:131072 bit
 -->
 <property>
 <name>io.file.buffer.size</name>
 <value>131072</value>
 </property>
 </configuration >
 
 node1必须启动NameNode进程
- hdfs-site.xml:HDFS核心配置文件 - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32- <configuration> 
 <!-- 默认创建的文件权限设置 -->
 <property>
 <name>dfs.datanode.data.dir.perm</name>
 <value>700</value>
 </property>
 <!-- NameNode元数据存储位置 node1结点下的/data/nn 目录-->
 <property>
 <name>dfs.namenode.name.dir</name>
 <value>/data/nn</value>
 </property>
 <!-- 允许哪些结点的DataNode连接 -->
 <property>
 <name>dfs.namenode.hosts</name>
 <value>node1,node2,node3</value>
 </property>
 <!-- 默认块大小 -->
 <property>
 <name>dfs.blocksize</name>
 <value>168435456</value>
 </property>
 <!-- 并发线程数 -->
 <property>
 <name>dfs.namenode.handler.count</name>
 <value>100</value>
 </property>
 <!-- 从节点DataNode的数据存储目录 -->
 <property>
 <name>dfs.datanode.data.dir</name>
 <value>/data/dn</value>
 </property>
 </configuration >
 
- 配置namenode和datanode的目录 - 1 
 2
 3
 4
 5
 6- cd /export/server/ 
 node1
 mkdir -p /data/nn
 mkdir -p /data/dn
 node2 node3
 mkdir -p /dtat/dn
- 分发Hadoop文件夹 - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10- cd /export/server 
 scp -r hadoop-3.3.6 node2:`pwd`/
 scp -r hadoop-3.3.6 node3:`pwd`/
 配置软链接
 在node2上执行
 ln -s /export/server/hadoop-3.3.6 /export/server/hadoop
 在node3上执行
 ln -s /export/server/hadoop-3.3.6 /export/server/hadoop
- 配置环境变量 - 1 
 2
 3
 4
 5- sudo vim /etc/profile 
 export HADOOP_HOME=/export/server/hadoop
 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
 node2\node3 同样配置
- 为Hadoop用户授权 - 1 
 2
 3- node1,node2,node3 
 chown -R node1:node1 /data
 chown -R node1:node1 /export
- 格式化HDFS - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14- 确保Hadoop用户执行 
 su hadoop
 格式化namenode
 hadoop namenode -format
 启动Hadoop
 一键启动Hadoop集群
 start-all.sh
 一键关闭Hadoop集群
 stop-all.sh
 如果提示未找到命令,请确保环境变量配置好了,或用绝对路径执行
 sh /export/server/hadoop/sbin/start-all.sh
 sh /export/server/hadoop/sbin/stop-all.sh
- SSH无密钥登录 - 1 
 2
 3
 4
 5
 6
 7- cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost命令 
 ssh-keygen -t rsa # 生成密钥文件,会有提示输入加密信息,都按回车键即可
 02 分别在三个节点中执行以下命令,将公钥信息复制并追加到对方节点的授权文件authorized_keys中:
 ssh-copy-id hadoop
 ssh-copy-id node1
 ssh-copy-id node2


