BigData-02:集群安装部署搭建

Hadoop(HDFS+Yarn) 本地 伪分布 全分布

  1. Hadoop安装—本地安装
    (1)特点:没有HDFS和Yarn 只能够测试MR程序是否成功, 作为一个普通的java程序。
    (2)修改文件:
    vi hadoop-env.sh
    set number
    修改25行(行数不一 hadoop版本不一致)
    JAVA_HOME=/usr/local/lib/jdk1.8.0_181

     cd /root/
     mkdir temp
     touch a.txt
     vi a.txt
    

    mapred-site.xml 默认没有,我克隆的文件里面有 这个文件没有被覆盖指定了yarn资源

  2. Hadoop安装—本地安装伪分布模式
    (1)特点:在一台机器上模拟一个分布式环境具备hadoop的所有功能。
    HDFS:NameNode+DataNode+SecondarynameNode
    Yarn:ResourceManager+NodeManager
    (2)修改的文件:
    第一步:hadoop-env.sh
    JAVA_HOME=/usr/local/lib/jdk1.8.0_181
    ** 第二步:hdfs-site.xml**

    <!--注释配置数据块的冗余度,默认是3-->
    <property>
       <name>dfs.replication</name>
       <value>1</value>
    </property>
    <!--注释配置HDFS的权限检查,默认是true-->
    <!--
    <property>
       <name>dfs.permissions</name>
       <value>false</value>
    </property>
    -->
    ```
  **第三步:core-site.xml**
  ```xml
  <!--配置HDFS主节点,namenode的地址,9000是RPC通信端口-->
    <property>
       <name>fs.defaultFS</name>
       <value>hdfs://hadoop01:9000</value>
    </property> 
  <!--配置HDFS数据块和元数据保存的目录,一定要修改-->
     <property>
       <name>hadoop.tmp.dir</name>
       <value>/root/hadoop/dfs/tmp</value>
    </property>
    ```
  **第四步:mapred-site.xml(默认没有)**
     cp mapred-site.xml.template  mapred-site.xml
    <!--配置MR程序运行的框架-->
     <property>	
  		<name>mapreduce.framework.name</name>
  		<value>yarn</value>
  	</property>	
  	
  **第五步:yarn-site.xml**
    
     <!--配置Yarn的节点-->
     <property>	
  		<name>yarn.resourcemanager.hostname</name>
  		<value>hadoop01</value>
  	</property>	
      <!--NodeManager执行MR任务的方式是Shuffle洗牌-->
  	<property>	
  		<name>yarn.nodemanager.aux-services</name>
  		<value>mapreduce_shuffle</value>
  	</property>	
  	
**  第六步:通过HDFS namenode 格式化**
    
    在第4步中,hadoop.tmp.dir--格式化
    命令:hdfs namenode -format
    验证:是否格式化成功:
    Storage directory /root/hadoop/dfs/tmp/dfs/name has been successfully formatted.
    
**  最后启动,通过start-all.sh启动**
    验证:5314 SecondaryNameNode
  		5586 NodeManager
  		5476 ResourceManager
  		5126 DataNode
  		5878 Jps
  		5022 NameNode
    	web访问:http://10.1.255.124:8088 yarn
             http://10.1.255.124:50070 HDFS
       			 
4、免密码登录的原理和配置
ssh不对称加密算法(加密和解密是两个文件)。(对称加密: 加密和解密文件是同一个)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190115070808143.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaXlhbmFmZmVjdGlvbg==,size_16,color_FFFFFF,t_70)
(1)公钥--锁:给出去 给其他机器。
(2)私钥--钥匙:自己留着,解密。
 step1:ssh-keygen -t rsa(3次回车)
 step2:ssh-copy-id -i ~/.ssh/id_rsa.pub  root@bigdata124(自己也要拷贝给自己)

5、Hadoop安装---全分布模式(重点:以后用的就是全分布式)
(1)规划:
  192.168.100.100 master
  192.168.100.101 hdoop01
  192.168.100.102 hdoop02
  192.168.100.103 hdoop03
 
 (2)准备工作:
   step 1: jdk、防火墙、ssh免密码登录(3次拷贝)、在etc/hosts 添加主机名。
          ##  对于同时操作多台机器可通过 工具-》发送键输入到所有会话 在选项卡排列 实现 水平排列 ##
   step 2:时间同步(如果能够上网) 使用网络时间(GUI设置)默认的都是一致的。
           不能上网: date -s 2019-01-10(同时操作多台机器) 集群紊乱
                     ntp:在机器里面指定一个服务器 作为时钟服务器。
   step 3: 修改配置文件()
### 主要在bigdata 121操作,其他机器通过scp拷贝。 ###
**1:hadoop-env.sh**   
    JAVA_HOME=/opt/moudle/jdk1.8.0_181
**2:hdfs-site.xml**  
    <!--注释配置数据块的冗余度,默认是3-->
    <property>
       <name>dfs.replication</name>
       <value>2</value>
    </property>
    <!--注释配置HDFS的权限检查,默认是true-->
    <!--
    <property>
       <name>dfs.permissions</name>
       <value>false</value>
    </property>
    -->
  **3:core-site.xml**
  <!--配置HDFS主节点,namenode的地址,9000是RPC通信端口-->
    <property>
       <name>fs.defaultFS</name>
       <value>hdfs://bigdata124:9000</value>
    </property> 
  <!--配置HDFS数据块和元数据保存的目录,一定要修改-->
     <property>
       <name>hadoop.tmp.dir</name>
       <value>/opt/moudle/hadoop-2.7.3/tmp</value>
    </property>
  **4:mapred-site.xml(默认没有)**
     cp mapred-site.xml.template  mapred-site.xml
    <!--配置MR程序运行的框架-->
     <property>	
  		<name>mapreduce.framework.name</name>
  		<value>yarn</value>
  	</property>	
  **5:yarn-site.xml** 
     <!--配置Yarn的节点-->
     <property>	
  		<name>yarn.resourcemanager.hostname</name>
  		<value>bigdata124</value>
  	</property>	
      <!--NodeManager执行MR任务的方式是Shuffle洗牌-->
  	<property>	
  		<name>yarn.nodemanager.aux-services</name>
  		<value>mapreduce_shuffle</value>
  	</property>	
 **6:slaves(和自己的从节点机器名字一致)**
     bigdata122
     bigdata123  
** 7:通过HDFS namenode 格式化** 
    hdfs namenode -format
    成功的标志: Storage directory /opt/moudle/hadoop-2.7.3/tmp/dfs/name has been successfully formatted.
 **8:通过scp拷贝** 
    scp -r /opt/moudle/hadoop-2.7.3/ root@bigdata122:/opt/moudle/
    scp -r /opt/moudle/hadoop-2.7.3/ root@bigdata123:/opt/moudle/
  ** 最后启动,通过start-all.sh启动**
    验证(5个):5314 SecondaryNameNode
  		5586 NodeManager
  		5476 ResourceManager
  		5126 DataNode
  		5022 NameNode
    	web访问:http://10.1.255.124:8088 yarn
             http://10.1.255.124:50070 HDFS
    学会看 vi /opt/moudle/hadoop-2.7.3/logs/hadoop-root-datanode-bigdata123.log Shift+G 看启动日志。


6.HDFS体系架构(Yarn资源放在后面)
HDFS-NameNode:名称节点
(1)职责:对HDFS的节点进行管理,管理员
        接收客户端(命令行、java)的请求:创建目录、上传数据、下载数据和删除数据。
        管理和维护HDFS的日志和元信息
(2)dfs/name:
    a、current:主要存放日志和元信息 存贮路径:/opt/moudle/hadoop-2.7.3/tmp/dfs/name/current
      edits文件:二进制文件,体现了HDFS的最新状态
   
               hdfs oev -i edits_inprogress_0000000000000000003 -o ~/a.xml
               o:表示 offline 
               inprogress:表示最新的。
  	<?xml version="1.0" encoding="UTF-8"?>
  	<EDITS>
  	  <EDITS_VERSION>-63</EDITS_VERSION>
  	  <RECORD>
  	    <OPCODE>OP_START_LOG_SEGMENT</OPCODE>
  	    <DATA>
  	      <TXID>3</TXID>
  	    </DATA>
  	  </RECORD>
  	  <RECORD>
  	    <OPCODE>OP_MKDIR</OPCODE>
  	    <DATA>
  	      <TXID>4</TXID>
  	      <LENGTH>0</LENGTH>
  	      <INODEID>16386</INODEID>
  	      <PATH>/input</PATH>
  	      <TIMESTAMP>1547129194216</TIMESTAMP>
  	      <PERMISSION_STATUS>
  	        <USERNAME>root</USERNAME>
  	        <GROUPNAME>supergroup</GROUPNAME>
  	        <MODE>493</MODE>
  	      </PERMISSION_STATUS>
  	    </DATA>
  	  </RECORD>
  	</EDITS>
    b、元信息文件 fsimage:记录的数据块的位置信息和数据块冗余信息,没有体现HDFS的最新状态,二进制文件
        hdfs oiv -i fsimage_0000000000000000002 -o ~/b.xml -p XML

  (2)in_use.lock 避免同一文件被多使用,只能启动一个namenode
7、HDFS-DataNode:数据节点	
(1)主要用来进行数据的存储。 
 		1.x 64M
		2.x 128M( hdfs-site.xml 可以修改 blocksize)
 (2)数据块的表现形式就是一个个的blk文件
位置:/opt/moudle/hadoop-2.7.3/tmp/dfs/data/current/BP-### *933765109-10.1.255.124-1546784436341* ###/current/finalized/subdir0/subdir0
 尝试上传一个 大于128M的文件(128*1024*1024)
 Hadoop 3.x 有 纠删码技术,节约存储空间。  
8、HDFS-SecondaryNameNode:第二名称节点
  (1)进行日志信息的合并,根据checkpoint或者时间间隔(3600s)或者edits文件达到64M。
  (2)edits文件合并到fsimage里面 edits文件可以清空

(下面是我的本机现在集群环境)

  1. CentOS7 虚拟机安装
	(1)配置静态IP地址:
	虚拟机网络模式使用NAT模式:
	先ping宿主机ip(192.168.100.2)
	然后ping www.baidu.com 
	都能ping通说明网络没有问题

	IP(192.168.100.100)宿主机与虚拟机之前的网关IP(192.168.100.2)、
	ping外网(baidu.com)都可以通则说明虚拟机固定IP设置成功。

	root权限模式下使用:
	cd /etc/sysconfig/network-scripts/
	vim ifcfg-eth0 
	为:(提示:按a键进入insert模式,按esc后,按“:wq”保存退出)

	TYPE=Ethernet
	BOOTPROTO=static ?#设置静态Ip
	DEFROUTE=yes
	IPV4_FAILURE_FATAL=no
	IPV6INIT=yes
	IPV6_AUTOCONF=yes
	IPV6_DEFROUTE=yes
	IPV6_FAILURE_FATAL=no
	NAME=eno16777736
	UUID=4f40dedc-031b-4b72-ad4d-ef4721947439
	DEVICE=eno16777736
	ONBOOT=yes #这里如果为no的话就改为yes,表示网卡设备自动启动
	PEERDNS=yes
	PEERROUTES=yes
	IPV6_PEERDNS=yes
	IPV6_PEERROUTES=yes
	IPV6_PRIVACY=no

	GATEWAY=192.168.100.2  #这里的网关地址就是第二步获取到的那个网关地址
	IPADDR=192.168.100.200 #配置ip,在第二步已经设置ip处于192.168.100.xxx这个范围
	NETMASK=255.255.255.0   #子网掩码
	DNS1=8.8.8.8            #dns服务器1,填写你所在的网络可用的dns服务器地址即可
	DNS2=223.5.5.5          #dns服器2


	IPADDR=192.168.100.101
	NETMASK=255.255.255.0
	GATEWAY=192.168.100.2
	DNS1=8.8.8.8
	DNS2=223.5.5.5


	然后执行命令重新启动网卡:
	service network restart
	
1-> 集群的准备工作

	1)关闭防火墙(进行远程连接)
	systemctl stop firewalld
	systemctl -disable firewalld

	2)永久修改设置主机名
	vi /etc/hostname
	注意:需要重启生效->reboot
	
	3)配置映射文件
	vi /etc/hosts
	
	#127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
	#::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
	192.168.100.100 master
	192.168.100.101 hdoop01
	192.168.100.102 hdoop02
	192.168.100.103 hdoop03
	
	4)配置ssh免密登录
	-》ssh-keygen 生成密钥对
	-》 ssh-copy-id 自己
		ssh-copy-id 其它
		ssh-copy-id 其它
	
2-> 安装jdk
	删除CentOS自带的openJDK:
	rpm -qa | grep java
	rpm -e --nodeps java-1.7.0-openjdk-headless java-1.7.0-openjdk
	rpm -qa | grep java
	rpm -e --nodeps javamail javapackages-tools java-1.8.0-openjdk
	rpm -qa | grep java
	rpm -e --nodeps java-1.8.0-openjdk-headless
	rpm -qa | grep java


	1)上传tar包
	alt+p
	
	2)解压tar包
	tar -zxvf jdk
	
	3)配置环境变量
	vi /etc/profile
	
	设置java环境变量:
	# set java environment
	export JAVA_HOME=/usr/local/lib/jdk1.8.0_181
	export JRE_HOME=${JAVA_HOME}/jre
	export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
	export PATH=$PATH:${JAVA_HOME}/bin

	# set tomcat 
	export TOMCAT_HOME=/usr/local/apache-tomcat-8.5.31
	
	注意:加载环境变量 source /etc/profile
	
	4)发送到其它机器
	scp -r /usr/local/lib/jdk1.8.0_181 hadoop01:/usr/local/lib/
	scp -r /usr/local/lib/jdk1.8.0_181 hadoop02:/usr/local/lib/
	scp -r /usr/local/lib/jdk1.8.0_181 hadoop03:/usr/local/lib/
	
	scp -r /etc/profile hadoop01:/etc/
	scp -r /etc/profile hadoop02:/etc/
	scp -r /etc/profile hadoop03:/etc/
	
	注意:加载环境变量 source /etc/profile
	
	5)配置ssh免密登录
	-》ssh-keygen 生成密钥对
	-》 ssh-copy-id 自己
		ssh-copy-id 其它
		ssh-copy-id 其它
		
3-> 配置HDFS集群

	1) 修改hadoop-env.sh
	export JAVA_HOME=/usr/local/lib/jdk1.8.0_181

	2) 修改core-site.xml

	<configuration>
		//配置hdfs
		<property>
		<name>fs.defaultFS</name>
		<value>hdfs://master:9000</value>
		</property>
	</configuration>

	3) 修改hdfs-site.xml

	<configuration>
		//配置元数据存储位置
		<property>
		<name>dfs.namenode.name.dir</name>
		<value>/root/hadoop/dfs/name</value>
		</property>
		//配置数据存储位置
		<property>
		<name>dfs.datanode.data.dir</name>
		<value>/root/hadoop/dfs/data</value>
		</property>
	</configuration>
	
	4)格式化namenode
	hadoop namemode -format
	
	5)分发hadoop到其它机器
	scp -r /root/hadoop-2.9.1/  hadoop01:/root/
	scp -r /root/hadoop-2.9.1/  hadoop02:/root/
	scp -r /root/hadoop-2.9.1/  hadoop03:/root/
	
	6)配置hadoop环境变量
	export JAVA_HOME=/root/hd/jdk1.8.0_141
	export HADOOP_HOME=/root/hd/hadoop-2.8.4
	export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
	
	6)分发hadoop环境变量
	scp -r /etc/profile hadoop01:/etc
	scp -r /etc/profile hadoop02:/etc
	scp -r /etc/profile hadoop03:/etc
	注意:加载环境变量 source /etc/profile
	
	7)启动namenode
	hadoop-daemon.sh start namenode
	
	8)启动datanode
	hadoop-daemon.sh start datanode
	
	9)访问namenode提供的web端口:50070
	
	
4-> 自动批量的启动脚本

	1)修改配置文件slaves
hadoop01
hadoop02
hadoop03
	2)执行启动命令
start-dfs.sh
start-dfs.sh
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

phial03

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值