声明:大数据系列教程文章由Java潘老师辛苦原创,免费公开供java爱好者学习。如需转载请获得潘老师授权并保留原文链接,如有疑问或建议,可以联系潘老师:
Q:1562691348
V:A1562691348
本教程学习知识储备:Java SE基础、Linux基础、数据库基础
一、安装
1.下载Hadoop,这里我们使用hadoop-3.2.1版本
下载地址:https://hadoop.apache.org/releases.html
2.参考安装jdk步骤,在/usr目录下新建hadoop目录,将hadoop安装包上传至usr的hadoop目录
3.解压到当前文件夹
sudo tar -zxvf hadoop-3.2.1.tar.gz |
然后ls查看
4.配置环境变量
sudo vi /etc/profile 添加如下环境变量:
export HADOOP_HOME="/usr/hadoop/hadoop-3.2.1"
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
可以和JAVA_HOME合并着写。
保存退出后,执行source /etc/profile,是修改生效,接着使用echo $PATH查看path
5.执行hadoop version看是否成功
二、设置
注意:这些文件的默认配置可以参考官方文档:
http://hadoop.apache.org/docs/r3.2.1/
左下角有个Configuration
1.配置文件位置:
进入该目录:cd /usr/hadoop/hadoop-3.2.1/etc/hadoop/
2.修改hadoop-env.sh 配置运行环境变量,默认情况下,该文件没有任何配置
sudo vi hadoop-env.sh |
在文件末添加配置
export JAVA_HOME=/usr/java/jdk1.8.0_111 export HDFS_NAMENODE_USER=hadoop export HDFS_DATANODE_USER=hadoop export HDFS_SECONDARYNAMENODE_USER=hadoop |
JAVA_HOME:指定JDK路径
HDFS_NAMENODE_USER:指定操作NameNode进程的用户
HDFS_DATANODE_USER:指定操作DataNode进程的用户
HDFS_SECONDARYNAMENODE_USER:指定操作 Secondary NameNode进程的用户
我们这里指定的用户是hadoop,具体应用时,据实际情况而定。这三个是hadoop3.x为了提升安全性而引入的。
日志信息默认在${HADOOP_HOME}/logs中,也可以自行配置目录。
如图:
3.修改core-site.xml,在configuration中添加(如果为了让Windows浏览器能访问到,可以写虚拟机ip,无须windows访问可以使用master主机名,我们这使用主机名)
sudo vi core-site.xml |
<property> <name>fs.defaultFS</name> <value>hdfs://master:9820</value> </property>
<property> <name>hadoop.tmp.dir</name> <value>/usr/hadoop/hadoopdata</value> </property> |
hadoop.tmp.dir默认值为"/tmp/hadoop-${user.name}"。Linux操作系统重启后,这个目录会被清空,这可能导致数据丢失,因此需要修改,
以上配置参数解释:
fs.defaultFs 指NameNode所在节点,value这里配置master;端口9820;hdfs指协议
hadoop.tmp.dir 指配置元数据存放的位置,默认值为"/tmp/hadoop-${user.name}"。Linux操作系统重启后,这个目录会被清空,这可能导致数据丢失,因此需要修改,
value这里配置为/usr/hadoop/hadoopdata, 后续如果查看fsiamge和edits文件,可以在这个目录下找
4.配置hdfs-site.xml
sudo vi hdfs-site.xml |
<property> <name>dfs.replication</name> <value>1</value> </property> |
参数解释:
dfs.replication:配置副本数量,默认是3,一般我们副本数量要小于等于DataNode数量
注意两个默认配置:
5.配置mapred-site.xml
sudo vi mapred-site.xml |
添加配置
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> |
配置mapreduce调度模式,默认是local本地模式,这里我们使用yarn模式。
6.配置yarn-site.xml
sudo vi yarn-site.xml |
添加如下配置
<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>
<property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CL ASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value> </property> |