伪分布式Hadoop搭建
hadoop的安装
-
下载Hadoop压缩文件
这里使用清华的镜像
wget http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz
-
解压
tar -zxvf hadoop-2.8.5.tar.gz
-
文件目录说明
- bin:hadoop最基本的管理脚本和使用脚本,这些脚本是sbin目录下管理脚本的基础实现,用户可以用这些脚本管理和使用hadoop
- etc:hadoop配置文件所在目录
- include:对外提供的编程库头文件,这些头文件均是c++定义的
- lib:该目录提供了对外编程的静态库和动态库,与include目录下的头文件结合使用
- libexec:各个服务所对应的shell配置文件所在目录,可用于配置日志输出目录,启动参数等基本信息
- sbin:hadoop管理脚本所在目录,主要包括HDFS和YARN中各类服务的启动/关闭脚本
- share:hadoop各个模块编译后的jar包所在目录
-
JDK与Hadoop关联
#进入hadoop解压后的文件夹 cd hadoop-2.8.5/ #打印jdk的路径 echo $JAVA_HOME #进入配置目录 cd etc/hadoop/ #打开配置文件 vi hadoop-env.sh #找到 export JAVA_HOME=${JAVA_HOME} #修改为自己的jdk路径 export JAVA_HOME=/root/bigdata/jdk1.8.0_191
-
配置hdfs的访问入口
#继续在etc/hadoop/目录下 vi core-site.xml #在core-site.xml的configuration中配置如下 <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://本机名字:9000</value> </property> </configuration>
-
修改默认的副本数
#继续在etc/hadoop/目录下 vi hdfs-site.xml #在hdfs-site.xml的configuration中配置如下 <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
-
进行格式化
-
配置环境变量
#打开/etc/profile #添加如下的环境变量 export HADOOP_HOME=/root/bigdata/hadoop-2.8.5 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
-
初始化
#在任意目录下输入一下 hdfs namemode -format
出现如下配置成功
1544097946056.png -
-
启动hadoop服务
start-dfs.sh
需要输入yes,和root的登录密码,总共三次
输入
jps
出现如下三个进程即配置成功
修改hadoop默认数据目录
hadoop的默认数据目录在tmp目录下,而Linux会定期清理tmp目录下的文件,所以我们主要修改
进入
$HADOOP_HOME/etc/hadoop/
目录下-
打开文件`vi core-site.xml
在配置项中添加如下
<property> <name>hadoop.tmp.dir</name> <value>/root/bigdata/hadoop_data</value> </property>
这样我们就把默认数据目录更改到
/root/bigdata/hadoop_data/
下 -
格式化
hdfs namenode -format
看到如下的信息,则修改成功
配置免密登录
-
使用下面的命令生成ssh秘钥,使用rsa加密算法
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
-
将公钥放在需要进行免密的服务器上
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
使用
start-dfs.sh
启动,已经不在需要密码
关闭防火墙
systemctl stop firewalld
禁用防火墙
systemctl disable firewalld
现在使用ip+50070端口可以访问
配置参考Hadoop文档[http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html]: