所需环境
CentOS7,JDK8,hadoop-2.7.7.tar.gz
卸载原OpenJDK
-
输入java -version可查看当前安装的jdk版本
# java -version java version "1.7.0_75" OpenJDK Runtime Environment (rhel-2.5.4.2.el7_0-x86_64 u75-b13) OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode)
-
查询系统自带的jdk:
# rpm -qa | grep java javapackages-tools-3.4.1-6.el7_0.noarch tzdata-java-2015a-1.el7.noarch java-1.7.0-openjdk-1.7.0.75-2.5.4.2.el7_0.x86_64 python-javapackages-3.4.1-6.el7_0.noarch java-1.7.0-openjdk-headless-1.7.0.75-2.5.4.2.el7_0.x86_64
-
删除系统自带的jdk:
# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.75-2.5.4.2.el7_0.x86_64 # rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.75-2.5.4.2.el7_0.x86_64
-
查看jdk是否已删除干净
# rpm -qa | grep java javapackages-tools-3.4.1-6.el7_0.noarch tzdata-java-2015a-1.el7.noarch python-javapackages-3.4.1-6.el7_0.noarch
或者输入java -version
-bash: /usr/bin/java: 没有那个文件或目录
安装oracle JDK8
-
将下载好的jdk-8u281-linux-x64.tar.gz通过xshell传到usr/local/src路径
-
解压 jdk-8u281-linux-x64.tar.gz
tar -zxvf jdk-8u281-linux-x64.tar.gz
在usr/local/src路径下生成文件夹:jdk1.8.0_281
-
重命名jdk1.8.0_281目录为jdk8
mv jdk1.8.0_281 jdk8
-
配置环境变量
# vim /etc/profile
在最下面追加如下内容:
#设置java环境,添加以下部分: #set java environment export JAVA_HOME=/usr/local/src/jdk8 export JRE_HOME=${JAVA_HOME}/jre export CLASS_PATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
-
保存退出后,使配置生效:
# source /etc/profile
-
查看jdk是否安装成功
# java -version java version "1.8.0_281" Java(TM) SE Runtime Environment (build 1.8.0_281-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.281-b09, mixed mode)
安装Hadoop
-
从Hadoop下载最新的Hadoop安装文件
https://hadoop.apache.org/releases.html
-
当前下载版本为 hadoop-2.7.7.tar.gz
-
创建/hadoop目录
# mkdir hadoop
-
将下载好的hadoop-2.7.7.tar.gz通过xshell传到hadoop路径
-
解压hadoop-2.7.7.tar.gz
tar -zxvf hadoop-2.7.7.tar.gz
解压后在hadoop目录下生成了hadoop-2.7.7文件夹
- 修改配置文件 vi hadoop-env.sh
[root@localhost hadoop-2.7.7]# cd etc
[root@localhost etc]# cd hadoop
[root@localhost hadoop]# vi hadoop-env.sh
将jdk环境变量改为之前设置的 /usr/local/src/jdk8
# The java implementation to use.
export JAVA_HOME=${JAVA_HOME}
改为如下
export JAVA_HOME=/usr/local/src/jdk8
-
修改core-site.xml
[root@localhost hadoop]# vi core-site.xml
// hadoop核心配置 <!-- core-site.xml --> <configuration> <!--指定namenode的地址--> <property> <name>fs.defaultFS</name> <value>hdfs://localhost/</value> </property> </configuration>
-
修改hdfs-side.xml
[root@localhost hadoop]# vi hdfs-side.xml
<!-- hdfs-side.xml -->
<configuration>
<!--指定hdfs保存数据的副本数量-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
-
修改mapred-site.xml
该2.7.7版本只有mapred-site.xml.templat文件,将其复制一份改名为mapred-site.xml
# cp mapred-site.xml.template mapred-site.xml
[root@localhost hadoop]# vi mapred-site.xml
<!-- mapred-site.xml -->
<configuration>
<!--告诉hadoop以后MR运行在YARN上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
- 修改yarn-site.xml
[root@localhost hadoop]# vi yarn-site.xml
<!-- yarn-site.xml -->
<configuration>
<!--指定Yarn的老大(ResourceManager)的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<!--NodeManager上运行的附属服务,需配置成mapreduce_shuffle,才可运行MapReduce程序-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
格式化&启动和停止
将目录退到 cd hadoop/hadoop-2.7.7/bin
hdfs namenode -format #格式化namenode
start-dfs.sh #启动hdfs
start-yarn.sh #启动yarn
hdfs getconf -namenodes #获取namenode节点名称
[root@localhost bin]# ./hdfs namenode -format
将路径退到cd hadoop/hadoop-2.7.7/sbin
[root@localhost sbin]# ./start-all.sh
查看是否正常启动看logs,以及使用jps查看是否为5个进程(除jps进程外)
服务的停止
[root@localhost sbin]# ./stop-all.sh
查看日志:
修改主机名(修改主机名会导致服务启动不了)
# hostnamectl set-hostname hadoop1
这时需要删除根路径下的tmp/hadoop-root/dfs文件下所有内容
[root@localhost hadoop-root]# rm -rf dfs
应用
1、进入到bin目录,创建一个文件
# echo "abc" > file.txt
2、查看文件内容
# cat file.txt
3、查看hdfs里是否有数据
./hdfs dfs -ls /
关闭防火墙
systemctl stop firewalld.service
关闭防火墙后可访问hadoop自带的50070端口
如:http://192.168.237.128:50070/
将file.txt上传到hdfs里面其中最后的空格斜杠 / 表示hdfs的根路径
[root@hadoop1 bin]# ./hdfs dfs -put file.txt /