伪分布式:
只需要一个虚拟机,所有节点都在该虚拟机上
1.首先,需要安装JDK,将上传的jdk解压
tar -zxvf jdk压缩包
2.配置环境变量,位置:/etc/profile
export JAVA_HOME=/opt/software/jdk1.8.0_121
export PATH=$PATH:$JAVA_HOME/bin
注:两个地方都能配置 用户变量 .bashrc 系统变量 /etc/profile
3.让环境变量生效
source /etc/profile
4.检验JDK是否配置成功
java -version
如果出现jdk的版本号,一切ok
5.解压hadoop包
tar -zxvf hadoop-2.6.5.tar.gz
6.更改slaves配置文件 路径----->hadoop-2.6.5/etc/hadoop/下
进来该文件后,删除原有配置,写上自己的主机名
7.在hdfs-site.xml增加配置,将下面的配置添加到<configuration>标签里面
<property>
<name>dfs.replication</name> //设置备份个数
<value>1</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name> //secondaryNamenode
<value>node01:50090</value>
</property>
8.在core-site.xml增加配置,将下面的配置添加到<configuration>标签里面
<property>
<name>fs.defaultFS</name> //namenode
<value>hdfs://node01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name> //namenode启动后产生的信息
<value>/var/abc/hadoop/local</value>
</property>
9.把hadoop-2.6.5/etc/hadoop/路径下*-env.sh(名字里带env)的文件内部所有的java路径改为绝对路径
例如:JAVA_HOME=/opt/software/jdk1.8.0_121
只要配置文件里面有JAVA_HOME,就改为绝对路径
10.格式化,让所有的文件生效
hdfs namenode -format
hdfs命令在bin目录下,所以得先cd到bin目录
11.启动
/opt/software/hadoop/sbin
./start-dfs.sh
12.这样启动太过麻烦,所以我们可以配置hadoop的环境变量,可以在任何路径启动
export HADOOP_HOME=/opt/software/hadoop-2.6.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
13.我们可以在网页上访问: IP地址:端口号 如果页面显示正常,代表配置成功
http://IP地址:50070
SSH免密登录:
原因:节点与节点之间进行交互是需要输入密码的,每次都手动输入密码太过麻烦,所以要进行该操作
ssh-keygen -t rsa //在客户端生成一对密钥(公钥/私钥),指定加密算法为rsa
//一直回车就行
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node01 //将客户端公钥发送到服务端
//输入几次yes
完全分布式集群:
从节点分布在几个服务器上,所有角色都存在
1.首先,在主节点的虚拟机配置多个节点的网络映射 /etc/hosts
IP地址 node01
IP地址 node02
IP地址 node03
IP地址 node04
2.多个节点之间免密登录
在每一个节点上运行ssh-keygen -t rsa 产生他们自己的密钥
在node01执行
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node01
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node02
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node03
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node04
3.用scp命令把文件传到其他节点
scp /etc/hosts root@IP地址:/etc //如果报错,把IP地址换为主机名
4.修改slaves文件----设置DN节点的启动位置
node02
node03
node04
5.修改hdfs-site.xml
<property>
<name>dfs.replication</name> //副本数量
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name> //SSN的位置
<value>node02:50090</value>
</property>
6.将修改完的文件发送到其他节点上
scp -r /etc/hadoop文件名 root@node02:/opt/software
7.格式化,让配置文件生效
hdfs namenode -format //只需要在主节点格式化
8.启动集群
start-dfs.sh
9.网站访问主节点的IP地址:50070,3代表3个DN
如果该行显示0,代表DN没启动,解决方式:
①先关闭集群
②删除所有服务器上的abc文件----core-site.xml配置的namenode启动后产生的信息
③在主节点的服务器上格式化
④启动集群
注意事项:
①每台服务器必须保证网络畅通,用ping命令测试
②必须关闭每台服务器的防火墙