详细的Hadoop的入门教程-伪分布模式Pseudo-Distributed Operation
一、 伪分布模式Pseudo-Distributed Operation
这里关于VM虚拟机的安装就不再介绍了,详细请看《VMware虚拟机的三种网络管理模式》一章介绍。这章只介绍hadoop伪分布模式的环境搭建
1、 设置静态IP
(1) 修改网卡配置:
$ vi /etc/sysconfig/network-scripts/ifcfg-eth0
(2) 重启网卡:
$ service network restart
(3) 验证一下:
$ ifconfig
2、 修改主机名:
(1) 修改当前会话中的主机名,执行命令hostname Hadoop (临时修改不推荐)
$ hostname hadoop
(2) 修改配置文件中的主机名,执行命令vi /etc/sysconfig/network
$ vi /etc/sysconfig/network
修改设置内容:
HOSTNAME=hadoop (主机名命名为hadoop)
3、 Hostname和IP绑定
(1) 修改vi /etc/hosts,增加一行内容,如:
192.168.100.129 hadoop
(2) 验证一下:
$ ping hadoop
4、 关闭防火墙service iptables stop
查看防火墙是否关闭:
$ service iptables status
5、 关闭防火墙的自动运行(推荐彻底关闭)
chkconfig --list 查看服务的启动级别
chkconfig --list | grep iptables 查看防火墙的启动级别
chkconfig iptables off 关闭(彻底)
开启/关闭防火墙: chkconfig iptables on/off
$ chkconfig iptables off
6、 ssh(secure shell)免密码登录
(1) 检查ssh是否安装:rpm -qa | grep ssh 或者(rpm -qa | grep openssh)
(2) 安装:
CentOS安装yum install openssh-server
Ubuntu 安装apt-get install ssh
(3) 验证查看 ssh是否启动 /etc/init.d/sshd status 或者(service sshd status)
(4) 执行命令ssh-keygen -t rsa 产生密钥,位于~./.ssh文件夹中(没有则自动创建),输入命令后一直回车
$ ssh-keygen -t rsa
(5) ssh在验证时要读取authorized_keys公钥文件的内容 ,执行命令
cp id_rsa.pub authorized_keys
(6) 验证:ssh localhost 或:ssh hadoop
$ ssh localhost
7、 下载安装jdk
(1) 一定要下载Oracle的官方jdk版本,这里实验的版本是jdk1.8.0_231,具体看hadoop的版本要求,否则会有不兼容的问题,下载地址:
(2) 将jdk-8u231-linux-x64.tar.gz 解压到 /opt/modules目录下
(3) 解压命令:tar –zxvf jdk-8u231-linux-x64.tar.gz –C /opt/modules
(4) 执行命令vi /etc/profile设置JAVA_HOME环境变量,增加2行内容:
export JAVA_HOME=/opt/modules/jdk1.8.0_231
export PATH=$JAVA_HOME/bin:$PATH
(5) 执行命令source /etc/profile 让设置生效
(6) 验证:java –version
8、 下载安装hadoop
(1) 由于考虑到jdk和hadoop版本的兼容,下载时请看一下相关版本的要求,这里实验是hadoop-3.2.1,下载地址:
https://archive.apache.org/dist/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz
(2) 将hadoop-3.2.1.tar.gz 解压到 /opt/modules目录下
(3) 解压命令:tar –zxvf hadoop-3.2.1.tar.gz –C /opt/modules
(4) 执行命令vi /etc/profile设置JAVA_HOME和HADOOP_HOME环境变量,
增加1行内容:
export HADOOP_HOME=/opt/modules/hadoop-3.2.1
修改1行内容:
export PATH=$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
(5) 执行命令source /etc/profile 让设置生效
(6) 验证:hadoop version
9、 配置hadoop环境变量:修改$HADOOP_HOME/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/opt/modules/jdk1.8.0_231
10、配置$HADOOP_HOME/etc/hadoop/core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop:9000</value> </property> </configuration>
11、配置$HADOOP_HOME/etc/hadoop/hdfs-site.xml,文件分布式系统的name和data的目录
<configuration> <property> <name>dfs.name.dir</name> <value>/opt/data/hadoopfs/name</value> </property> <property> <name>dfs.data.dir</name> <value>/opt/data/hadoopfs/data</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
12、配置$HADOOP_HOME/sbin/start-dfs.sh、stop-dfs.sh
文件开头增加:
HDFS_DATANODE_USER=root HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root
13、格式化hadoop
执行命令hadoop namenode –format
或者 $ bin/hdfs namenode -format
$ hadoop namenode –format
14、启动hadoop
(1) 执行$HADOOP_HOME/sbin/start-dfs.sh,会有三个进程启动:用jps命令查看一下服务进程
$ ./start-dfs.sh
$ jps
DataNode
SecondaryNameNode
NameNode
(2) 在浏览器输入:http://192.168.100.129:9870,可以看到hadoop分布式系统建立起来了。
15、 如果没有出现第14的结果,可能出现的问题有:
(1) 没有进行格式化
(2) hostname与ip没绑定
(3) 配置文件xml未配置正确
(4) 环境变量
(5) ssh免密登录没有配置成功