安装hadoop教程
安装ssh
安装命令:
yum install openssh-clients openssh-server
中途遇到需要选择的直接回车默认。
安装完成后,使用命令测试: ssh localhost,输入root密码,登录成功则说明安装完成。
配置ssh免密码登录
hadoop是一个分布式系统,节点间通过ssh通信,为了避免在连接过程中人工输入密码,需要进行ssh免key登陆的配置,由于本例是在单机上模拟分布式过程,因此需要针对本机(localhost)进行免key登陆的配置。 依此输入如下命令进行配置:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
登录测试:
配置Java环境
安装jdk
使用yum来安装1.8版本OpenJDK:
yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
安装过程中同样回车默认,安装好用which java命令找到安装的目录,
键入java和javac,如果能输出对应的命令帮助,则表明jdk已正确安装。
配置java环境变量
执行命令:
vim ~/.bashrc
,在结尾追加:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64
这里要注意:绿色区域要根据自己/usr/lib/jvm的文件夹里的内容而改变,通过命令:ll /usr/lib/jvm 查看并选择jdk文件:
保存文件后执行下面命令使 JAVA_HOME 环境变量生效:
为了检测系统中java环境是否已经正确配置并生效,可以分别执行以下命令:
java -version
$JAVA_HOME/bin/java -version
若两条命令输出的结果一致,且都为我们前面安装的 openjdk-1.8.0 的版本,则表明 JDK 环境已经正确安装并配置。
安装hadoop
下载 Hadoop:本教程使用 hadoop-3.2.0 版本,使用 wget 工具在线下载
wget http : //archive.apache.org/dist/hadoop/common/hadoop-3.2.0/hadoop-3.2.0.tar.gz
下载完成后会有一个压缩包:
安装 Hadoop:将 Hadoop 安装到 /usr/local 目录下:
tar -zxf hadoop-3.2.0.tar.gz -C /usr/local
对安装的目录进行重命名,便于后续操作方便:
mv ./usr/local/hadoop-3.2.0/ ./hadoop
检查Hadoop是否已经正确安装:
/usr/local/hadoop/bin/hadoop version
hadoop伪分布式环境配置
设置 Hadoop 的环境变量
输入
vim ~/.bashrc
指令,在结尾追加如下内容:
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
使Hadoop环境变量配置生效:
source ~/.bashrc
修改 Hadoop 的配置文件
Hadoop的配置文件位于安装目录的 /etc/hadoop目录下,在本教程中即位于 /url/local/hadoop/etc/hadoop 目录下,需要修改的配置文件为如下两个:
/usr/local/hadoop/etc/hadoop/core-site.xml
/usr/local/hadoop/etc/hadoop/hdfs-site.xml
编辑core-site.xml,修改<configuration></configuration>节点的内容为如下所示:
vim /usr/local/hadoop/etc/hadoop/core-site.xml
输入以下内容:
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>location to store temporary files</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
同理,编辑 hdfs-site.xml,修改<configuration></configuration>节点的内容为如下所示:
vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
输入以下内容:
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
格式化
NameNode:/usr/local/hadoop/bin/hdfs namenode -format
出现如下就表示成功:
启动NameNode和DataNode进程:
/usr/local/hadoop/sbin/start-dfs.sh
有可能会出现如下错误:
解决方法:
是因为缺少用户定义造成的,所以分别编辑开始和关闭脚本
$ vim sbin/start-dfs.sh
$ vim sbin/stop-dfs.sh
Sbin是hadoop文件下的一个文件夹、
在顶部空白处添加内容:
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
vim /usr/local/hadoop/sbin/start-dfs.sh
vim /usr/local/hadoop/sbin/stop-dfs.sh
然后再次输入:
/usr/local/hadoop/sbin/start-dfs.sh
检查NameNode和DateNode是否正常启动:
jps