首页 文章 精选 留言 我的

精选列表

搜索[centos],共5623篇文章
优秀的个人博客,低调大师

CentOS7.x Hadoop集群搭建

1. 准备工作 我有一个主机ip是192.168.27.166,我将再此基础上再扩展三个主机。 修改主机名 /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.27.166 s166 192.168.27.167 s167 192.168.27.168 s168 192.168.27.169 s169 其中,我将把s166作为名称节点(NameNode),其它三个作为数据节点(DataNode)。 修改hostname etc/hostname 2. 克隆虚拟机 略 3. 修改数据节点的hostname和ip地址 编辑/etc/sysconfig/network-scripts/ifcfg-eno33 编辑/etc/hostname 重启网络服务 service network restart 验证通信是否完成 [root@s166 etc]# ping s167 PING s167 (192.168.27.167) 56(84) bytes of data. 64 bytes from s167 (192.168.27.167): icmp_seq=1 ttl=64 time=0.245 ms [root@s166 etc]# ping s168 PING s168 (192.168.27.168) 56(84) bytes of data. 64 bytes from s168 (192.168.27.168): icmp_seq=1 ttl=64 time=0.203 ms [root@s166 etc]# ping s169 PING s169 (192.168.27.169) 56(84) bytes of data. 64 bytes from s169 (192.168.27.169): icmp_seq=1 ttl=64 time=0.178 ms 4. 各主机间无密码通信 SSH无密码登录设置 将s166的公钥文件id_rsa.pub远程复制到167-169主机上 测试是否配置成功 [root@s166 etc]# ssh s167 Last failed login: Wed Jul 25 15:50:22 EDT 2018 on tty1 There was 1 failed login attempt since the last successful login. Last login: Wed Jul 25 10:36:57 2018 from s166 [root@s167 ~]# ... Hadoop的4+1个文件配置 hadoop的配置文件都在/hadoop/etc/hadoop下 1. core-site.xml 设置hdfs://s166为服务器ip地址 <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://s166/</value> </property> </configuration> 2. hdfs-site.xml 分片数量设置为3 <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> </configuration> 3. mapred-site.xml.template 先mapred-site.xml.template mapred-site.xml,然后对mapred-site.xml做修改执行框架设置为Hadoop YARN <?xml version="1.0"?> <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> 4. yarn-site.xml RM的hostname设置为s166 <?xml version="1.0"?> <configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>s166</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> 5. slaves s167 s168 s169 修改etc/hadoop/hadoop-env.sh配置 把该文件中的export JAVA_HOME属性修改成JAVA_HOME的绝对路径。 export JAVA_HOME=/home/fantj/jdk 配置分发 进入到hadoop/etc目录下,把该目录下的hadoop覆盖到各个主机。 scp -r hadoop/ root@s167:/home/fantj/hadoop/etc/ scp -r hadoop/ root@s168:/home/fantj/hadoop/etc/ scp -r hadoop/ root@s169:/home/fantj/hadoop/etc/ 格式化文件系统 hadoop namenode -format [root@s166 etc]# hadoop namenode -format DEPRECATED: Use of this script to execute hdfs command is deprecated. Instead use the hdfs command for it. 18/07/27 04:17:36 INFO namenode.NameNode: STARTUP_MSG: /************************************************************ STARTUP_MSG: Starting NameNode STARTUP_MSG: host = s166/192.168.27.166 STARTUP_MSG: args = [-format] STARTUP_MSG: version = 2.7.0 STARTUP_MSG: classpath = /home/fantj/download/hadoop-2.7.0/etc/hadoop:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/java-xmlbuilder-0.4.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/snappy-java-1.0.4.1.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/commons-cli-1.2.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/jetty-util-6.1.26.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/stax-api-1.0-2.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/commons-configuration-1.6.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/log4j-1.2.17.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/apacheds-i18n-2.0.0-M15.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/asm-3.2.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/servlet-api-2.5.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/hadoop-auth-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/jsr305-3.0.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/jsp-api-2.1.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/avro-1.7.4.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/jackson-core-asl-1.9.13.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/jaxb-api-2.2.2.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/jetty-6.1.26.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/curator-framework-2.7.1.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/jackson-mapper-asl-1.9.13.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/commons-logging-1.1.3.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/commons-net-3.1.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/commons-math3-3.1.1.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/jersey-server-1.9.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/apacheds-kerberos-codec-2.0.0-M15.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/protobuf-java-2.5.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/jets3t-0.9.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/commons-compress-1.4.1.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/hadoop-annotations-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/gson-2.2.4.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/jersey-json-1.9.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/activation-1.1.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/httpcore-4.2.5.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/commons-codec-1.4.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/jackson-jaxrs-1.9.13.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/commons-beanutils-1.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/curator-client-2.7.1.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/commons-lang-2.6.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/commons-collections-3.2.1.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/curator-recipes-2.7.1.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/paranamer-2.3.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/zookeeper-3.4.6.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/jsch-0.1.42.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/commons-beanutils-core-1.8.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/jackson-xc-1.9.13.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/commons-io-2.4.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/commons-httpclient-3.1.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/jettison-1.1.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/jaxb-impl-2.2.3-1.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/xz-1.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/netty-3.6.2.Final.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/junit-4.11.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/api-util-1.0.0-M20.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/slf4j-api-1.7.10.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/httpclient-4.2.5.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/jersey-core-1.9.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/api-asn1-api-1.0.0-M20.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/guava-11.0.2.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/commons-digester-1.8.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/hamcrest-core-1.3.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/xmlenc-0.52.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/mockito-all-1.8.5.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/lib/htrace-core-3.1.0-incubating.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/hadoop-common-2.7.0-tests.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/hadoop-common-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/common/hadoop-nfs-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/lib/commons-cli-1.2.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/lib/jetty-util-6.1.26.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/lib/xercesImpl-2.9.1.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/lib/log4j-1.2.17.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/lib/asm-3.2.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/lib/servlet-api-2.5.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/lib/jsr305-3.0.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/lib/netty-all-4.0.23.Final.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/lib/jackson-core-asl-1.9.13.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/lib/jetty-6.1.26.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/lib/jackson-mapper-asl-1.9.13.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/lib/commons-logging-1.1.3.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/lib/jersey-server-1.9.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/lib/protobuf-java-2.5.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/lib/leveldbjni-all-1.8.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/lib/commons-daemon-1.0.13.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/lib/commons-codec-1.4.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/lib/commons-lang-2.6.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/lib/xml-apis-1.3.04.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/lib/commons-io-2.4.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/lib/netty-3.6.2.Final.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/lib/jersey-core-1.9.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/lib/guava-11.0.2.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/lib/xmlenc-0.52.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/lib/htrace-core-3.1.0-incubating.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/hadoop-hdfs-nfs-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/hadoop-hdfs-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/hdfs/hadoop-hdfs-2.7.0-tests.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/commons-cli-1.2.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/jetty-util-6.1.26.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/stax-api-1.0-2.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/aopalliance-1.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/log4j-1.2.17.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/asm-3.2.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/servlet-api-2.5.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/jsr305-3.0.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/jersey-client-1.9.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/guice-3.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/jackson-core-asl-1.9.13.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/jaxb-api-2.2.2.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/jetty-6.1.26.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/jackson-mapper-asl-1.9.13.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/commons-logging-1.1.3.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/guice-servlet-3.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/jersey-server-1.9.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/protobuf-java-2.5.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/commons-compress-1.4.1.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/leveldbjni-all-1.8.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/jersey-json-1.9.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/activation-1.1.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/jersey-guice-1.9.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/commons-codec-1.4.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/jackson-jaxrs-1.9.13.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/commons-lang-2.6.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/commons-collections-3.2.1.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/zookeeper-3.4.6.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/jackson-xc-1.9.13.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/commons-io-2.4.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/jettison-1.1.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/jaxb-impl-2.2.3-1.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/xz-1.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/netty-3.6.2.Final.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/javax.inject-1.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/jersey-core-1.9.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/zookeeper-3.4.6-tests.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/lib/guava-11.0.2.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/hadoop-yarn-server-common-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/hadoop-yarn-server-tests-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/hadoop-yarn-server-resourcemanager-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/hadoop-yarn-client-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/hadoop-yarn-server-sharedcachemanager-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/hadoop-yarn-server-nodemanager-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/hadoop-yarn-applications-unmanaged-am-launcher-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/hadoop-yarn-registry-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/hadoop-yarn-server-applicationhistoryservice-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/hadoop-yarn-common-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/hadoop-yarn-applications-distributedshell-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/hadoop-yarn-server-web-proxy-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/yarn/hadoop-yarn-api-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/lib/snappy-java-1.0.4.1.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/lib/aopalliance-1.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/lib/log4j-1.2.17.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/lib/asm-3.2.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/lib/guice-3.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/lib/avro-1.7.4.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/lib/jackson-core-asl-1.9.13.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/lib/jackson-mapper-asl-1.9.13.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/lib/guice-servlet-3.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/lib/jersey-server-1.9.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/lib/protobuf-java-2.5.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/lib/commons-compress-1.4.1.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/lib/hadoop-annotations-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/lib/leveldbjni-all-1.8.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/lib/jersey-guice-1.9.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/lib/paranamer-2.3.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/lib/commons-io-2.4.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/lib/xz-1.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/lib/netty-3.6.2.Final.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/lib/javax.inject-1.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/lib/junit-4.11.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/lib/jersey-core-1.9.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/lib/hamcrest-core-1.3.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/hadoop-mapreduce-client-shuffle-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/hadoop-mapreduce-client-hs-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/hadoop-mapreduce-client-hs-plugins-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.0-tests.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/hadoop-mapreduce-client-common-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/hadoop-mapreduce-client-app-2.7.0.jar:/home/fantj/download/hadoop-2.7.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jar:/home/fantj/hadoop/contrib/capacity-scheduler/*.jar:/home/fantj/download/hadoop-2.7.0/contrib/capacity-scheduler/*.jar STARTUP_MSG: build = Unknown -r Unknown; compiled by 'root' on 2015-05-21T03:49Z STARTUP_MSG: java = 1.8.0_171 ************************************************************/ 18/07/27 04:17:36 INFO namenode.NameNode: registered UNIX signal handlers for [TERM, HUP, INT] 18/07/27 04:17:36 INFO namenode.NameNode: createNameNode [-format] Formatting using clusterid: CID-75fa7946-8fa3-4b09-83c4-00ec91f5f0b6 18/07/27 04:17:39 INFO namenode.FSNamesystem: No KeyProvider found. 18/07/27 04:17:39 INFO namenode.FSNamesystem: fsLock is fair:true 18/07/27 04:17:39 INFO blockmanagement.DatanodeManager: dfs.block.invalidate.limit=1000 18/07/27 04:17:39 INFO blockmanagement.DatanodeManager: dfs.namenode.datanode.registration.ip-hostname-check=true 18/07/27 04:17:39 INFO blockmanagement.BlockManager: dfs.namenode.startup.delay.block.deletion.sec is set to 000:00:00:00.000 18/07/27 04:17:39 INFO blockmanagement.BlockManager: The block deletion will start around 2018 Jul 27 04:17:39 18/07/27 04:17:39 INFO util.GSet: Computing capacity for map BlocksMap 18/07/27 04:17:39 INFO util.GSet: VM type = 64-bit 18/07/27 04:17:39 INFO util.GSet: 2.0% max memory 966.7 MB = 19.3 MB 18/07/27 04:17:39 INFO util.GSet: capacity = 2^21 = 2097152 entries 18/07/27 04:17:39 INFO blockmanagement.BlockManager: dfs.block.access.token.enable=false 18/07/27 04:17:39 INFO blockmanagement.BlockManager: defaultReplication = 3 18/07/27 04:17:39 INFO blockmanagement.BlockManager: maxReplication = 512 18/07/27 04:17:39 INFO blockmanagement.BlockManager: minReplication = 1 18/07/27 04:17:39 INFO blockmanagement.BlockManager: maxReplicationStreams = 2 18/07/27 04:17:39 INFO blockmanagement.BlockManager: shouldCheckForEnoughRacks = false 18/07/27 04:17:39 INFO blockmanagement.BlockManager: replicationRecheckInterval = 3000 18/07/27 04:17:39 INFO blockmanagement.BlockManager: encryptDataTransfer = false 18/07/27 04:17:39 INFO blockmanagement.BlockManager: maxNumBlocksToLog = 1000 18/07/27 04:17:39 INFO namenode.FSNamesystem: fsOwner = root (auth:SIMPLE) 18/07/27 04:17:39 INFO namenode.FSNamesystem: supergroup = supergroup 18/07/27 04:17:39 INFO namenode.FSNamesystem: isPermissionEnabled = true 18/07/27 04:17:39 INFO namenode.FSNamesystem: HA Enabled: false 18/07/27 04:17:39 INFO namenode.FSNamesystem: Append Enabled: true 18/07/27 04:17:40 INFO util.GSet: Computing capacity for map INodeMap 18/07/27 04:17:40 INFO util.GSet: VM type = 64-bit 18/07/27 04:17:40 INFO util.GSet: 1.0% max memory 966.7 MB = 9.7 MB 18/07/27 04:17:40 INFO util.GSet: capacity = 2^20 = 1048576 entries 18/07/27 04:17:40 INFO namenode.FSDirectory: ACLs enabled? false 18/07/27 04:17:40 INFO namenode.FSDirectory: XAttrs enabled? true 18/07/27 04:17:40 INFO namenode.FSDirectory: Maximum size of an xattr: 16384 18/07/27 04:17:40 INFO namenode.NameNode: Caching file names occuring more than 10 times 18/07/27 04:17:40 INFO util.GSet: Computing capacity for map cachedBlocks 18/07/27 04:17:40 INFO util.GSet: VM type = 64-bit 18/07/27 04:17:40 INFO util.GSet: 0.25% max memory 966.7 MB = 2.4 MB 18/07/27 04:17:40 INFO util.GSet: capacity = 2^18 = 262144 entries 18/07/27 04:17:40 INFO namenode.FSNamesystem: dfs.namenode.safemode.threshold-pct = 0.9990000128746033 18/07/27 04:17:40 INFO namenode.FSNamesystem: dfs.namenode.safemode.min.datanodes = 0 18/07/27 04:17:40 INFO namenode.FSNamesystem: dfs.namenode.safemode.extension = 30000 18/07/27 04:17:40 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.window.num.buckets = 10 18/07/27 04:17:40 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.num.users = 10 18/07/27 04:17:40 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.windows.minutes = 1,5,25 18/07/27 04:17:40 INFO namenode.FSNamesystem: Retry cache on namenode is enabled 18/07/27 04:17:40 INFO namenode.FSNamesystem: Retry cache will use 0.03 of total heap and retry cache entry expiry time is 600000 millis 18/07/27 04:17:40 INFO util.GSet: Computing capacity for map NameNodeRetryCache 18/07/27 04:17:40 INFO util.GSet: VM type = 64-bit 18/07/27 04:17:40 INFO util.GSet: 0.029999999329447746% max memory 966.7 MB = 297.0 KB 18/07/27 04:17:40 INFO util.GSet: capacity = 2^15 = 32768 entries 18/07/27 04:17:40 INFO namenode.FSImage: Allocated new BlockPoolId: BP-703568763-192.168.27.166-1532679460786 18/07/27 04:17:40 INFO common.Storage: Storage directory /tmp/hadoop-root/dfs/name has been successfully formatted. 18/07/27 04:17:41 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0 18/07/27 04:17:41 INFO util.ExitUtil: Exiting with status 0 18/07/27 04:17:41 INFO namenode.NameNode: SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down NameNode at s166/192.168.27.166 ************************************************************/ 启动hadoop进程 start-all.sh [root@s166 etc]# start-all.sh This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh Starting namenodes on [s166] The authenticity of host 's166 (192.168.27.166)' can't be established. ECDSA key fingerprint is SHA256:3BePLPmiwUOy025LcIJJNvQJlKUJ3uo9T03op0XC5ws. ECDSA key fingerprint is MD5:24:ee:b2:a8:cf:df:9d:f7:cc:6c:1f:73:c5:ad:b5:b0. Are you sure you want to continue connecting (yes/no)? yes s166: Warning: Permanently added 's166,192.168.27.166' (ECDSA) to the list of known hosts. root@s166's password: s166: starting namenode, logging to /home/fantj/download/hadoop-2.7.0/logs/hadoop-root-namenode-s166.out s167: starting datanode, logging to /home/fantj/download/hadoop-2.7.0/logs/hadoop-root-datanode-s167.out s169: starting datanode, logging to /home/fantj/download/hadoop-2.7.0/logs/hadoop-root-datanode-s169.out s168: starting datanode, logging to /home/fantj/download/hadoop-2.7.0/logs/hadoop-root-datanode-s168.out Starting secondary namenodes [0.0.0.0] The authenticity of host '0.0.0.0 (0.0.0.0)' can't be established. ECDSA key fingerprint is SHA256:3BePLPmiwUOy025LcIJJNvQJlKUJ3uo9T03op0XC5ws. ECDSA key fingerprint is MD5:24:ee:b2:a8:cf:df:9d:f7:cc:6c:1f:73:c5:ad:b5:b0. Are you sure you want to continue connecting (yes/no)? yes 0.0.0.0: Warning: Permanently added '0.0.0.0' (ECDSA) to the list of known hosts. root@0.0.0.0's password: 0.0.0.0: starting secondarynamenode, logging to /home/fantj/download/hadoop-2.7.0/logs/hadoop-root-secondarynamenode-s166.out starting yarn daemons starting resourcemanager, logging to /home/fantj/download/hadoop-2.7.0/logs/yarn-root-resourcemanager-s166.out s168: starting nodemanager, logging to /home/fantj/download/hadoop-2.7.0/logs/yarn-root-nodemanager-s168.out s167: starting nodemanager, logging to /home/fantj/download/hadoop-2.7.0/logs/yarn-root-nodemanager-s167.out s169: starting nodemanager, logging to /home/fantj/download/hadoop-2.7.0/logs/yarn-root-nodemanager-s169.out 配置成功校验 根据控制台打印信息查看 s166: starting namenode, logging to /home/fantj/download/hadoop-2.7.0/logs/hadoop-root-namenode-s166.out s167: starting datanode, logging to /home/fantj/download/hadoop-2.7.0/logs/hadoop-root-datanode-s167.out s169: starting datanode, logging to /home/fantj/download/hadoop-2.7.0/logs/hadoop-root-datanode-s169.out s168: starting datanode, logging to /home/fantj/download/hadoop-2.7.0/logs/hadoop-root-datanode-s168.out starting resourcemanager, logging to /home/fantj/download/hadoop-2.7.0/logs/yarn-root-resourcemanager-s166.out s168: starting nodemanager, logging to /home/fantj/download/hadoop-2.7.0/logs/yarn-root-nodemanager-s168.out s167: starting nodemanager, logging to /home/fantj/download/hadoop-2.7.0/logs/yarn-root-nodemanager-s167.out s169: starting nodemanager, logging to /home/fantj/download/hadoop-2.7.0/logs/yarn-root-nodemanager-s169.out 有报错的话,去查看日志分析。 NameNode主机校验 [root@s166 etc]# jps 1397 NameNode 1559 SecondaryNameNode 1815 Jps 1727 ResourceManager DataNode主机校验 [root@s168 ~]# jps 11281 Jps 1815 NodeManager 1756 DataNode

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

