最近在学习Hadoop,遇到了很多坑,下面讲讲怎么搭载。
(一)软件准备以及前提:
1,三台机器装有cetos7的机子。
2,每台linux系统安装了JDK(我用的JDK1.8)
3,hadoop-2.9.0.tar.gz(包)
以上都可以直接百度怎么安装。
(二)安装步骤:
1,创建用户(三台都要相同)
进入root : su root
创建用户hadoop: useradd hadoop
修改用户密码:passwd hadoop
2.关闭防火墙及修改每台机的hosts
每台机子都按如下修改,红色部分是添加,按格式添加。
vim /etc/hosts
查看修改后的机器名字
cat /etc/hostsname
关闭防火墙:
systemctl stop firewalld.service
禁用防火墙:systemctl disable firewalld.service
查看防火墙状态firewall-cmd –state
重启 reboot
3.安装SSH、配置SSH无密码登陆(用新建的用户来创建)
su hadoop
输入登录密码
1) 在master主机生成密钥对
ssh-keygen -t rsa
这个命令生成一个密钥对:id_rsa(私钥文件)和id_rsa.pub(公钥文件)。默认被保存在~/.ssh/目录(如果没有在.ssh生成,可以进入在 ~/.ssh 下执行命令)
2)将公钥复制到从机上,2台从机都要
scp ~/.ssh/id_rsa.pub [email protected]:/home/hadoop/
登陆从机,将公钥放到authorized_keys目录
cat /home/hadoop/id_rsa.pub >> /hadoop/.ssh/authorized_keys(如果.ssh目录不存在,新建一个)
3)给每台机子添加权限
chmod 700 ~/.ssh
chmod 644 ~/.ssh/authorized_keys
4)测试:
在主机master上登陆从机slave
ssh [email protected]
如果能切换到slave则表示成功。
注意:在切换到slave1后,如果需要测试登陆slave2的话,需要先返回到master,用命令exit
(三 )配置Hadoop集群
1,解压hadoop和建立文件
root用户下:tar zxvf /home/hadoop/hadoop-2.9.0.tar.gz -C /usr/
重命名:mv hadoop-2.7.3 hadoop
授权给hadoop: chown -R hadoop /usr/hadoop
2,创建hdfs相关文件(三台机子都需要操作)
创建存储hadoop数据文件的目录: mkdir /home/hadoopdir
mkdir /home/hadoopdir/tmp
mkdir /home/hadoopdir/dfs
存储临时文件,如pid:mkdir /home/hadoopdir/tmp
创建dfs系统使用的dfs系统名称hdfs-site.xml使用:mkdir /home/hadoopdir/dfs/name
创建dfs系统使用的数据文件hdfs-site.xml文件使用:mkdir /home/hadoopdir/dfs/data
授权给s: chown -R s /home/hadoopdir
3,配置环境变量(三台机子都需要操作)
root用户下:vim /etc/profile
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/rt.jar:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
保存退出后:source /etc/profile
进入到 解压的Hadoop文件的 bin目录,cd /usr/hadoop/bin
执行 ./hadoop vserion 查看 版本
4,配置hadoop文件内容
cd /usr/hadoop/etc/hadoop
修改 core-site.xml 文件,在configuration添加配置
<configuration>
<property>
<name>fs.defaultFSname>
<value>hdfs://master:9000value>
property>
<property>
<name>io.file.buffer.sizename>
<value>131072value>
property>
<property>
<name>hadoop.tmp.dirname>
<value>file:/home/hadoopdir/tmp/value>
<description>A base for other temporary directories.description>
property>
configuration>
修改hdfs-site.xml文件
<configuration>
<property>
<name>dfs.namenode.name.dirname>
<value>file:///home/hadoopdir/dfs/namevalue>
property>
<property>
<name>dfs.datanode.data.dirname>
<value>file:///home/hadoopdir/dfs/datavalue>
property>
configuration>
修改mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.namename>
<value>yarnvalue>
property>
<property>
<name>mapreduce.jobhistory.addressname>
<value>master:10020value>
property>
<property>
<name>mapreduce.jobhistory.webapp.addressname>
<value>master:19888value>
property>
<property>
<name>mapreduce.jobtracker.http.addressname>
<value>master:50030value>
property>
<property>
<name>mapred.job.trackername>
<value>master:9001value>
property>
configuration>
修改 yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-servicesname>
<value>mapreduce_shufflevalue>
property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.classname>
<value>org.apache.hadoop.mapred.ShuffleHandlervalue>
property>
<property>
<name>yarn.resourcemanager.hostnamename>
<value>mastervalue>
property>
<property>
<name>yarn.resourcemanager.addressname>
<value>master:8032value>
property>
<property>
<name>yarn.resourcemanager.scheduler.addressname>
<value>master:8030value>
property>
<property>
<name>yarn.resourcemanager.resource-tracker.addressname>
<value>master:8031value>
property>
<property>
<name>yarn.resourcemanager.admin.addressname>
<value>master:8033value>
property>
<property>
<name>yarn.resourcemanager.webapp.addressname>
<value>master:8088value>
property>
configuration>
修改 slaves文件,同样在这个目录下
添加从机的名字
slave1
slave2
5,搭建集群(普通用户hadoop)
格式hadoop文件:hadoop namenode -format (最后出现“util.ExitUtil: Exiting with status 0”,表示成功)
发送dfs内容给slave1:scp -r /home/hadoopdir/dfs/* slave1:/home/hadoopdir/dfs
发给dfs内容给slave2:scp -r /home/hadoopdir/dfs/* slave2:/home/hadoopdir/dfs
发送hadoop文件给数据节点:scp -r /usr/hadoop/* slave1:/usr/hadoop/ scp -r /usr/hadoop/* slave2:/usr/hadoop/
进入 sbin 启动
cd /usr/hadoop/sbin
./start-all.sh
使用jps 命令查看启动情况(没有这个命令的需要安装 yum install jps*)
master
slave
出现这个就成功了。
最后离开安全模式
在master下
cd /usr/hadoop/bin
./hadoop dfsadmin safemode leave
可以登录网页查看:http://master:50070 (查看live node)
查看yarn环境http://master:8088
本文参考此处1
本文参考此处2