hadoop版本为3.1.2
下载地址
http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.1.2/hadoop-3.1.2.tar.gz
jdk版本为1.8(建议使用)
下载地址
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
步骤
一:准备java环境
1:解压jdk
tar zxvf jdk-8u144-linux-x64.tar.gz -C /usr/local/
mv /usr/local/jdk-8u144-linux-x64 /usr/local/java
2:设置环境变量
cat /etc/profile
3:检查是否安装
java -version
二:安装hadoop
1:解压hadoop安装包
tar zxvf hadoop-3.1.2.tar.gz -C /usr/local/
mv /usr/local/hadoop-3.1.2 /usr/local/hadoop
2:进入安装目录修改配置文件
cd /usr/local/hadoop/etc/hadoop/
(1):修改hadoop-env.sh
(2):修改core-site.xml
<!-- 指定HDFS老大(namenode)的通信地址 -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
(3):修改hdfs-site.xml
<!-- 设置hdfs副本数量 -->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop/hdfs/data</value>
</property>
(4):修改mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
(5):配置masters和slaves文件
注:因为在伪分布式模式下,作为master的namenode与作为slave的datanode是同一台服务器,所以配置文件中的ip是一样的
(6)解析主机名
cat /etc/hosts
(7)创建配置文件需要的目录
mkdir -p /usr/local/hdfs/name
mkdir -p /usr/local/hdfs/data
(8)实现免密登陆
现在检查您是否可以在没有密码的情况下ssh到
ssh localhost
如果在没有密码短语的情况下无法ssh到localhost,请执行以下命令:
ssh-keygen -t rsa -P'' - f ~/.ssh / id_rsa
cat ~/.ssh / id_rsa.pub >>〜/ .ssh/authorized_keys
chmod 0600~ / .ssh / authorized_keys
3:初始化hadoop
bin/hdfs namenode -format
(下图为网图,效果一样)
4:启动hadoop所有进程
sbin/start-all.sh
5:查看是否成功
jps
6:查看集群状态
bin/hadoop dfsadmin -report
错误集锦
Attempting to operate on hdfs namenode as root
解决方法:
将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数
#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
WARNING: HADOOP_SECURE_DN_USER has been replaced by HDFS_DATANODE_SECURE_USER
解决方法:
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
改为
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
namenode running as process 2405. Stop it first.
解决方法:
sbin/stop-all.sh