hadoop安装文档
一、安装前准备步骤
- 操作系统:
CentOS 7(CentOS-7-x86_64-Everything-1810.iso)
- 版本:
hadoop-2.8.5
- 用户:
hadoop
- 解压:
tar -zxvf hadoop-2.8.5.tar.gz
1、禁用防火墙(root)
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
2、配置hostname(此步骤影响远程域名连接)
vi /etc/hostname
vi /etc/hostname
//每台机器起相应的名字
//例如:192.168.37.128
//在/etc/hostname文件中写入sunsk01即可
3、修改hosts文件(hadoop)
vi /etc/hosts
//添加下面内容
192.168.37.128 sunsk01
192.168.37.129 sunsk02
192.168.37.130 sunsk03
4、JDK环境(root)
jdk 1.8 及以上
- 注意:卸载自带OPEN JDK
rpm -qa | grep jdk
rpm -e --nodeps ****
5、ssh免密登录(root,自己对自己也要做免密登录)
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.37.128[129|130]
6、修改环境变量(hadoop)
vi ~/.bash_profile
//添加hadoop环境变量
export HADOOP_HOME=/app/hadoop-2.7.3
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
//让配置生效
source ~/.bash_profile
7、创建hadoop存储目录(root创建后,授权)
//在一台namenode上创建即可(sunsk01)
mkdir -p /data01/namenode
//在所有datanode上创建即可(sunsk01,sunsk02,sunsk03)
mkdir -p /data01/datanode
- 没有权限时
//使用命令注意data01下是否有其他用户的文件
//如果有单个修改文件
命令:chown -R hadoop:hadoop /data01
二、hadoop配置文件配置
site文件会覆盖默认的default文件配置
// hadoop配置文件目录
cd /usr/local/src/hadoop-2.8.5/etc/hadoop
- 1、修改hadoop-env.sh(如果设置了JAVA_HOME,就跳过此步骤即可)
export JAVA_HOME=${JAVA_HOME}
- 2、配置core-site.xml
vi core-site.xml
//在<configuration></configuration>增加hdfs的端口信息
//增加的内容如下:
<!-- 配置主机master位置 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://sunsk01:9000</value>
</property>
<!-- 配置datanode文件存储位置,默认是/tmp,此目录是临时文件,所以需修改 -->
<property>
<name>hadoop.tmp.dir</name>
<value>file:/data01/dfs/tmp</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131702</value>
</property>
- 3、配置mapred-site.xml(copy一份)
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
//在<configuration></configuration>增加内容:
<!-- 指定mapreduce的执行框架,默认在本地以单机模式运行 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>sunsk01:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>sunsk01:19888</value>
</property>
- 4、配置hdfs-site.xml
vi hdfs-site.xml
//在<configuration></configuration>增加内容:
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/data01/dfs/nn</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/data01/dfs/dn</value>
</property>
<!-- 修改文件备份数,默认是三份 -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!-- 检查集群状态间隔时间,单位ms,默认300000 -->
<property>
<name>dfs.namenode.heartbeat.recheck-interval</name>
<value>10000</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>sunsk01:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
- 5、配置yarn-site.xml
vi yarn-site.xml
//在<configuration></configuration>增加内容:
<!-- java开发用 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- java开发用 -->
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<!-- 指定resourcemanager的位置 -->
<property>
<name>yarn.resourcemanager.address</name>
<value>sunsk01:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>sunsk01:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>sunsk01:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>sunsk01:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>sunsk01:8088</value>
</property>
- 6、集中式管理-配置slaves(由于只有三个节点,所有 sunsk01节点既是namenode,也是datanode)
vi slaves
//下面是所有hadoop datanode的主机名
用下面内容覆盖slaves文件
sunsk01
sunsk02
sunsk03
- 7、将hadoop配置好的包发送到每台datanode节点(root)
//发送命令如下
scp -r /app/hadoop-2.7.3 sunsk02:/app
scp -r /app/hadoop-2.7.3 sunsk03:/app
三、启动hadoop
- 1、格式化namenode
//特别注意:只在namenode节点执行操作,不需要再datanode机器上执行任何操作
hadoop namenode -format
- 2、启动所有hadoop守护进程
//特别注意:只在namenode节点执行操作,不需要再dananone机器上执行任何操作
//因为配置了环境变量,所以在任何目录都可以执行start-all.sh脚本
start-all.sh
四、检验是否安装成功
- 1、namenode节点检测是否成功
命令: jps
// jps后会出现一下五个进程
DataNode
NodeManager
ResourceManager
SecondaryNameNode
NameNode
进入:http://IP:50070
查看是否能进入
- 2、datanode节点检测
命令: jps
//jps后会有两个进程
NodeManager
DataNode
五、常用维护命令
jps 查看进程是否存在
http://IP:50070 是否能进去
执行:hadoop fs -ls /
是否报错,出现文件夹即为安装成功
六、常见问题
启动后会有进程缺少
查看hadoop下的log日志
解决问题后删除每台机器的/data01/dfs
重新格式化,重新启动,重复第三步
七、卸载
rm -rf /data01/dfs
rm -rf /usr/local/src/hadoop-2.8.5
八、自己遇到的问题
1、因为自己安装的是jdk11,所以总是报错非法调用(反射),百度说高版本的jdk不支持那种反射了,所以换回jdk8就可以了。
作者:孙双凯_06e
链接:https://www.jianshu.com/p/1be2ca085f59