CentOS7安装Nginx、MySQL、PHP

之前才网上找了好多文章,但是配置总会出错,后来傻傻的发现官方文档都有的,当然配合网上文章说明更好,因此本文只说一个大概 安装PHP 官方配置 配置用户和用户组,需要有根目录权限 vim /usr/local/etc/php-fpm.conf Nginx 官方配置 user www www; # 需要具有根目录权限 www www 700 /home/www server { listen 80; server_name localhost; root /home/www; location / { index index.php index.html index.htm; } location ~ \.php$ { root /home/www; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } MySQL 可以根据官网下载配置,个人感觉挺好用的 使用Oracle的RPM软件包在Linux上安装MySQL

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

Centos 挂载NTFS格式移动硬盘

问题描述: 通过mysqldump导出的sql文件很大,300G,如果用网络传输的话比较慢,所有就用移动硬盘去挂载导入到另一条服务器上, 发现文件系统报错说是 "error mounting: mount : unknown filesystem type ntfs" 这个报错意思是 Linux系统不支持ntfs的硬盘格式 解决方案: Linux挂载NTFS格式硬盘时会报错unknown filesystem type 'ntfs',这时就需要用到第三方的插NTFS-3G来加载NTFS格式硬盘。其中NTFS-3G是一个开源软件,支持在Linux, FreeBSD, Mac OS X, NetBSD, Haiku操作系统下读写NTFS格式的分区。主要的操作步骤如下: 下载安装NTFS-3G(文中涉及的软件包加最下方微信免费获取) 安装步骤(root用户) tar –xvzf ntfs-3g_ntfsprogs-2012.1.15.tgz cdntfs-3g_ntfsprogs-2012.1.15 ./configure make make install 检查NTFS硬盘分区信息(sd*1注意实际情况) fdisk -l 挂载分区 mkdir /mnt/ntfs mount -t ntfs-3g /dev/sdb1 /mnt/ntfs #分区挂载完成,此时进入/mnt/ntfs目录,即是移动硬盘的分区 卸载分区 umount /dev/sdb1 开机自动挂载移动硬盘,编辑/etc/fstab文件 #更改之前先备份 cp /etc/fstab /etc/fstabbak #编辑,在最后添加以下信息,以读写方式挂载磁盘 vi /etc/fstab --------------------------------- /dev/sdb1 /mnt/ntfs ntfs-3g defaults 0 0 #保存,退出 #重启机器就会自动挂载移动硬盘 .取消挂载umount的时候出现如下提示: device is busy. #解决方法:fuser #可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、甚至网络端口,并给出程序进程的详细信息。 fuser -m -v /media/SLES100_001 --------------------------------- USER PID ACCESS COMMAND /media/SLES100_001: root 8153 ..c.. bash #然后可以添加一个 -k 参数把占用的进程给干掉! fuser -m -k /media/SLES100_001 --------------------------------- /media/SLES100_001: 8153c

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

