hadoop全分布部署
规划:
cmaster:192.168.245.130
cslave0: 192.168.245.131
cslave1: 192.168.245.132
Hdfs:
NameNode
DataNode
SecondaryNameNode
Yarn:
ResourceManager
Scheduler
ApplicationManager
NodeManager
Container
ApplicationMaster
工作过程:
1、(准备工作)通过安装、克隆方式逐步配置好3台Centos7 64位操作系统的虚拟机,安装好jdk,安装好hadoop;
2、安装配置SSH;
3、hadoop配置;
4、配置hadoop-env.sh;
5、配置hadoop-core-site.xm;
6、配置hadoop-hdfs-site.xm;
7、配置hadoop-mapred-site.xml;
8、配置hadoop-yarn-site.xml;
9、配置slave;
10、分发到所有虚拟机上;
11、namenode格式化;
12、启动进程;
13、查看(jps,web);
1、准备工作
准备三台虚拟机:配置好jdk,hadoop
Jdk:jdk-1.8.0_151
有关jdk的安装详见:https://blog.csdn.net/zxdspaopao/article/details/83278090
Hadoop:hadoop-2.8.4
有关hadoop的安装详见:https://blog.csdn.net/zxdspaopao/article/details/83278859
(1)修改主机名(cmaster,cslave0,cslave1)
#vi /etc/hostname
cmaster
(2)修改ip映射(cmaster,cslave0,cslave1)
#vi /etc/hosts
192.168.245.130 cmaster
192.168.245.131 cslave0
192.168.245.132 cslave1
2、ssh 配置(免密登陆)
$ssh-keygen -t rsa
$ll ~/.ssh/
$ssh cmaster
$ssh-copy-id cmaster
$ssh-copy-id cslave0
$ssh-copy-id cslave1
3、Hadoop配置:
进入hadoop配置所在的文件夹中:
#cd /usr/local/hadoop-2.8.4/etc/hadoop
4、配置jdk以及hadoop所在路径。
#vi hadoop-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_151
export HADOOP_CONF_DIR=/usr/local/hadoop-2.8.4/etc/hadoop/
5、配置core-site.xml
#vi core-site.xml
<configuration>
<property> **配置hdfs默认的命名
<name>fs.defaultFS</name>
<value>hdfs://cmaster:8020<alue>
</property>
<property> 配置操作hdfs缓冲区大小
<name>io.file.buffer.size</name>
<value>4096<alue>
</property>
<property> 配置临时目录
<name>hadoop.tmp.dir</name>
<value>/home/bigdata/tmp<alue>
</property>
</configuration>
6、hdfs设置
#vi hdfs-site.xml
<configuration>
<property> 配置副本因子
<name>dfs.replication</name>
<value>3</value>
</property>
<property> 配置块大小
<name>dfs.block.size</name>
<value>134217728</value>
</property>
<property> 配置元数据的存储位置
<name>dfs.namenode.name.dir</name>
<value>file:///home/hadoopdata/dfs/name</value>
</property>
<property> 配置datanode数据存放位置
<name>dfs.datanode.data.dir</name>
<value>/home/hadoopdata/dfs/data</value>
</property>
<property> 配置fs检测目录存放位置
<name>fs.checkpoint.dir</name>
<value>/home/hadoopdata/checkpoint/dfs/cname</value>
</property>
<property> 配置hdfs的namenode的web ui地址
<name>dfs.http.address</name>
<value>cmaster:50070</value>
</property>
<property> 配置dfs的SNN的web ui地址
<name>dfs.secondary.http.address</name>
<value>cmaster:50090</value>
</property>
<property> 是否开启web操作dfs
<name>dfs.webhdfs.enabled</name>
<value>false</value>
</property>
<property> 是否启用hdfs的权限
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
7、mapreduce设置
#cp mapred-site.xml.template mapred-site.xml
#vi mapred-site.xml
<configuration>
<property> 指定mapreduce运行框架
<name>mapreduce.framework.name</name>
<value>yarn</value>
<final>true</final>
</property>
<property> 历史服务的通信地址
<name>mapreduce.jobhistory.address</name>
<value>cmaster:10020</value>
</property>
<property> 历史服务的web ui通信地址
<name>mapreduce.jobhistory.webapp.address</name>
<value>cmaster:19888</value>
</property>
</configuration>
8、yarn设置
#vi yarn-site.xml
<configuration>
<property> 指定resourcemanager所在的主机名
<name>yarn.resourcemanager.hostname</name>
<value>cmaster</value>
</property>
<property> 指定mapreduce的shuffle
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property> 指定resourcemanager内部通信地址
<name>yarn.resourcemanager.address</name>
<value>cmaster:8032</value>
</property>
<property> 指定scheduler的内部通信地址
<name>yarn.resourcemanager.scheduler.address</name>
<value>cmaster:8030</value>
</property>
<property> 指定rm的resource-tracker的内部通信地址
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>cmaster:8031</value>
</property>
<property> 指定rm的admin的内部通信地址
<name>yarn.resourcemanager.admin.address</name>
<value>cmaster:8033</value>
</property>
<property> 指定rm的web ui地址
<name>yarn.resourcemanager.webapp.address</name>
<value>cmaster:8088</value>
</property>
</configuration>
9、设置slaves
#vi slaves
添加以下内容:
cmaster
cslave0
cslave1
10、完成分发任务
在两个slave里删除Hadoop目录
cslave0: rm -rf /usr/local/hadoop-2.8.4/
cslave1: rm -rf /usr/local/hadoop-2.8.4/
完成分发工作:
cmaster:
#scp -r /usr/local/hadoop-2.8.4/ cslave0:/usr/local/
#scp -r /usr/local/hadoop-2.8.4/ cslave1:/usr/local/
11、格式化namenode
#hadoop namenode -format
出现日志:Storage directory /root/training/hadoop-2.8.4/tmp/dfs/name has been successfully formatted.
即格式化成功。
12、启动服务三种方式
全启动:
start-all.sh
模式启动:
start-dfs.sh
start-yarn.sh
单个进程启动:
hadoop-daemon.sh start namenode
hadoop-daemons.sh start datanode
yarn-daemon.sh start namenode
yarn-daemons.sh start datanode
mr-jobhistory-daemon.sh start historyserver
全关闭:
stop-all.sh
测试:
1、查看进程是否启动了:jps
2、查看对应模块的web
http://192.168.245.130:50070
http://192.168.245.130:8088
3、在hadoop解压目录命令
查看文件夹:bin/hadoop fs -ls /
创建目录:bin/hadoop fs -mkdir /input
创建文件:vi input.txt 输入任意内容
将本地文件放入hdfs:bin/hadoop fs -put input.txt /input
查看hdfs内文件内容::bin/hadoop fs -cat /input/input.txt
删除目录:bin/hadoop fs -rm -r /input
4、运行单词计数统计程序
#cd /usr/local/hadoop-2.8.4/bin
#hadoop fs -ls /
#hadoop fs -mkdir /input
#vi wc.txt
#hadoop fs -put wc.txt /input
#hadoop fs -mkdir /output/wc
#yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.4.jar wordcount /input/wc.txt /output/wc
#hadoop fs -ls /output/wc
#hadoop fs -cat /output/wc/part-r-00000
同时web yarn界面会出现以下:
注意:如果出现连接不到路由错误,则估计可能出现两种错误:
(1)cmaster与slave不能通信
相互Ping主机名:
Ping不通可能是ip映射设置错误,第一步有。
(2)可能是防火墙没关闭。
查看防火墙状态:firewall-cmd --state
关闭防火墙:systemctl stop firewalld.service
开机启动默认关闭防火墙:
systemctl disable firewalld
---------------------
【转载】
作者:zxdspaopao
原文:https://blog.csdn.net/zxdspaopao/article/details/83214279
|
|