文章目录
- 一、安装准备
- 二、hadoop的配置
- 1.首先配置hadoop-env.sh
- 2.配置core-site.xml
- 3.配置hdfs-site.xml
- 4.配置mapred-site.xml
- 5.配置yarn-site.xml
- 6.配置slaves
- 7.配置hadoop环境变量
- 三、格式化HDFS
- 四、启动hadoop
- 五、集群搭建
- 1.克隆虚拟机
- 2.配置免密登录
- 3.修改主机器的配置文件
- 4.复制配置文件到备用机器
- 5.启动hadoop
一、安装准备
在linux环境下安装hadoop需要准备的资料如下:
这里主要需要准备的就是jdk和hadoop安装包,将这两个拖到opt目录下解压,jdk的环境变量还是像之前那样配置。
这里可以事先配置好另外两个host,方便后面的集群搭建,参照前面ELK集群搭建的配置方法,能够实现免密登录即可。
二、hadoop的配置
首先切换到如下目录:
[root@localhost opt]# mv hadoop-2.6.0-cdh5.14.2/ hadoop --先将解压好的hadoop目录改个名
[root@localhost hadoop]# cd etc/hadoop --再切换到其下面etc/hadoop下
此时进行ll查看,可以看到有很多xml、sh等类型的文件。
1.首先配置hadoop-env.sh
# The java implementation to use.
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/opt/java8
这里将jdk的路径改成自己配置的路径,这里我也将jdk重命名成java8,改完后保存退出
2.配置core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.234.101:9000</value> --默认节点端口,端口号默认是9000
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value> --hdfs存放的临时目录
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value> --其他机器的所有root用户可以访问
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value> --其他root用户的组内用户可以访问
</property>
</configuration>
在configuration里面加上属性配置。
3.配置hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value> ---副本数
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop01:50090</value> ---从元数据节点名
</property>
</configuration>
4.配置mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value> --MapReduce默认的工作模式:yarn
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop01:10020</value> --MapReduce的工作地址
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop01:19888</value> --MapReduce的历史日志查询地址
</property>
</configuration>
PS:mapred-site.xml文件原本解压后是mapred-site.xml.template,这里将其改名为了保持一致。
5.配置yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<!-- reducer获取数据方式 -->
<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>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<!-- 日志聚集功能使用 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
</configuration>
6.配置slaves
hadoop01 --本机用户改成hadoop01
7.配置hadoop环境变量
直接:vi /etc/profile,在最后一行插入下面的配置
export HADOOP_HOME=/opt/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
三、格式化HDFS
输入命令:
hadoop namenode -format
PS:这里如果出现:
-bash: hadoop: command not found
两种解决方案:(1) 看一下自己的hadoop路径是否配置正确,主要是HADOOP_HOME的配置路径
(2) 因为配置完环境变量,需要使之立即生效,才可以使用hadoop命令,所以要:source /etc/profile
四、启动hadoop
输入命令启动hadoop:
start-all.sh
同时也可以将hadoop的历史查询服务也启动:
[root@localhost hadoop]# mr-jobhistory-daemon.sh start historyserver
然后输入jps查询当前所有进程,显示如下几个,说明启动成功:
[root@localhost hadoop]# jps
10466 NodeManager
9988 NameNode
10100 DataNode
10244 SecondaryNameNode
10789 JobHistoryServer
10379 ResourceManager
10878 Jps
输入网址:192.168.234.101:50070,端口号位50070,显示如下结果再次验证了hadoop启动成功。
五、集群搭建
1.克隆虚拟机
克隆一个虚拟机命名为hadoop2(PS:复制后的虚拟机,网络适配器的MAC地址需要重新生成,不然只能开一个),需要如下操作
vi /etc/sysconfig/network-scripts/ifcfg-ens33 --修改主机地址为:192.168.234.102
vi /etc/hostname --修改主机名为:hadoop02
vi /etc/hosts --增加主机列表:hadoop01和hadoop02
2.配置免密登录
因为一开始配置第一台hadoop01时已经将私钥配置完成并生成了公钥,所以这里只需要将hadoop02的重新生成一下即可
[root@hadoop02 ~]# ssh-keygen -t rsa -P "" --生成私钥
[root@hadoop02 ~]# cat .ssh/id_rsa.pub >> .ssh/authorized_keys --复制成公钥
配置成功后,将两台机器实现远程登录“
[root@hadoop01 ~]# ssh-copy-id -i .ssh/id_rsa.pub -p22 root@192.168.234.102 --hadoop01连接hadoop02
[root@hadoop02 ~]# ssh-copy-id -i .ssh/id_rsa.pub -p22 root@192.168.234.101 --hadoop02连接hadoop01
这样就可以实现免密登录,可以测试在hadoop01下输入命令:ssh root@hadoop02 直接可以登录。
3.修改主机器的配置文件
1).修改hdfs-site.xml文件
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value> ----两个分块
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop02:50090</value> ----namenode的辅助节点
</property>
</configuration>
2).修改slaves文件
hadoop01
hadoop02
将两个节点名全部加进去
4.复制配置文件到备用机器
[root@hadoop01 hadoop]# scp /opt/hadoop/etc/hadoop/hdfs-site.xml root@hadoop02:/opt/hadoop/etc/hadoop/hdfs-site.xml
[root@hadoop01 hadoop]# scp /opt/hadoop/etc/hadoop/slaves root@hadoop02:/opt/hadoop/etc/hadoop/slaves
这里直接使用scp命令,将主机器修改好的配置文件直接覆盖掉备用机器的配置文件
5.启动hadoop
1).在主机器格式化: hdfs:hadoop namenode -format
2).启动所有服务:start-all.sh和 mr-jobhistory-daemon.sh start historyserver
3).输入命令:jps 显示所有进程服务:
[root@hadoop01 hadoop]# jps
4020 NodeManager
3894 ResourceManager
2760 JobHistoryServer
3549 NameNode
4350 Jps
3663 DataNode
[root@hadoop01 hadoop]#
4).备用机器也启动所有服务,输入jps显示所有进程:
[root@hadoop02 hadoop]# jps
3121 NodeManager
3489 Jps
2902 SecondaryNameNode
2812 DataNode
[root@hadoop02 hadoop]#
5).登录网址进行确认验证