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 及以上
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
site文件会覆盖默认的default文件配置
// hadoop配置文件目录
cd /usr/local/src/hadoop-2.8.5/etc/hadoop
export JAVA_HOME=${JAVA_HOME}
vi core-site.xml
//在 增加hdfs的端口信息
//增加的内容如下:
fs.defaultFS
hdfs://sunsk01:9000
hadoop.tmp.dir
file:/data01/dfs/tmp
io.file.buffer.size
131702
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
//在 增加内容:
mapreduce.framework.name
yarn
mapreduce.jobhistory.address
sunsk01:10020
mapreduce.jobhistory.webapp.address
sunsk01:19888
vi hdfs-site.xml
//在 增加内容:
dfs.namenode.name.dir
file:/data01/dfs/nn
dfs.datanode.data.dir
file:/data01/dfs/dn
dfs.replication
2
dfs.namenode.heartbeat.recheck-interval
10000
dfs.namenode.secondary.http-address
sunsk01:9001
dfs.webhdfs.enabled
true
vi yarn-site.xml
//在 增加内容:
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.nodemanager.auxservices.mapreduce.shuffle.class
org.apache.hadoop.mapred.ShuffleHandler
yarn.resourcemanager.address
sunsk01:8032
yarn.resourcemanager.scheduler.address
sunsk01:8030
yarn.resourcemanager.resource-tracker.address
sunsk01:8031
yarn.resourcemanager.admin.address
sunsk01:8033
yarn.resourcemanager.webapp.address
sunsk01:8088
vi slaves
//下面是所有hadoop datanode的主机名
用下面内容覆盖slaves文件
sunsk01
sunsk02
sunsk03
//发送命令如下
scp -r /app/hadoop-2.7.3 sunsk02:/app
scp -r /app/hadoop-2.7.3 sunsk03:/app
//特别注意:只在namenode节点执行操作,不需要再datanode机器上执行任何操作
hadoop namenode -format
//特别注意:只在namenode节点执行操作,不需要再dananone机器上执行任何操作
//因为配置了环境变量,所以在任何目录都可以执行start-all.sh脚本
start-all.sh
命令: jps
// jps后会出现一下五个进程
DataNode
NodeManager
ResourceManager
SecondaryNameNode
NameNode
进入:http://IP:50070
查看是否能进入
命令: 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