大数据开发
Centos安装ApacheHadoop2.7.7

Centos安装ApacheHadoop2.7.7准备文件:hadoop-2.7.7.tar.gz一、安装JDK安装Hadoop之前需要保证JDK8成功安装java-version二、上传Hadoop压缩包上传成功后解压文件:tar-zxvfhadoop-2.7.7.tar.gz假设解压后的Hadoop目录为:/home/hadoop/hadoop-2.7.7注意配置HADOOP_HOME环境变量exportHADOOP_HOME=/home/hadoop/hadoop-2.7.7exportPATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin三、配置服务器免密登录$ssh-keygen-trsa-P''-f~/.ssh/id_rsa$cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys$chmod0600~/.ssh/authorized_keys执行完成后:sshmaster命令则能够跳过输入密码阶段直接连接四、修改配置==配置文件所在位置:$HADOOP_HOME/etc/hadoop==core-size.xml<configuration><property><name>fs.defaultFS</name><value>hdfs://master:9000</value></property></configuration>hdfs-size.xml<configuration><property><name>dfs.replication</name><value>1</value></property></configuration>mapred-site.xml<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.application.classpath</name><value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value></property></configuration>yarn-site.xml<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.nodemanager.env-whitelist</name><value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value></property></configuration>五、启动初始化HDFShdfsnamenode-format启动HDFSstart-dfs.sh启动YARNstart-yarn.sh启动成功后访问http://master:50070查看HDFS状态六、相关命令start-dfs.sh启动HDFS(namenode/datanode/SecondaryNamenode)stop-dfs.sh停止HDFSstart-yarn.sh启动Yarnstop-yarn.sh停止Yarnstart-all.sh启动HDFS和Yarnstop-all.sh停止HDFS和Yarn

工作日志
FastDFS服务器迁移

FastDFS服务器迁移1.1目标服务器安装FastDFS首先按照上一篇文章《FastDFS介绍和安装》搭建好新的FastDFS服务器(Tracker,Storage),先配置好不用启动1.2修改配置文件修改新的Storage配置文件/etc/fdfs/storage.conf将tracker_server的IP修改为旧的Tracker服务器IP1.3启动目标Storage进程,同步数据servicefdfs_storagedrestart查看同步进程,在旧tracker服务器执行:fdfs_monitor/etc/fdfs/client.conf可以看到同步状态:等待数据同步...ACTIVE标识表示数据已经同步完成数据同步完成后,停掉Storage服务servicefdfs_storagedstop1.4修改storage配置文件修改/etc/fdfs/storage.conf文件将tracker_server的IP修改为新的tracker服务器IP1.5修改.data_init_flag文件该文件所在位置为storage.conf文件中所配置的base_path路径后面的data路径下,如配置为/home/data/fastdfs/storage,则文件所在位置为/home/data/fastdfs/storage/data/下将文件中sync_src_server配置项留空,其它配置项不变sync_src_server=1.6启动进程启动新的storage服务器进程,启动新的tracker服务器进程,在新tracker服务器下fdfs_monitor/etc/fdfs/client.conf查看Storage状态

工作日志
FastDFS介绍及安装

