A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 不二晨 金牌黑马   /  2018-10-23 09:04  /  927 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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


2 个回复

倒序浏览
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马