搭建环境以及服务器说明:4台服务器:1台master,3台slave,基于centos7,hadoop使用版本2.6 ,jdk使用版本1.8,默认已经安装好虚拟机。本次使用VM12+centos7(最小化主机安装)
一、新建用户(可以忽略不计)
分别给 4 台服务器注册 rookie 用户 ( 使用普通用户的时候会遇到一些权限的问题 , 如果不会解决权限问题 , 可使用 root 用户 )
useradd rookie 添加rookie用户
passwd rookie 设置rookie用户的密码
使用rookie 用户登录时,不能修改hosts文件 用sudo提示rookie不在sudoers 文件中,
用root登录然后再etc/sudoers中添加 rookie ALL=(ALL:ALL) ALL
二、配置hosts
192.168.144.128 master
192.168.144.129 slave1
192.168.144.130 slave2
192.168.144.131 slave3
关闭防火墙使用systemctl disable firewalld.service 开机禁用,然后使用reboot重启电脑
几台虚拟机都要进行这一步操作
三、配置SSH免密钥登录(都是用rookie用户登录)
a) ssh-keygen -t rsa
b) cd /home/ rookie /.ssh(哪个用户安装 就在哪个用户home的下面)
c) cat id_rsa.pub>>authorized_keys
d) ssh IP地址cat /home/rookie/.ssh/id_rsa.pub>>authorized_keys
e) scp authorized_keys ip:/home/ rookie /.ssh/
f) 普通用户需要将authorized_keys权限设置为600,chmod 600 authorized_keys
四、安装JDK
a)解压到/usr/local/java目录下
b)配置环境变量 vim /etc/profile添加
export JAVA_HOME=/usr/local/java/jdk
将jdk解压文件的名字改为jdk,为了修改版本时,不用修改环境变量
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
c) source /etc/profile 刷新环境变量,不用重启电脑
五、安装Master节点的hadoop
Linux中无论安装什么都要把文件名字去掉版本号,为了修改版本时,不用修改环境变量
a) 解压hadoop到/usr/local/rookie下
然后配置环境变量 sudo vim /etc/profile
export HADOOP_HOME=/usr/local/rookie/hadoop
export HADOOP_CONF_HOME=$HADOOP_HOME/etc/hadoop/
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
之后source /etc/profile
使用 hadoop version 命令来检测是否安装配置成功,以下是安装成功截图
b) 修改hadoop配置
i. 修改core-site.xm(添加变量)
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value><!--master节点 -->
</property>
<property>
<name>hadoop.tmp.dir</name> <!—这个是hdfs name和data的保存位置-->
<value>/usr/local /tmp</value>
</property>
</configuration>
ii. 修改hdfs-site.xm(添加变量)
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value><!-- hdfs备份的数量,eclipse上传到服务器hdfs,需要修改备份数,则在程序中设置此参数-->
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value><!-- 主机名:9001-->
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
iii. 修改yarn-site.xm(添加变量)
网上有些教程修改了端口,作为初学者不应该修改端口号,默认即可,不然后面在写代码的时候各种问题就出来了(此处被坑过)
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value> <!—yarn的主机名 -->
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
iv. 修改mapred-site.xml (添加变量)
<-- 设置yarn调度-->
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
v. 添加 masters文件和内容(当前文datanode节点拥有即可)
里面内容是:master
vi. 添加slaves文件和内容(当前文件namenode节点拥有即可)
里面内容是:hosts配置的ip和hostname对应
slave1
slave2
slave3
vii. 设置hadoop中的java环境变量:hadoop路径/etc/hadoop/hadoop-env.sh
找到对应的位置修改(修改后如下)
export JAVA_HOME=/usr/local/rookie/java/jdk
六、安装slave节点的hadoop
复制 jdk hadoop的文件到salve节点,并修改相关的配置变量(slave的文件夹需要提前建好)
scp -r /usr/local/rookie/hadoop ip:/usr /local/rookie
scp -r /usr/local/java /jdk ip:/usr /local/java
sudo scp /etc/profile ip:/etc
上面复制需要分别复制到3个节点上
使各节点的配置文件生效 source /etc/profile (每一个slave都要执行该命令)
经过上面的步骤,hadoop分布式集群已经初步搭建完成,现在可以尝试启动集群
--------------------------------------------------------启动集群--------------------------------------------------------------------------------
首先 hadoop namenode –format 格式化namenode
格式化一次,下次不用重新格式化,namenode里面保存的元数据,没有元数据不能定位到文件具体存在那些datanode节点
第一次启动的时候如果卡在了启动datenode 可能需要输yes (记住当前的hosts)
然后 start-dfs.sh 启动,没有报错则视为启动成功,成功后日志如下
Jps 查看
master:
slave:
然后 start-yarn.sh启动yarn
yarn:
jps:
最终打开在浏览器 http://master:50070 mater 为hadoop master节点ip 大致这样就算成功