一、FastDFS介绍1.1介绍FastDFS是一个C语言实现的开源轻量级分布式文件系统,支持Linux、FreeBSD、AID等Unix系统,解决了大数据存储和读写负载均衡等问题,适合存储4KB~500MB之间的小文件,如图片网站、短视频网站、文档、app下载站等,UC、京东、支付宝、迅雷、酷狗等都有使用,其中UC基于FastDFS向用户提供网盘、广告和应用下载的业务的存储服务FastDFS与MogileFS、HDFS、TFS等都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务。1.2架构FastDFS服务有三个角色:跟踪服务器(TrackerServer)、存储服务器(storageserver)和客户端(client)TrackerServer:跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的storageserver和group,每个storage在启动后会连接Tracker,告知自己所属group等信息,并保持周期性心跳,Tracker根据storage心跳信息,建立group--->[storageserverlist]的映射表;tracker管理的元数据很少,会直接存放在内存;tracker上的元信息都是由storage汇报的信息生成的,本身不需要持久化任何数据,tracker之间是对等关系,因此扩展tracker服务非常容易,之间增加tracker服务器即可,所有tracker都接受stroage心跳信息,生成元数据信息来提供读写服务(与其他Master-Slave架构的优势是没有单点,tracker也不会成为瓶颈,最终数据是和一个可用的StorageServer进行传输的)StorageServer:存储服务器,主要提供容量和备份服务;以group为单位,每个group内可以包含多台storageserver,数据互为备份,存储容量空间以group内容量最小的storage为准;建议group内的storageserver配置相同;以group为单位组织存储能够方便的进行应用隔离、负载均衡和副本数定制;缺点是group的容量受单机存储容量的限制,同时group内机器坏掉,数据恢复只能依赖group内其他机器重新同步(坏盘替换,重新挂载重启fdfs_storaged即可)1.3Group存储策略多个group之间的存储方式有3种策略:roundrobin(轮询)、loadbalance(选择最大剩余空间的组上传文件)、specifygroup(指定group上传)group中storage存储依赖本地文件系统,storage可配置多个数据存储目录,磁盘不做raid,直接分别挂载到多个目录,将这些目录配置为storage的数据目录即可storage接受写请求时,会根据配置好的规则,选择其中一个存储目录来存储文件;为避免单个目录下的文件过多,storage第一次启时,会在每个数据存储目录里创建2级子目录,每级256个,总共65536个,新写的文件会以hash的方式被路由到其中某个子目录下,然后将文件数据直接作为一个本地文件存储到该目录中1.4工作流程1.4.1上传FastDFS向使用者提供基本文件访问接口,比如upload、download、append、delete等,以客户端库的方式提供给用户使用。StorageServer会定期的向TrackerServer发送自己的存储信息。当TrackerServerCluster中的TrackerServer不止一个时,各个Tracker之间的关系是对等的,所以客户端上传时可以选择任意一个Tracker。当Tracker收到客户端上传文件的请求时,会为该文件分配一个可以存储文件的group,当选定了group后就要决定给客户端分配group中的哪一个storageserver。当分配好storageserver后,客户端向storage发送写文件请求,storage将会为文件分配一个数据存储目录。然后为文件分配一个fileid,最后根据以上的信息生成文件名存储文件。FastDFS上传时序图:1.4.2同步写文件时,客户端将文件写至group内一个storageserver即认为写文件成功,storageserver写完文件后,会由后台线程将文件同步至同group内其他的storageserver。每个storage写文件后,同时会写一份binlog,binlog里不包含文件数据,只包含文件名等元信息,这份binlog用于后台同步,storage会记录向group内其他storage同步的进度,以便重启后能接上次的进度继续同步;进度以时间戳的方式进行记录,所以最好能保证集群内所有server的时钟保持同步。storage的同步进度会作为元数据的一部分汇报到tracker上,tracke在选择读storage的时候会以同步进度作为参考。1.4.3下载客户端uploadfile成功后,会拿到一个storage生成的文件名,接下来客户端根据这个文件名即可访问到该文件。跟uploadfile一样,在downloadfile时客户端可以选择任意trackerserver。tracker发送download请求给某个tracker,必须带上文件名信息,tracke从文件名中解析出文件的group、大小、创建时间等信息,然后为该请求选择一个storage用来服务读请求。FastDFS下载时序图:二、FastDFS安装2.1下载安装libfastcommon下载libfastcommonwgethttps://github.com/happyfish100/libfastcommon/archive/V1.0.38.tar.gz解压tar-zxvfV1.0.38.tar.gzcdlibfastcommon-1.0.38编译安装./make.sh./make.shinstall2.2安装fastDFS下载wgethttps://github.com/happyfish100/fastdfs/archive/V5.10.tar.gz解压tar-zxvfV5.10.tar.gzcdfastdfs-5.10编译安装./make.sh./make.shinstallFastdfs的文件目录A、服务脚本:/etc/init.d/fdfs_storaged/etc/init.d/fdfs_trackerdB、配置文件模板:/etc/fdfs/client.conf.sample/etc/fdfs/storage.conf.sample/etc/fdfs/tracker.conf.sample2.3配置跟踪器(Tracker)进入/etc/fdfs,复制FastDFS跟踪器样例配置文件tracker.conf.sample,并重命名为tracker.conf。cd/etc/fdfscptracker.conf.sampletracker.confvimtracker.conf编辑tracker.conf,加粗的需要修改下,其它的默认即可。#配置文件是否不生效,false为生效disabled=false#提供服务的端口port=22122#Tracker数据和日志目录地址(根目录必须存在,子目录会自动创建)base_path=/home/data/fastdfs/trackerhttp.server_port=80创建tracker基础数据目录,即base_path对应的目录mkdir-p/home/data/fastdfs/tracker防火墙中打开跟踪端口(默认的22122)vim/etc/sysconfig/iptables最下面添加一行:-AINPUT-mstate--stateNEW-mtcp-ptcp--dport22122-jACCEPT重启iptables:serviceiptablesrestart启动Tracker初次成功启动,会在/home/data/fdfsdfs/tracker/(配置的base_path)下创建data、logs两个目录。可以用这种方式启动:/etc/init.d/fdfs_trackerdstartservicefdfs_trackerdstart查看FastDFSTracker是否已成功启动,22122端口正在被监听,则算是Tracker服务安装成功。netstat-unltp|grepfdfs关闭Tracker命令:servicefdfs_trackerdstop2.4配置存储(Storage)进入/etc/fdfs目录,复制FastDFS存储器样例配置文件storage.conf.sample,并重命名为storage.conf#cd/etc/fdfs#cpstorage.conf.samplestorage.conf#vimstorage.conf编辑storage.conf,加粗的需要修改,其它的默认即可。#配置文件是否不生效,false为生效disabled=false#指定此storageserver所在组(卷)group_name=group1#storageserver服务端口port=23000#心跳间隔时间,单位为秒(这里是指主动向trackerserver发送心跳)heart_beat_interval=30#Storage数据和日志目录地址(根目录必须存在,子目录会自动生成)base_path=/home/data/fastdfs/storage#存放文件时storageserver支持多个路径。这里配置存放文件的基路径数目,通常只配一个目录。store_path_count=1#逐一配置store_path_count个路径,索引号基于0。#如果不配置store_path0,那它就和base_path对应的路径一样。store_path0=/home/data/fastdfs/file#FastDFS存储文件时,采用了两级目录。这里配置存放文件的目录个数。#如果本参数只为N(如:256),那么storageserver在初次运行时,会在store_path下自动创建N*N个存放文件的子目录。subdir_count_per_path=256#tracker_server的列表,会主动连接tracker_server#有多个trackerserver时,每个trackerserver写一行tracker_server=192.168.1.161:22122#允许系统同步的时间段(默认是全天)。一般用于避免高峰同步产生一些问题而设定。sync_start_time=00:00sync_end_time=23:59#访问端口http.server_port=80创建Storage基础数据目录,对应base_path目录mkdir-p/home/data/fastdfs/storage这是配置的store_path0路径mkdir-p/home/data/fastdfs/file防火墙中打开存储器端口(默认的23000)vim/etc/sysconfig/iptables添加如下端口行:-AINPUT-mstate--stateNEW-mtcp-ptcp--dport23000-jACCEPT重启防火墙:serviceiptablesrestart启动Storage启动Storage前确保Tracker是启动的。初次启动成功,会在/home/data/fastdfs/storage目录下创建data、logs两个目录。可以用这种方式启动/etc/init.d/fdfs_storagedstartservicefdfs_storagedstart查看Storage和Tracker是否在通信:/usr/bin/fdfs_monitor/etc/fdfs/storage.conf