参考:Hadoop官网文档
版本:hadoop-3.2.0
安装配置jdk
因hadopp是java开发的,所以安装hadoop前需要先有java的jdk环境。
参考:https://blog.csdn.net/u013248434/article/details/70304526
因CentOS7自带java,只需找到java路径,配置环境变量即可
[cjp@centos] which java
/usr/bin/java
[cjp@centos] ls /usr/bin/java
/usr/bin/java
[cjp@centos] ls -l /usr/bin/java
lrwxrwxrwx. 1 root root 22 Jun 20 03:00 /usr/bin/java -> /etc/alternatives/java
[cjp@centos] ls -l /etc/alternatives/java
lrwxrwxrwx. 1 root root 71 Feb 3 17:29 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64/jre/bin/java (可以看出文件是link ,是个链接)
[cjp@centos] ls -l /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64/jre/bin/java
-rwxr-xr-x. 1 root root 7376 Oct 31 05:21 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64/jre/bin/java
[cjp@centos] cd /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64
[cjp@centos] ls
jre
配置环境变量
# 添加环境变量
[cjp@centos] sudo vim /etc/profile
# 在/etc/profile中加入以下内容
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64/jre
export PATH=$JAVA_HOME/bin:$PATH
# 配置文件生效
[cjp@centos] source /etc/profile
# 查看是否已添加生效
[cjp@centos] echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64/jre
安装Hadoop
本次安装是以练习为目的,使用的是伪分布式模式(只有一台机器),这台机子即是主节点namenodes,同时也有一个计算节点,所有主节点需要可以免密码登陆所有数据节点datanodes的机子;如果还为配置,可执行下面三行代码:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
下载解压
-
下载(清华镜像)
wget http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.2.0/hadoop-3.2.0.tar.gz
-
解压
# 解压tar.gz tar -xzvf hadoop-3.2.0.tar.gz # 解压到指定文件夹: tar -xzvf hadoop-3.2.0.tar.gz -C /home/chenjunpeng/app
配置文件
参考:https://www.cnblogs.com/forbeat/p/8179877.html
文件路径: ~/app/hadoop-3.2.0/etc/hadoop
-
java配置
-
hadoop-env.sh
echo $JAVA_HOME >>> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64/jre
-
找到并修改
xml export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64/jre
-
hdfs配置
-
core-site.xml(伪分布式模式)
<!-- 指定HDFS老大(namenode)的通信地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> <!-- 指定hadoop运行时产生文件的存储路径 --> <!-- 如果不重新设置存储路径,默认是缓冲路径下,每次重启数据就会清空丢失--> <property> <name>hadoop.tmp.dir</name> <value>/home/cjp/app/hadoop-tmp</value> </property>
-
hdfs-site.xml
<!-- 设置hdfs副本数量 --> <!-- 1个就是伪分布--> <property> <name>dfs.replication</name> <value>1</value> </property>
-
-
yarn配置
-
mapred-site.xml
# 由于在配置文件目录下没有,需要复制模版: # 新版本已经不是模版了,直接使用 mv mapred-site.xml.template mapred-site.xml
<configuration> <!-- 通知框架MR使用YARN --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
-
yarn-site.xml
<configuration> <!-- reducer取数据的方式是mapreduce_shuffle --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
-
启动hadoop
格式化HDFS
-
注意:这一步操作,只是在第一次时执行,每次如果都格式化的话,那么HDFS上的数据就会被清空
-
bin目录下
./hdfs namenode -format
启动hdfs和yarn
# 先启动HDFS
sbin/start-dfs.sh
# 再启动YARN
sbin/start-yarn.sh
[cjp@centos sbin]$ ./start-dfs.sh
Starting namenodes on [localhost]
Starting datanodes
Starting secondary namenodes [centos]
[cjp@centos sbin]$ ./start-yarn.sh
Starting resourcemanager
Starting nodemanagers
可以在浏览器中查看hdfs和mr的状态.
hdfs管理界面:http://localhost:50070 / http://localhost:9870(3.0版本后的端口号)
MR的管理界面:http://localhost:8088
停止hdfs和yarn
sbin/stop-yarn.sh
sbin/stop-dfs.sh