CentOS下搭建tomcat集群全记录

本文将讲述如何在Linux下搭建tomcat集群,以及搭建过程中可能的遇到的问题和解决方法。为简单起见,本文演示搭建的集群只有两个tomact节点外加一个apache组成,三者将安装在同一机器上: apache: 安装路径:/usr/local/apache2 端口:90 tomcat1: 安装路径:/usr/local/apache-tomcat-6.0.33-1 端口:6080 tomcat2: 安装路径:/usr/local/apache-tomcat-6.0.33-2 端口:7080 2.所需要软件列表 apache 当前最新版本:2.2.21 本文采用源码方式安装,源码包下载地址:http://labs.renren.com/apache-mirror//httpd/httpd-2.2.21.tar.gz 其他版本下载地址参见:http://httpd.apache.org/download.cgi tomcat 6 当前最新版本:6.0.33 本文使用自解压的tar.gz包进行安装,下载地址:http://labs.renren.com/apache-mirror/tomcat/tomcat-6/v6.0.33/bin/apache-tomcat-6.0.33.tar.gz 其他版本下载地址参见:http://tomcat.apache.org/download-60.cgi Apache Tomcat Connector (也就是mod_jk) 当前最新版本:JK-1.2.32 本文采用源码方式安装,源码包下载地址:http://www.apache.org/dist/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.32-src.tar.gz 其他版本下载地址参见:http://tomcat.apache.org/download-connectors.cgi 3.软件安装 3.1 安装apache 1.进入下载好的httpd-2.2.21.tar.gz文件所在目录,执行解压操作: tar -zxvf httpd-2.2.21.tar.gz 2.进入解压出的文件夹根目录: cd httpd-2.2.21 3.进行编译参数配置: ./configure --prefix=/usr/local/apache2 --enable-mods-shared=all 关于configure参数的更多内容可参考: http://httpd.apache.org/docs/2.2/en/programs/configure.html#installationdirectories 4.编译安装: make make install 5.启动和关闭apache 完成上述步骤后,apache的安装就结束了,通过下面的命令启动和关闭apache: 启动: /usr/local/apache2/bin/apachectl start 关闭: /usr/local/apache2/bin/apachectl stop 3.2 关于在安装apache过程中报Cannot use an external APR with the bundled APR-util错误的解决办法 有时候,在安装apache,执行./configure操作时会报这个错误,解决方法是安装apache2.2.x自身携带的apr,方法为: 1.自源码安装目录httpd-2.2.21进入apache2.2.x自带apr的安装目录 cd srclib/apr 2.安装apr(此处将之安装在/usr/local/apr下,如果系统中已经安装apr,可找到安装目录进行覆盖) ./configure --prefix=/usr/local/apr make make install 3.安装apr-util ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr make make install 4.使用新安装的apr重新进行apache编译配置 放回安装根目录httpd-2.2.21,执行: ./configure --prefix=/usr/local/apache2 \ --enable-mods-shared=all \ --with-apr=/usr/local/apr \ --with-apr-util=/usr/local/apr-util/bin 补充: 如果你安装是apache-2.4以上版本,有以下几点不同: 1、需要单独下载apr和apr-util apr下载地址: http://mirror.bjtu.edu.cn/apache//apr/apr-1.4.6.tar.bz2 apr-util下载地址:http://mirror.bjtu.edu.cn/apache//apr/apr-util-1.4.1.tar.bz2 2. 此外还需要安装pcre 去http://pcre.org/下载pcre,解压进入源码目录执行 ./configure --prefix=/usr/local/pcre 3. 最后安装apache时configure需要这样配置 ./configure --prefix=/usr/local/apache2 \ --enable-mods-shared=all \ --with-apr=/usr/local/apr \ --with-apr-util=/usr/local/apr-util/bin --with-pcre=/usr/local/pcre 3.3 安装Apache Tomcat Connector(mod_jk) 1.进入下载好的tomcat-connectors-1.2.32-src.tar.gz文件所在目录,执行解压操作: tar -zxvf tomcat-connectors-1.2.32-src.tar.gz 2.进入解压出的文件夹下的native子目录: cd tomcat-connectors-1.2.32-src/native 3.进行编译参数配置: ./buildconf.sh ./configure --with-apxs=/usr/local/apache2/bin/apxs \ --with-java-home=$JAVA_HOME --with-java-platform=2 \ --enable-jni 4.编译安装: make make install 如果成功结束,你可以在/usr/local/apache2/modules/下找到mod_jk.so文件。 3.4 安装tomcat 两次解压下载到的apache-tomcat-6.0.33.tar.gz文件至/usr/local/,并分别重命名为apache-tomcat-6.0.33-1和apache-tomcat-6.0.33-2 4.集群配置 4.1 配置tomcat 1.修改端口 对于tomcat配置主要集中在conf/server.xml文件上。首先,鉴于是在同一机器上运行两个tomcat实例,因此,要对server.xml中配置的所有端口进行修改,避免端口被占用,一种简单而稳妥的修改方法是将该文件中出现的所有端口号按一种简单的规则统一进行改动,比如在原端口号基础上统一加1000或减1000。基于这个原则,apache-tomcat-6.0.33-1的连接端口修改为:6080,apache-tomcat-6.0.33-2的连接端口修改为:7080,其他端口配置同样依照该原则。 2.开启tomcat集群支持 同样是在conf/server.xml文件里,进行两处改动: 改动1:为<Engine>设置jvmRoute 实际上,在server.xml里就有一段现成的带jvmRoute的<Engine>配置,我们可以参考这段配置为<Engine/>加个jvmRoute就可以了,对于jvmRoute的取值要特别注意:其值必须于后面要提到的mod_jk的workers.properties文件中结点名相一致!由于那个文件中结点名为tomcat1和tomcat2,因此,此处我们必须设定jvmRoute的值为这两个值之一。关于这一点在tomcat官方关于Apache Tomcat Connector的文档 http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html 也有明确提及。jvmRoute值会出现在由该结点创建的session id中,例如:在非集群环境下,一个sessionid可能是 “xxxxxxxxx” 的格式,而在集群环境下,如果当前结点的jvmRtomat1oute被配置为tomcat1,那由该结点生成的sessionid将变成“xxxxxxxxx.tomat1”格式,而mod_jk正是依赖于这个节点后缀实现sticky session的,也就是把所有后缀是tomat1的请求都发送给tomat1结点进行处理。 改动2:在<Engine/>中添加关于集群的配置 在tomcat官方关于tomcat集群配置的文档:http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html 中,有一份默认配置: <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8"> <Manager className="org.apache.catalina.ha.session.DeltaManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/> <Channel className="org.apache.catalina.tribes.group.GroupChannel"> <Membership className="org.apache.catalina.tribes.membership.McastService" address="228.0.0.4" port="45564" frequency="500" dropTime="3000"/> <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" address="auto" port="4000" autoBind="100" selectorTimeout="5000" maxThreads="6"/> <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/> </Sender> <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/> <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/> </Channel> <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/> <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/> <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/" watchDir="/tmp/war-listen/" watchEnabled="false"/> <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/> <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/> </Cluster> 这份默认配置可以满足大多数应用场景,因此,我们只需要将这份配置复制到<Engine/>中,tomcat的配置就全部完成了。 4.2 配置apache 打开apache安装目录下的conf/httpd.conf文件,在文件最后追加以下内容: # Load mod_jk module LoadModule jk_module modules/mod_jk.so # Specify jk log file. JkLogFile /var/log/mod_jk.log # Specify jk log level [debug/error/info] JkLogLevel info # Specify workers.properties, this file tell jk: # how many nodes and where they are. JkWorkersFile conf/workers.properties # Specify which requests should handled by which node. JkMount /* controller 关于mod_jk配置项的详细内容,可参考:http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html 上述配置中:JkWorkersFile conf/workers.properties 指明由一个workers.properties文件来描述集群结点的情况,因此,我们需要创建这个workers.properties文件,并放置于conf文件夹下,这个文件的内容如下: #所有节点列表,其中controller是一个逻辑结点,负责负载均衡控制, #如果JkMount中的URL指定给了controller就表示这个请求会被自动散列到某个物理节点上。 #注意:真正负责处理请求的tomcat的名称(这里就是tomcat1,tomcat2)必须于它们在conf/server.xml #文件中配置的jvmRout的属性值是一致的! worker.list = controller,tomcat1,tomcat2 #========tomcat1======== worker.tomcat1.port=6009 #ajp13 端口号,在tomcat下server.xml配置,默认8009 worker.tomcat1.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址 worker.tomcat1.type=ajp13 worker.tomcat1.lbfactor = 1 #server的加权比重,值越高,分得的请求越多 #========tomcat2======== worker.tomcat2.port=7009 #ajp13 端口号,在tomcat下server.xml配置,默认8009 worker.tomcat2.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址 worker.tomcat2.type=ajp13 worker.tomcat2.lbfactor = 1 #server的加权比重,值越高,分得的请求越多 #========controller,负载均衡控制器======== worker.controller.type=lb worker.controller.balance_workers=tomcat1,tomcat2 #指定分担请求的tomcat,旧版本中的balanced_workers,已不再推荐使用! worker.controller.sticky_session=1 #sticky_session为1表示, #当某一 client的session创建之后,后续由该客户端发起的请求,也就是这个session的所有请求都始终由第一次处理该请求的结点 #负责处理(除非该结点挂掉) 到此,所有配置均已完成,启动两个tomcat和apache后,将某一应用同时部署到两个tomcat中,通过apache访问这个应用,观察tomcat后台打出的日志会发现,请求被随机分配给了两个tomcat交替执行。 备注:应用程序要为集群所做的准备 1. 在应用程序的web.xml中需要加入:<distributable/>元素 2. session中存放的数据(如attribute)必须实现序列化。 参考资源: tomcat官方关于tomcat集群配置的文档: http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html tomcat官方关于Apache Tomcat Connector的文档 http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html apache官方关于apache的安装文档 http://httpd.apache.org/docs/2.2/en/install.html apache官方关于configure参数的文档 http://httpd.apache.org/docs/2.2/en/programs/configure.html#installationdirectories

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

