Hadoop集群安装(三台机器)
-
安装jdk
-
安装hadoop
注:以下出现./etc/hadoop
,都是在hadoop的安装目录下执行的:
先安装单机版:
(1) 减压:tar -zxvf /home/hadoop-2.8.4.tar.gz -C /usr/local/
(2) 配置环境变量:vim /etc/profile
立即生效:source /etc/profile
(3)修改配置文件:vim ./etc/hadoop/hadoop-env.sh
将JAVA_HOME改成真实路径:
(3) 测试
版本:which hadoop
hadoop version
计算单词出现数量:
创建准备数据目录:mkdir /home/input
创建数据:cp ./etc/hadoop/*.xml /home/input
计算:
hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.4.jar wordcount /home/input/ /home/output
注意:output文件不可先创建。因为容易把统计的结果集打乱,统计的东西只能放在一个空白的地方。 -
克隆三台机器
(1) 克隆
(2) 修改网卡信息
只改名字即可:
vim /etc/udev/rules.d/70-persistent-ipoib.rules
将NAME改为ens33,mac地址也改
(3) 修改主机名
vim /etc/sysconfig/network
(4) 修改ip、uuid、HWADDR信息
vim /etc/sysconfig/network-scripts/ifcfg-ens33
(5) 修改映射
vim /etc/hosts
备注: 同样的方法继续克隆 hadoop03。
4. 安装规划
5. 配置hadoop的相关配置文件
(0)vim ./etc/hadoop/hadoop-env.sh
将里面的JAVA_HOME改成真实路径。
(1)vim ./etc/hadoop/core-site.xml
<**configuration**>
<!--配置hdfs文件系统的命名空间-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<!--配置操作hdfs的缓冲大小-->
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
<!--配置临时数据存放目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/bigdata/tmp</value>
</property>
</configuration>
(2)vim ./etc/hadoop/hdfs-site.xml
<configuration>
<!--副本数-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--块大小-->
<property>
<name>dfs.block.size</name>
<value>134217728</value>
</property>
<!--hdfs的元数据存放的目录-->
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoopdata/dfs/name</value>
</property>
<!--hdfs的数据的存放位置-->
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoopdata/dfs/data</value>
</property>
<!--hdfs的检测目录-->
<property>
<name>dfs.checkpoint.dir</name>
<value>/home/hadoopdata/checkpoint/dfs/cname</value>
</property>
<!--hdfs的namenode的web ui 地址-->
<property>
<name>dfs.http.address</name>
<value>hadoop01:50070</value>
</property>
<!--hdfs的snn的web ui 地址-->
<property>
<name>dfs.secondary.http.address</name>
<value>hadoop01:50090</value>
</property>
<!--是否开启web操作hdfs-->
<property>
<name>dfs.webhdfs.enabled</name>
<value>false</value>
</property>
<!--是否启用hdfs的权限(acl)-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
(3)vim ./etc/hadoop/mapred-site.xml
先执行:
mv ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml
<configuration>
<!--指定mapredurce 运行框架-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<final>true</final>
</property>
<!--历史服务的通讯地址-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop01:10020</value>
</property>
<!--历史服务的web ui 地址-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop01:19888</value>
</property>
</configuration>
(4)vim ./etc/hadoop/yarn-site.xml
<configuration>
<!--指定rm所启动的服务主机名-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<!--指定rm的shuffle-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--指定rm的内部通讯地址-->
<property>
<name>yarn.resourcemanager.address</name>
<value>hadoop01:8032</value>
</property>
<!--指定rm的scheduler内部通讯地址-->
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop01:8030</value>
</property>
<!--指定rm的resource-tracker内部通讯地址-->
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hadoop01:8031</value>
</property>
<!--指定rm的admin内部通讯地址-->
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hadoop01:8033</value>
</property>
<!--指定rm的web ui监控地址-->
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop01:8088</value>
</property>
</configuration>
(5)vim ./etc/hadoop/slaves
hadoop01
hadoop02
hadoop03
(6)远程分发别的服务器上面
删除其他两台机器 02,03上的hadoop
rm -rf /usr/local/hadoop-2.8.4/
先删除01 上的doc
rm -rf ./share/doc/
再分发
scp -r ../hadoop-2.8.4/ hadoop02:/usr/local/
scp -r ../hadoop-2.8.4/ hadoop03:/usr/local/
成功格式化
(7)格式化
启动之前,在namenode服务器上面先格式化,只需要一次即可
hadoop namenode –format
格式话成功
(8)启动服务
启动服务:有三种方式
1.全启动:start-all.sh
2.模块启动:
start-dfs.sh
start-yarn.sh
3.单个进程启动
hadoop-daemon.sh start/stop namenode
hadoop-daemons.sh start/stop datanode
yarn-daemon.sh start/stop namenode
yarn-daemons.sh start/stop datanode
mr-jobhistory-daemon.sh start/stop historyserver
这里通过第一中方式启动
(9)测试
1.查看进程是否按照规划启动起来
2.查看对应模块的web ui监控是否正常
http://192.168.11.128:50070
http://192.168.11.128:8088
3.上传下载文件(测试hdfs)、跑一个mapreduce的作业
hdfs dfs -put ./README.txt /
yarn jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.4.jar wordcount /README.txt /out/00
- ssh免密登录
在01(namenode)这台机器上执行:
ssh-keygen -t rsa
一直回车即可
执行完成后:执行
ssh-copy-id hadoop02
ssh-copy-id hadoop03
测试
ssh hadoop01
ssh hadoop02
ssh hadoop03
都不需要输入密码即可登录