首页 文章 精选 留言 我的

精选列表

搜索[分布式锁],共10000篇文章
优秀的个人博客,低调大师

hadoo分布式安装

前骤: Hadoop Cluster中的Daemon HDFS: NameNode,NN SecondaryNode,SNN DataNode:DN /data/hadoop/hdfs/{nn,snn,dn} nn:fsimage,editlog//镜像和编辑日志 //hdfs的NN是在内存中存放数据,不断根据文件状态改变,修改元数据 fsimage存放了:文件分割后存放在哪些node上 //文件元数据的改变,会写入到editllog中,最后写入到fsimage中,因此下次NN重启后数据依然存在,从fsimage中读取数据,获取到内存中 //一旦nn崩溃,数据恢复需要大量的时间 snn:在nn崩溃的时候,及时顶上去,省去修复nn,让nn重新上线的时间,但是各个data node报告数据状态,进行修复的时间依然需要。 正常情况下:snn负责copy nn的fsimage和editlog然后在snn上合并 checkpoint:因为nn是在不断变化的,因此snn要指定合并到那个时间点上。 //官方建议30个以上的node构建hadoop集群 data是否需要工作于raid//因为hdfs已经有replicate的功能,因此再次提供冗余的必要性不大 hadoop-daemon.sh 运行进程 在集群模式中hadoop-daemon.sh start DataNode时,需要自动的找每一个DataNode节点,然后在每一个DataNode上自动启动。 如何找到,或者如何保证命令能够通过主控节点,自动连接到各从节点,并且有权限执行命令。 在主节点上:配置 YARN: ResourceManager NodeManager: yarn-daemon.sh start/stop 实际运行进程: 【NN】 【SNN】 【RM】 | | | --------------------------------- [node1/NN] [nod2/NN] [node3/NN] 在node上启动:datanode进程和nodemanager进程即可 实验模型: 【NN/SNN/RM】 | ----------------------------------------- [node1/NN] [nod2/NN] [node3/NN] 主控节点上运行:namenode,secondarynamenode,resourcemanager三个进程 其他node上启动:datanode进程和nodemanager进程 预备: 1.ntpdate 同步 tzselect, timedatactl //查看时区设置 timedatectl list-timezones # 列出所有时区 timedatectl set-local-rtc 1 # 将硬件时钟调整为与本地时钟一致, 0 为设置为 UTC 时间 timedatectl set-timezone Asia/Shanghai # 设置系统时区为上海 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime //最简单的方案 2.hosts通信 172.16.100.67 node1.mt.com node1 master 172.16.100.68 node2.mt.com node2 172.16.100.69 node3.mt.com node3 172.16.100.70 node4.mt.com node4 如果需要通过master节点启动或停止整个集群,需要在master上配置运行服务的用户,如hdfs和yarn能够基于密钥ssh链接 node1: 一、前奏 (1)配置环境 vim /etc/profile.d/java.sh JAVA_HOME=/usr yum install java-1.8.0-openjdk-devel.x86_64 scp /etc/profile.d/java.sh node2:/etc/profile.d/ scp /etc/profile.d/java.sh node3:/etc/profile.d/ scp /etc/profile.d/java.sh node4:/etc/profile.d/ vim /etc/profile.d/hadoop.sh export HADOOP_PREFIX=/bdapps/hadoop export PATH=$PATH:${HADOOP_PREFIX}/bin:${HADOOP_PREFIX}/sbin export HADOOP_YARN_HOME=${HADOOP_PREFIX} export HADOOP_MAPPERD_HOME=${HADOOP_PREFIX} export HADOOP_COMMON_HOME=${HADOOP_PREFIX} export HADOOP_HDFS_HOME=${HADOOP_PREFIX} . /etc/profile.d/hadoop.sh scp /etc/profile.d/hadoop.sh node2:/etc/profile.d/ scp /etc/profile.d/hadoop.sh node3:/etc/profile.d/ scp /etc/profile.d/hadoop.sh node4:/etc/profile.d/ (2)修改hosts文件 vim /etc/hosts 172.16.100.67 node1.mt.com node1 master 172.16.100.68 node2.mt.com node2 172.16.100.69 node3.mt.com node3 172.16.100.70 node4.mt.com node4 scp 到 node2,node3,node4 (3)hadoop 密钥登录 useradd hadoop //node2,3,4都有一个hadoop用户 echo "hadoop" | passwd --stdin hadoop useradd -g hadoop hadoop //这里都使用一个用户,也可以分别创建yarn和hdfs用户 su - hadoop ssh-keygen for i in 2 3 4; do ssh-copy-id -i .ssh/id_rsa.pub hadoop@node${i}; done 验证: ssh node2 'date' ssh node3 'date' ssh node4 'date' 二、安装部署hadoop (1)解压 mkdir -pv /bdapps/ /data/hadoop/hdfs/{nn,snn,dn} //这里的dn是用不到的,因为主控节点是不存储数据的,可以不创建 chown -R hadoop:hadoop /data/hadoop/hdfs tar xvf hadoop-2.6.2.tar.gz -C /bdapps/ cd /bdapps/ ln -sv hadoop-2.6.2 hadoop cd hadoop mkdir logs chown g+w logs chown -R hadoop:hadoop ./* (2)配置文件修改 1.core-site.xml 配置 vim etc/hadoop/core-site.xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:8020</value> //hdfs的访问接口,master如果不能解析,用ip地址也可以 <final>true</final> </property> </configuration> //core指向NN 2.yanr-site.xml文件配置 vim etc/hadoop/yarn-site.xml <configuration> <property> <name>yarn.resourcemanager.address</name> <value>master:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>master:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>master:8031</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>master:8033</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>master:8088</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.auxservices.mapreduce_shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.resourcemanager.scheduler.class</name> <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value> </property> </configuration> //%s/localhost/master/g //替换localhost为master //指向ResourceManager 3.hdfs-site.xml配置 vim etc/hadoop/hdfs-site.xml <configuration> <property> <name>dfs.replication</name> //dfs的副本数量 <value>2</value> </property> <proporty> <name>dfs.namenode.name.dir</name> <value>file:///data/hadoop/hdfs/nn</value> </property> <proporty> <name>dfs.datanode.data.dir</name> <value>file:///data/hadoop/hdfs/dn</value> </property> <property> <name>fs.checkpoint.dir</name> <value>file:///data/hadoop/hdfs/snn</value> </property> <property> <name>fs.checkpoint.edits.dir</name> <value>file:///data/hadoop/hdfs/snn</value> </property> </configuration> 4. mapred-site.xml 是唯一不需要修改的 默认的就是yarn就可以 5. vim slaves node2 node3 node4 //slaves是datanode和nodemanager (3) 在node2,node3,node4指定到该步骤后:chown -R hadoop:hadoop ./* su - hadoop scp /bdapps/hadoop/etc/hadoop/* node2:/bdapps/hadoop/etc/hadoop/ scp /bdapps/hadoop/etc/hadoop/* node3:/bdapps/hadoop/etc/hadoop/ scp /bdapps/hadoop/etc/hadoop/* node4:/bdapps/hadoop/etc/hadoop/ 三.格式化然后启动 su - hadoop hdfs namenode -format 显示/data/hadoop/hdfs/nn hash been successful formatted 表示成功 启动hadoop方式有两种: 1.在各节点上分别启动要启动的服务 启动yarn服务要使用yarn用户身份 master节点:NameNode服务和ResourceManager服务 su - hdfs -c 'hadoop-daemon.sh start namenode' su - hdfs -c 'yarn-daemon.sh start resourcemanager' slave节点:DataNode服务和NodeManager服务 su - hdfs -c 'hadoop-daemon.sh start datanode' su - hdfs -c 'yarn-daemon.sh start nodemanager' 2.在master上启动整个集群 su - hdfs -c 'start-dfs.sh' su - hdfs -c 'start-yarn.sh' 老版本通过start-all.sh和stop-all.sh来控制hdfs和mapreduce 启动服务: su - hdfs -c 'start-dfs.sh' su - hdfs -c 'stop-dfs.sh' //关闭hdfs 会提示在,2,3,4节点上启动 su - hdfs -c 'start-yarn.sh' master启动resourcemanager slave上启动nodemanager 测试: node3: su - hadoop jps //查看DataNode进程和NodeManager进程 node1:su - hadoop jps //启动的有secondaryNameNode和NameNode进程 hdfs dfs -mkdir /test hdfs dfs -put /etc/fstab /test/fstab hdfs dfs -ls -R /test hdfs dfs -cat /test/fstab node3: ls /data/hadoop/hdfs/dn/current/..../blk,... 存储在这里 注意:node2,3,4中有一个是没有存储该文件的,因为定义的slaves 为2个 vim etc/hadoop/hdfs-site.xml <name>dfs.replication</name> //dfs的副本数量 <value>2</value> Web接口查看: 172.16.100.67:8088 内存显示为24G,因为3G,每个node的物理内存代大小为8G 172.16.100.67:50070 datanode: 有三个 单个文件太小的是不会被切割的,大于64M的文件会被切片 可以直接上传压缩文件,会被切块 运行任务测试: yarn jar /bdapps/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-example-2.6.jar wordcount /test/fstab /test/functions /test/wc hdfs dfs cat /test/wc/part-r-0000 四、其他节点 node2: user hadoop echo "hadoop" | passwd --stdin hadoop mkdir -pv /bdapps /data/hadoop/hdfs/{nn,snn,dn} //只有dn有用 chown -R hadoop:hadoop /data/hadoop/hdfs/ tar xvf hadoop-2.6.2.tar.gz -C /bdapps/ cd /bdapps/ ln -sv hadoop-2.6.2 hadoop cd hadoop mkdir logs chown g+w logs chown -R hadoop:hadoop ./* //可以在修改配置文件后,直接复制到node3和node4上因为配置都一样 node3: user hadoop echo "hadoop" | passwd --stdin hadoop mkdir -pv /bdapps /data/hadoop/hdfs/{nn,snn,dn} //只有dn有用 chown -R hadoop:hadoop /data/hadoop/hdfs/ tar xvf hadoop-2.6.2.tar.gz -C /bdapps/ cd /bdapps/ ln -sv hadoop-2.6.2 hadoop cd hadoop mkdir logs chown g+w logs chown -R hadoop:hadoop ./* node4: user hadoop echo "hadoop" | passwd --stdin hadoop mkdir -pv /bdapps /data/hadoop/hdfs/{nn,snn,dn} //只有dn有用 chown -R hadoop:hadoop /data/hadoop/hdfs/ tar xvf hadoop-2.6.2.tar.gz -C /bdapps/ cd /bdapps/ ln -sv hadoop-2.6.2 hadoop cd hadoop mkdir logs chown g+w logs chown -R hadoop:hadoop ./* ===================================================== yarn的集群管理命令 yarn [--config confdir] COMMAND resourcemanager-format-state-store //删除RMStateStore resourcemanager //运行ResourceManager nodemanaer //运行nodemanager on each slave timelineserver //运行timelineserver,任务编排,时间线 rmadmin //resourcemanager管理 version jar //运行jar文件 application //显示application信息 report/kill application applicationattempt //尝试运行相关报告 container //容器相关信息 node //显示node queue //报告队列信息 logs //备份容器日志 classpath //显示java运行程序时的类加载路径 daemonlog //获取守护进程的日志级别 jar,application,node,logs,classpath,version 是常用的用户命令 resourcemanager,nodemanager,proxyserver,rmadmin,daemon是常用的管理类命令 yarn application [options] -status ApplicationID 状态信息 yarn application -status application_1494685700454_0001 -list 列出yarn上的application列表 -appTypes:MAPREDUCE,YARN -appStates:ALL,NEW,NEW_SAVING,SUBMITTED,ACCEPTED,RUNNING,FINISHED,FAILED,KILLED yarn application -appStates=all -kill ApplicationID yarn node -list //例出node列表 -states: NEW,RUNNING,UNHEALTHY不健康,DECOMMISSION退役的,LOST,REBOOTED -staus Node-ID //显示节点信息 logs:显示已经完成的YARN程序的日志(及状态为:FAILED,KILLED,FINISHED) 如果需要在命令行查看日志需要配置yarn-site.xml yarn.log-aggregation-enable 属性值为true yarn logs -applicationId [applicationID] [options] -applicationId applicationID必备选项,用于从ResourceManager获取其详细信息。 -appOwner APPOwner默认为当前用户,可选 -nodeAddress NodeAddress -containerId containerID:获取当前指定节点上指定容器的相关信息;其中NodeAddress的格式同NodeId classpath: yarn calasspath //加载java程序路径 管理命令: rmadmin nodemanager timelineserver rmadmin是ResourceManager的客户端程序,可用于刷新访问控制策略、调度器队列及注册到RM上的节点等。 刷新之后,无需重启即可生效。 yarn rmadmin [options] -help -refreshQueues:重载队列的acl,状态及调用器队列;它会根据配置文件中的配置信息重新初始化调度器 -refreshNodes:为RM刷新主机信息,它通过读取RM节点的include和exclude文件来更新集群需要包含或排除的节点列表。 -refreshUserToGroupMappings:根据配置的Hadoop安全组映射,通过刷新组缓存中的信息来更新用户和组之间的映射关系。 -refreshSuperUserGroupsConfiguration:刷新超级用户代理组映射,以及更新代理主机和core-site.xml配置文件中的hadoop.proxyuser属性定义的代理组 -refreshAdminAcls:根据yarn站点配置文件或默认配置文件的yarn.admin.acl属性刷新RM的管理ACL; -refreshServiceAcl:重载服务级别授权策略文件,而后RM将重载授权策略文件;它会检查hadoop安全授权是否启用并为IPC Server,ApplicationMaster,Client及Resource tracker刷新ACL; DaemonLog:查看或更细 http://host:port/logLevel?log=name service? yarn daemonlog [options] args -getLevel host:port name:显示指定守护进程的日志级别 -getLevel host:port level:设置守护进程的日志级别 运行YARN application yarn application可以是一个shell脚本,MapReduce作业或者其他类型的任意作业。 步骤: 1.Application初始化提交 //client端完成 2.分配内存并启动AM //RM完成 3.AM注册及资源分配 //AM在nodemanager上完成 4.启动并监控容器 //AM向NM报告,NM报告RM完成 5.Application进度报告 //AM完成 6.Application进度完成 // 利用ambari部署hadoop集群 https://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari/ https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.5.0 IBM官方技术论坛:https://www.ibm.com/developerworks/cn/opensource/ Ambari 2.2.2 下载资源 OS Format URL http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.2.2.0 http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.2.2.0/ambari.repo http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.2.2.0/ambari-2.2.2.0-centos7.tar.gz HDP 2.4.2 下载资源 http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.4.2.0 http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.4.2.0/hdp.repo http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.4.2.0/HDP-2.4.2.0-centos7-rpm.tar.gz http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos7 http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos7/HDP-UTILS-1.1.0.20-centos7.tar.gz 本文转自MT_IT51CTO博客,原文链接:http://blog.51cto.com/hmtk520/1944156,如需转载请自行联系原作者

优秀的个人博客,低调大师

Hbase伪分布式

其实我就是要让数据存储在hdfs上而已。。。。。。。。 多配置点东西就好了,在hbase-site.xml中加入: <configuration> <property> <name>hbase.rootdir</name> <value>hdfs://yangsy132:9000/user/hive/warehouse/</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/hadoop/zookeeper-3.4.6/data</value> </property> </configuration> 然后启动hbase即可,但我发现查询时报错啊。。报错信息被刷掉了- -大概错误是: ERROR:org.apache.hadoop.hbase.PleaseHoldException:org.apache.hadoop.hbase.PleaseHoldException:Masterisinitializing 修改 vi /etc/host中 如果IP地址为127.0.1.1或:1 则改为127.0.0.1 重启即可 重启后又发现 继续报错啊。。。错误信息大概是: ERROR: Can't get master address from ZooKeeper; znode data == null 进入zookeeper的data目录下 删除红框中的 重启即可 唉~所有环境都好了木有时间玩~ 只能等周末好好玩一把~

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册