centOS安装hadoop、编写wordCount小程序

#为了方便后续管理,添加hadoop用户,并设置密码 adduser hadoop passwd hadoop #hadoop用户赋权(加sudo可以执行root的操作) #给sudoers文件读写权 chmod u+w /etc/sudoers #赋权 vim /etc/sudoers #在root ALL = (ALL) ALL 下添加 hadoop ALL=(ALL) ALL 并保存 #为了安全撤销写权限 chmod u-w /etc/sudoers 用户赋权 hadoop依赖1.7+的jdk 如果是3.0+版本的hadoop依赖1.8+的idk,安装jdk #安装jdk 这边我通过ftp把jdk1.8 tar包传到服务器 #进入相应目录解压 cd /usr/local/tools tar -zxvf jdk-8u171-linux-x64.tar.gz #配置环境变量 sudo vim /etc/profile #文件中添加 JAVA_HOME=/usr/local/tools/jdk1.8.0_171 PATH=$JAVA_HOME/bin:$PATH CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar export PATH JAVA_HOME CLASSPATH #保存 source /etc/profile #查看是否安装成功 java -version 配置jdk 配置SSH #进入要安装的目录并获取 cd usr/local/tolls wget https://archive.apache.org/dist/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz #解压 tar xzvf hadoop-2.7.3.tar.gz #ssh的配置和认证 #测试是否已经可以免密登录 首次的话需点击yes ssh localhost #不可以的话执行以下步骤 #查看是否已安装ssh 出现sshd字样说明已安装 ps -e | grep ssh #如果没有安装 yum install openssh-server #进入 用户的根目录 生成秘钥 ssh-keygen -t rsa #按三次回车 #传到authorized_keys中 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys #测试 如果还是不可以更改下权限$ chmod 600 ~/.ssh/authorized_keys ssh localhost #ssh localhost免密且出现Welcome字样说明ssh配置成功 免密登陆 配置haddop环境变量 #类似配置jdk, sudo /etc/profile 添加 并 source /etc/profile 使其立即生效 export HADOOP_HOME=/usr/local/tools/hadoop-2.7.3 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin #检测是否安装配置成功 hadoop version 配置hadoop环境变量 配置hadoopjdk环境 修改hadoop-env.sh #查看文件 sudo vim /usr/local/tools/hadoop-2.7.3/etc/hadoop/hadoop-env.sh #在最后一行添加 export JAVA_HOME=/usr/local/tools/jdk1.8.0_171 接下来需要配置四个配置文件(1,2为hdfs相关 3,4为yarn相关,注意备份防止配错) 1.core-site.xml 2.hdfs-site.xml 3.mapred-site.xml 4.yarn-site.xml 修改的配置文件 #进入hadoop-2.7.3/etc/hadoop目录 #配置core-site.xml <configuration> <!-- 指定HDFS老大(namenode)的通信地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> <!-- 指定hadoop运行时产生文件的存储路径 --> <property> <name>hadoop.tmp.dir</name> <value>/usr/hadoop/tmp</value> </property> </configuration> #配置hdfs-site.xml <configuration> <property> <name>dfs.name.dir</name> <value>/usr/hadoop/hdfs/name</value> <description>namenode上存储hdfs名字空间元数据 </description> </property> <property> <name>dfs.data.dir</name> <value>/usr/hadoop/hdfs/data</value> <description>datanode上数据块的物理存储位置</description> </property> <!-- 设置hdfs副本数量 --> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> #配置mapred-site.xml <configuration> <!-- 通知框架MR使用YARN --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> #配置yarn-site.xm <configuration> <!-- reducer取数据的方式是mapreduce_shuffle --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> 详细配置 启动hdfs cd /usr/local/tools/hadoop-2.7.3 #第一次启动hdfs格式化 也可以进入bin目录直接执行hdfs namenode -format #这边初始化的时候报了java.io.IOException: Cannot create directory /usr/hadoop/hdfs/name/current 的错,原因是hdfs设置存储元数据的地址没有写权限(可能因为不是root用户) #解决方案 赋予写权 sudo chmod -R a+w /usr/hadoop/ ./bin/hdfs namenode -format #启动命令 #初次启动的时候报 /usr/local/tools/hadoop-2.7.3/logs/hadoop-hadoop-secondarynamenode-aliyun-spark.out: No such file or directory的错 这个时候mkdir logs 然后 sudo chmod -R a+w /usr/local/tools/hadoop-2.7.3/logs/ 即可 ./sbin/start-dfs.sh #停止 ./sbin/stop-dfs.sh #在网页打开 localhost:50070测试hdfs是否启动 #查看启动的相关进程 jps 出现这个界面说明hdfs启动成功 hdfs界面 启动yarn cd /usr/local/tools/hadoop-2.7.3 #启动yarn ./sbin/start-yarn.sh 【 #启动如果报了hadoop@localhost's password: localhost: Permission denied, please try again.的错 解决方案 #先关闭yarn并修改当前用户密码 sudo passwd hadoop #修改密码后 重新格式化namenode ./bin/hdfs namenode -format #重启ssh之后再启动 sudo service ssh restart 】 #在网页打开 localhost:8088查看yarn是否启动 #关闭yarn ./sbin/stop-yarn.sh 出现这个界面说明yarn启动成功 yarn界面 如果想一次性启动所有 cd /usr/local/tools/hadoop-2.7.3 ./sbin/start-all.sh 本地测试worldcount hadoop安装成功后,先直接使用linux文件系统做测试,不使用hadoop fs相关命令 #在hadoop-2.7.3文件夹中进入 cd share/hadoop/mapreduce/ #查看列表 ls #查看hadoop-mapreduce-examples-2.7.3.jar 中的类 可以看到里面包含worldCount.class jar tvf hadoop-mapreduce-examples-2.7.3.jar #创建准备测试的数据 #在根目录下创建input目录 sudo mkdir -p dataLocal/input/ #赋予写权 sudo chmod -R a+w dataLocal/input/ #进入目录并填充数据 二次填充file2 cd dataLocal/input/ sudo echo "hello world, I am jungle. bye world" > file1.txt sudo echo "hello hadoop. hello jungle. bye hadoop." > file2.txt sudo echo "the great software is hadoop." >> file2.txt #计数file2 #执行前需把input文件传到hdfs #查看hdfs当前文件 hdfs dfs -ls / #创建input文件夹 hadoop fs -mkdir -p /input #本地文件推送到hdfs的input目录下 hdfs dfs -put dataLocal/input/file2.txt /input #如果要计数所有txt文件可 #hdfs dfs -put dataLocal/input/*.txt /input #如果缺省路径默认表示 user/{user_name}下 这边我output缺省默认放在了 /user/hadoop/下 hadoop jar /usr/local/tools/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /input output #如果报了There are 0 datanode(s) running and no node(s) are excluded in this operation.的异常,先jps查看datanode进程是否正在运行 且namenode的9000端口(core-site.xml文件中的fs.default.name节点配置,所有的DataNode都要通过这个端口连接NameNode)是否开启,防火墙是否允许 也有可能是两次格式化hadoop 导致没有datenode 解决方案 找到hdfs-site.xml设置的dfs.name.dir的路径/usr/hadoop/hdfs/name 删除下面的current文件夹 之后重新格式化hadoop namenode -format 重启下hdfs和yarn #jps继续查看datenode是否启动 如果仍未启动 可能是因为datanode的clusterID 和 namenode的clusterID(第一次格式化dfs后,启动并使用了hadoop,后来又重新执行了格式化命令(hdfs namenode -format),这时namenode的clusterID会重新生成,而datanode的clusterID 保持不变) 总之就是得让datanode启动 #查看输出的output hadoop dfs -ls ./output #查看内部输出worldcount MapReduce后的结果 hadoop dfs -cat ./output/* hadoop dfs -cat ./output20180509230557/* #删除hdfs文件 假设删除/inputfile1 hadoop dfs -rmr /inputfile1 #如果想计算dataLocal/input/目录下所有文件的wordcount hdfs dfs -put dataLocal/input/*.txt /input hadoop fs、hadoop dfs、hdfs dfs区别 hadoop fs:使用面最广,可以操作任何文件系统。 hadoop dfs与hdfs dfs:只能操作HDFS文件系统相关(包括与Local FS间的操作),前者已经Deprecated,一般使用后者。 本地测试worldcount hadoop安装成功后,先直接使用linux文件系统做测试,不使用hadoop fs相关命令 #在hadoop-2.7.3文件夹中进入 cd share/hadoop/mapreduce/ #查看列表 ls #查看hadoop-mapreduce-examples-2.7.3.jar 中的类 可以看到里面包含worldCount.class jar tvf hadoop-mapreduce-examples-2.7.3.jar #创建准备测试的数据 #在根目录下创建input目录 sudo mkdir -p dataLocal/input/ #赋予写权 sudo chmod -R a+w dataLocal/input/ #进入目录并填充数据 二次填充file2 cd dataLocal/input/ sudo echo "hello world, I am jungle. bye world" > file1.txt sudo echo "hello hadoop. hello jungle. bye hadoop." > file2.txt sudo echo "the great software is hadoop." >> file2.txt #计数file2 #执行前需把input文件传到hdfs #查看hdfs当前文件 hdfs dfs -ls / #创建input文件夹 hadoop fs -mkdir -p /input #本地文件推送到hdfs的input目录下 hdfs dfs -put dataLocal/input/file2.txt /input #如果要计数所有txt文件可 #hdfs dfs -put dataLocal/input/*.txt /input #如果缺省路径默认表示 user/{user_name}下 这边我output缺省默认放在了 /user/hadoop/下 hadoop jar /usr/local/tools/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /input output #如果报了There are 0 datanode(s) running and no node(s) are excluded in this operation.的异常,先jps查看datanode进程是否正在运行 且namenode的9000端口(core-site.xml文件中的fs.default.name节点配置,所有的DataNode都要通过这个端口连接NameNode)是否开启,防火墙是否允许 也有可能是两次格式化hadoop 导致没有datenode 解决方案 找到hdfs-site.xml设置的dfs.name.dir的路径/usr/hadoop/hdfs/name 删除下面的current文件夹 之后重新格式化hadoop namenode -format 重启下hdfs和yarn #jps继续查看datenode是否启动 如果仍未启动 可能是因为datanode的clusterID 和 namenode的clusterID(第一次格式化dfs后,启动并使用了hadoop,后来又重新执行了格式化命令(hdfs namenode -format),这时namenode的clusterID会重新生成,而datanode的clusterID 保持不变) 总之就是得让datanode启动 #查看输出的output hadoop dfs -ls ./output #查看内部输出worldcount MapReduce后的结果 hadoop dfs -cat ./output/* hadoop dfs -cat ./output20180509230557/* #删除hdfs文件 假设删除/inputfile1 hadoop dfs -rmr /inputfile1 #如果想计算dataLocal/input/目录下所有文件的wordcount hdfs dfs -put dataLocal/input/*.txt /input hadoop fs、hadoop dfs、hdfs dfs区别 hadoop fs:使用面最广,可以操作任何文件系统。 hadoop dfs与hdfs dfs:只能操作HDFS文件系统相关(包括与Local FS间的操作),前者已经Deprecated,一般使用后者。 下面用idea编写wordcount程序 1.mac本地运行wordcount(localohost),前提是本机装有hadoop(mac安装步骤与在linux上大致相同) import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.StringTokenizer; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.Mapper; import org.apache.hadoop.mapreduce.Reducer; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; /** * Created by LJW on 2018/5/9. * 本地运行wordCount */ public class WordCount { /** * 用户自定义map函数,对以<key, value>为输入的结果文件进行处理 * Map过程需要继承org.apache.hadoop.mapreduce包中Mapper类,并重写其map方法。 * 通过在map方法中添加两句把key值和value值输出到控制台的代码 * ,可以发现map方法中value值存储的是文本文件中的一行(以回车符为行结束标记),而key值为该行的首字母相对于文本文件的首地址的偏移量。 * 然后StringTokenizer类将每一行拆分成为一个个的单词 * ,并将<word,1>作为map方法的结果输出,其余的工作都交有MapReduce框架处理。 每行数据调用一次 Tokenizer:单词分词器 */ public static class TokenizerMapper extends Mapper<Object, Text, Text, IntWritable>{ private final static IntWritable one = new IntWritable(1); private Text word = new Text(); //由于该例子未用到key的参数,所以该处key的类型就简单指定为Object @Override public void map(Object key, Text value, Context context ) throws IOException, InterruptedException { StringTokenizer itr = new StringTokenizer(value.toString()); while (itr.hasMoreTokens()) { word.set(itr.nextToken()); context.write(word, one); } } } /** * 用户自定义reduce函数,如果有多个热度测,则每个reduce处理自己对应的map结果数据 * Reduce过程需要继承org.apache.hadoop.mapreduce包中Reducer类,并重写其reduce方法。 * Map过程输出<key,values>中key为单个单词,而values是对应单词的计数值所组成的列表,Map的输出就是Reduce的输入, * 所以reduce方法只要遍历values并求和,即可得到某个单词的总次数。 */ public static class IntSumReducer extends Reducer<Text,IntWritable,Text,IntWritable> { private IntWritable result = new IntWritable(); @Override public void reduce(Text key, Iterable<IntWritable> values, Context context ) throws IOException, InterruptedException { int sum = 0; for (IntWritable val : values) { sum += val.get(); } result.set(sum); context.write(key, result); } } public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); try { Job job = Job.getInstance(conf, "word count"); //如果不是本地 使用setJarByClass指定所在class文件 job.setJarByClass(WordCount.class); job.setMapperClass(TokenizerMapper.class); job.setCombinerClass(IntSumReducer.class); job.setReducerClass(IntSumReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); //原文件目录 待计算 String path1 = "hdfs://localhost:9000/input"; //正常情况输出路径每次都要删除再通过计算填充 为方便测试每次输出到一个新的路径 String path2 = "hdfs://localhost:9000/output" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); FileInputFormat.addInputPath(job,new Path(path1)); // if(fs.exists(path2)) { // fs.delete(path2, true); // System.out.println("存在此输出路径,已删除!!!"); // } //输出文件目录 计算之后的输出目录 String time = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); FileOutputFormat.setOutputPath(job, new Path(path2)); job.waitForCompletion(true) ; System.exit(job.waitForCompletion(true) ? 0 : 1); } catch (Exception e) { e.printStackTrace(); } } } 后续遇到的坑 博主在阿里云hadoop启动了很长一段时间后,发现突然就关闭不了服务了 网上查询可能有以下原因 ①hadoop在stop的时候依据的是datanode上的mapred和dfs进程号。而默认的进程号保存在/tmp下,linux默认会每隔一段时间(一般是一个月或者7天左右)去删除这个目录下的文件。因此删掉hadoop-hadoop-jobtracker.pid和hadoop-hadoop-namenode.pid两个文件后,namenode自然就找不到datanode上的这两个进程(最常见) ②环境变量 $HADOOP_PID_DIR 在你启动hadoop后改变了 ③用另外的用户身份执行stop-all 目测我的是因为第一个原因,解决方案 ①ps -ef | grep java | grep hadoop 查找hadoop的所有相关进程,再次jps查看只剩jps。 ②修改$HADOOP_HOME/conf/hadoop-env.sh里边,去掉export HADOOP_PID_DIR=/var/hadoop/pids的#号,创建/var/hadoop/pids或者你自己指定目录

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

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

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

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

用户登录
用户注册