Hadoop第一天学习笔记

Hadoop基本概念(不存进数据库,直接存为文本文件,直接处理文本,有数据库是nosql数据库):

原来数据量大,我们一般是想的是高并发,现在可采用多台电脑来做(集群);

海量数据存储(HDFS:分布式的存储系统)

海量数据分析(MapReduce:你负责逻辑编写,他负责按你的逻辑进行计算)

资源管理调度(YARN:负责资源管理调度)

搜索引擎的一个框架:

hadoop数据处理思路(mapreduce演示):

                                    1.map阶段:将逻辑分发到每个节点(多台电脑),进行一个datenode进行并发计算(本地),map阶段进行局部统计;

                         2.reduce阶段:获取map结果(一台电脑),进行结果计算(网络),reduce进行全局处理;


伪分布式Hadoop集群安装:

1.准备Linux环境
	1.0点击VMware快捷方式,右键打开文件所在位置 -> 双击vmnetcfg.exe -> VMnet1 host-only ->修改subnet ip 设置网段:192.168.1.0 子网掩码:255.255.255.0 -> apply -> ok
		回到windows --> 打开网络和共享中心 -> 更改适配器设置 -> 右键VMnet1 -> 属性 -> 双击IPv4 -> 设置windows的IP:192.168.1.110 子网掩码:255.255.255.0 -> 点击确定
		在虚拟软件上 --My Computer -> 选中虚拟机 -> 右键 -> settings -> network adapter -> host only -> ok	
	1.1修改主机名
		vim /etc/sysconfig/network
		NETWORKING=yes
		HOSTNAME=xp    ###
	1.2修改IP
		两种方式:
		第一种:通过Linux图形界面进行修改startx打开图形界面(强烈推荐)
			进入Linux图形界面 -> 右键点击右上方的两个小电脑 -> 点击Edit connections -> 选中当前网络System eth0 -> 点击edit按钮 -> 选择IPv4 -> method选择为manual -> 点击add按钮 -> 添加IP:192.168.1.119 子网掩码:255.255.255.0 网关:192.168.1.1 -> apply
		第二种:修改配置文件方式(屌丝程序猿专用)
			vim /etc/sysconfig/network-scripts/ifcfg-eth0
			DEVICE="eth0"
			BOOTPROTO="static"           ###
			HWADDR="00:0C:29:3C:BF:E7"
			IPV6INIT="yes"
			NM_CONTROLLED="yes"
			ONBOOT="yes"
			TYPE="Ethernet"
			UUID="ce22eeca-ecde-4536-8cc2-ef0dc36d4a8c"
			IPADDR="192.168.1.44"       ###
			NETMASK="255.255.255.0"      ###
			GATEWAY="192.168.1.1"        ###	
	1.3修改主机名和IP的映射关系
		vim /etc/hosts
		192.168.1.44	xp
	1.4关闭防火墙
		#查看防火墙状态
		service iptables status
		#关闭防火墙
		service iptables stop
		#查看防火墙开机启动状态
		chkconfig iptables --list
		#关闭防火墙开机启动
		chkconfig iptables off
	1.5重启Linux
		reboot
2.安装JDK
	2.1上传
	2.2解压jdk
		#创建文件夹
		mkdir /usr/java
		#解压
		tar -zxvf jdk-7u55-linux-i586.tar.gz -C /usr/java/
	2.3将java添加到环境变量中
		vim /etc/profile
		#在文件最后添加
		export JAVA_HOME=/usr/java/jdk1.7.0_55
		export PATH=$PATH:$JAVA_HOME/bin
		#刷新配置
		source /etc/profile
3.安装Hadoop
	3.1上传hadoop安装包
	3.2解压hadoop安装包
		mkdir /cloud
		#解压到/cloud/目录下
		tar -zxvf hadoop-2.2.0.tar.gz -C /cloud/
	3.3修改配置文件(5个)
		第一个:hadoop-env.sh
		#在27行修改
		export JAVA_HOME=/usr/java/jdk1.7.0_55
		第二个:core-site.xml
		<configuration>
			<!-- 指定HDFS老大(namenode)的通信地址 -->
			<property>
					<name>fs.defaultFS</name>
					<value>hdfs://xp:9000</value>
			</property>
			<!-- 指定hadoop运行时产生文件的存储路径 -->
			<property>
					<name>hadoop.tmp.dir</name>
					<value>/cloud/hadoop-2.2.0/tmp</value>
			</property>
		</configuration>
		第三个:hdfs-site.xml
		<configuration>
			<!-- 设置hdfs副本数量 -->
			<property>
					<name>dfs.replication</name>
					<value>1</value>
			</property>
		</configuration>
		第四个:mapred-site.xml.template 需要重命名: mv mapred-site.xml.template mapred-site.xml
		<configuration>
			<!-- 通知框架MR使用YARN -->
			<property>
					<name>mapreduce.framework.name</name>
					<value>yarn</value>
			</property>
		</configuration>
		第五个:yarn-site.xml
		<configuration>
			<!-- reducer取数据的方式是mapreduce_shuffle -->
			<property>
				<name>yarn.nodemanager.aux-services</name>
				<value>mapreduce_shuffle</value>
			</property>
		</configuration>
	3.4将hadoop添加到环境变量
		vim /etc/profile
		export JAVA_HOME=/usr/java/jdk1.7.0_55
		export HADOOP_HOME=/cloud/hadoop-2.2.0
		export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
		source /etc/profile
	3.5格式化HDFS(namenode)第一次使用时要格式化
		hadoop namenode -format	
	3.6启动hadoop
		先启动HDFS
		sbin/start-dfs.sh
		再启动YARN
		sbin/start-yarn.sh
	3.7验证是否启动成功
		使用jps命令验证
		27408 NameNode
		28218 Jps
		27643 SecondaryNameNode
		28066 NodeManager
		27803 ResourceManager
		27512 DataNode
	
		http://192.168.1.44:50070  (HDFS管理界面)
		在这个文件中添加linux主机名和IP的映射关系
		C:\Windows\System32\drivers\etc\hosts
		192.168.1.119	xp
		
		http://192.168.1.44:8088 (MR管理界面)
		
4.配置ssh免登陆
	生成ssh免登陆密钥
	cd ~,进入到我的home目录
	cd .ssh/

	ssh-keygen -t rsa (四个回车)
	执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
	将公钥拷贝到要免登陆的机器上
	cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
	或
	ssh-copy-id -i localhost 
	

hdfs实现机制:比如存一个512M的文件,


总结:hdfs的实现思想:1,hdfs是通过分布式集群来存储文件,为用户提供了一个便捷的访问方式(虚拟目录)

                                     2,文件存储到hdfs集群中是被切割分成block(默认128m)的

                                     3,文件的block是存在若干的DataNode节点上的

                                     4,hdfs文件系统中的文件与真实的block之间存在 映射关系,有namenode管理

                                     5,每一个block在集群中都有多个副本,提高数据的可靠性与吞吐量


猜你喜欢

转载自blog.csdn.net/qq_36176087/article/details/80640078