Hadoop集群中不同主机扮演不同的角色,主要分下面几种: Master ? ? NameNode ? ? NameNode用于管理文件系统HDFS ,维护文件系统树结构和文件元数据。当有新文件要写入系统时客户端会先向NameNode查询当前文件系统的状态,然后得知自己可以往哪里写入,最后实际写入文件系统,这中间NameNode就是管理主要信息的核心设备。
? ? ResourceManager ? ? ResourceManager用于管理和分配工作,它是所有工作的总调度程序。
Slave ? ? DataNode ? ? DataNode提供文件存储,它将自己的存储空间分块,然后向NameNode报告自己的存储状态并负责真正保存文件 ? ?? ? ? NodeManager ? ? NodeManager用于接受ResourceManager分配的工作并实际工作,是所有工作的实际执行者。
Hadoop有三种安装模式:单机模式,伪分布式,真正分布式。 三种模式的区别 & 单机模式的安装,可以参考:https://blog.csdn.net/sunny05296/article/details/54292593 本文主要介绍第三种完全分布式模式安装。
hdfs的进程节点 namenode:记录源数据的命名空间,数据分配到那些datanode存储,协调客户端对文件访问。 datanode:负责所在物理节点的储存管理,一次写入、多次读取(不能修改),文件由数据块组成,典型的块大小是64M。数据块尽量散步到各个节点。 secondarynamenode:当namenode重启的时候,会合并硬盘上的fsimage(老的)文件和edits(最新)文件,得到完整的Metadata信息。这个fsimage文件可以看做是一个过时的Metadata信息文件(最新的Metadata修改信息在edits文件中)。如果edits文件非常大,那么这个合并过程就非常慢,导致HDFS长时间无法启动,如果定时将edits文件合并到fsimage,那么重启namenode就比较快。secondarynamenode就是干这活的。
官网原始安装文档参考: http://hadoop.apache.org/docs/r2.7.3/ http://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-common/ClusterSetup.html
软件下载: hadoop-2.7.3:http://archive.apache.org/dist/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz hbase-1.1.2:https://archive.apache.org/dist/hbase/1.1.2/hbase-1.1.2-bin.tar.gz hive-1.2.1:https://archive.apache.org/dist/hive/hive-1.2.1/apache-hive-1.2.1-bin.tar.gz
> 节点规划 & hostname设置 设置hostname(3个节点上操作) hostnamectl set-hostname hd106 ? #节点1(master)执行 hostnamectl set-hostname hd107 ? #节点2(slave1)执行 hostnamectl set-hostname hd108 ? #节点3(slave2)执行
3个节点上进行同样的设置,执行下面命令: echo ' 192.168.111.106 hd106 192.168.111.107 hd107 192.168.111.108 hd108 ' >> /etc/hosts
测试互通性: ping -c 1 hd106 && ping -c 1 hd107 && ping -c 1 hd108
> 防火墙配置(3个节点都配置) systemctl ?stop firewalld systemctl ?disable firewalld
> ntp时钟同步配置(3个节点都配置) ntp配置详情可以参考:https://blog.csdn.net/sunny05296/article/details/65980897/
检查ntp包是否已经安装 rpm -q ntp
如果没有安装,则需要先安装并设置开机自动启动ntpd服务 yum -y install ntp systemctl enable ntpd systemctl start ntpd
配置前先使用命令同步时间,本机与外部时间服务器时间差距太大,让ntpd不能正常同步 ntpdate -u cn.pool.ntp.org
修改配置文件、配置 ntpserver 同步源 vi /etc/ntp.conf
...... # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). #server 0.centos.pool.ntp.org iburst #server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org iburst #server 3.centos.pool.ntp.org iburst ? #配置上游时间服务器为本地的ntpd Server服务器 server 192.168.111.254 ? # 配置允许上游时间服务器主动修改本机的时间 restrict 192.168.111.254 nomodify notrap noquery ? #下面这个配置,建议NTP Client关闭,建议NTP Server打开。因为Client如果打开,可能导致NTP自动选择合适的最近的NTP Server、也就有可能选择了LOCAL作为Server进行同步,而不与远程Server进行同步。 #server 127.127.1.0 ?# local clock #fudge 127.127.1.0 ?stratum 10
重启ntpd服务 systemctl ?restart ntpd
查看网络中的NTP服务器 ntpq ?-p
查看同步状态 ntpstat?
> JDK
Hadoop对Java的版本的支持情况参考官方说明: https://cwiki.apache.org/confluence/display/HADOOP/Hadoop+Java+Versions
Supported Java Versions Apache Hadoop 3.3 and upper supports Java 8 and Java 11 (runtime only) Please compile Hadoop with Java 8. Compiling Hadoop with Java 11 is not supported: ?HADOOP-16795 - Java 11 compile support OPEN Apache Hadoop from 3.0.x to 3.2.x now supports only Java 8 Apache Hadoop from 2.7.x to 2.10.x support both Java 7 and 8
Java8有些bug在Java9上才得到修复,考虑到成熟和稳定性,我选择openjdk 1.7
3个节点上都执行同样的安装
查询系统是否已安装java yum list installed | grep java 卸载openjdk yum -y remove java-1.7.0-openjdk* 卸载tzdata-java yum -y remove tzdata-java.noarch
查询yum源中的java-1.7版本 yum list |grep java-1.7 或 ?yum list java* yum list java-1.7*
[root@hd106 ~]# yum list java-1.7* ...... Available Packages java-1.7.0-openjdk.x86_64 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1:1.7.0.261-2.6.22.2.el7_8 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? base java-1.7.0-openjdk-accessibility.x86_64 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1:1.7.0.261-2.6.22.2.el7_8 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? base java-1.7.0-openjdk-demo.x86_64 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1:1.7.0.261-2.6.22.2.el7_8 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? base java-1.7.0-openjdk-devel.x86_64 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1:1.7.0.261-2.6.22.2.el7_8 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? base java-1.7.0-openjdk-headless.x86_64 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1:1.7.0.261-2.6.22.2.el7_8 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? base java-1.7.0-openjdk-javadoc.noarch ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1:1.7.0.261-2.6.22.2.el7_8 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? base java-1.7.0-openjdk-src.x86_64 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1:1.7.0.261-2.6.22.2.el7_8 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? base [root@hd106 ~]#
安装指定版本的openjdk yum -y install java-1.7.0-openjdk*
查看版本 java -version
java version "1.7.0_261" OpenJDK Runtime Environment (rhel-2.6.22.2.el7_8-x86_64 u261-b02) OpenJDK 64-Bit Server VM (build 24.261-b02, mixed mode)
配置Java环境变量: echo ' # for java? export JAVA_HOME=/lib/jvm/java export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$PATH ' >> /etc/profile
生效Java环境变量配置 source /etc/profile echo $JAVA_HOME
> 添加 hadoop 用户(3个节点上添加) 当然也可以直接使用root用户,如果直接用root用户,这里就不需要添加用户了 useradd hadoop passwd hadoop
> ssh免密匙登录秘钥生成(3个节点上操作) 切换到hadoop用户目录,配置ssh,生成秘钥(如果直使用root用户、不使用hadoop用户,则无需切换,直接切换到root根目录) su - hadoop cd ~ ssh-keygen -t rsa ? #配置ssh,生成密匙,使到ssh可以免密码连接(RSA算法,基于因数不对称加密:公钥加密私钥才能解密,私钥加密公钥才能解密)。提示输入时,三次直接回车,不输入
> 设置节点间的互信关系(3个节点上操作) hadoop用户操作 cd ~ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@hd106 ? ? #将本机的公钥复制到远程机器的authorized_keys文件中(~/.ssh/authorized_key),会提示输入用户密码 ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@hd107 ? ? #将本机的公钥复制到远程机器的authorized_keys文件中(~/.ssh/authorized_key),会提示输入用户密码 ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@hd108 ? ? #将本机的公钥复制到远程机器的authorized_keys文件中(~/.ssh/authorized_key),会提示输入用户密码
3)测试节点互信(3个节点上进行测试) 首次可能会提示输入yes,直接输入yes即可完成登录,不需要密码,后续就不会提示了 exit su - hadoop ssh hd106 date && ssh hd107 date && ssh hd108 date
[hadoop@hd106 ~]$ ssh hd106 date && ssh hd107 date && ssh hd108 date Sat Aug 28 17:29:15 CST 2021 Sat Aug 28 17:29:15 CST 2021 Sat Aug 28 17:29:16 CST 2021 测试免密登录,如果不提示输入密码,则配置成功
> hadoop安装 hd106(master)节点上操作
切换用户 su - hadoop
拷贝软件包 cd /home/hadoop cp -r /tmp/soft-hadoop-2.7.3/ ?./
创建文件目录 为了便于管理,给master的hdfs的NameNode、slaver的hdfs的DataNode及临时文件创建对应的独立目录(在用户目录下创建目录) mkdir -p /home/hadoop/hdfs/name mkdir -p /home/hadoop/hdfs/data mkdir -p /home/hadoop/hdfs/tmp
把目录通过scp拷贝到远程两个slaver节点:hd107和hd108 scp -r /home/hadoop/hdfs hadoop@hd107:/home/hadoop/ scp -r /home/hadoop/hdfs hadoop@hd108:/home/hadoop/
检查拷贝是否成功 ssh hadoop@hd107 ls -l /home/hadoop/hdfs ssh hadoop@hd108 ls -l /home/hadoop/hdfs
解压hadoop压缩包到指定目录下(解压后释放目录hadoop-2.7.3) cd soft-hadoop-2.7.3 tar -zxvf hadoop-2.7.3.tar.gz -C /home/hadoop/ cd /home/hadoop/
配置用户的hadoop环境变量(修改用户的.bash_profile文件)
echo ' export HADOOP_DEV_HOME=/home/hadoop/hadoop-2.7.3 export PATH=$PATH:$HADOOP_DEV_HOME/bin export PATH=$PATH:$HADOOP_DEV_HOME/sbin export HADOOP_MAPARED_HOME=${HADOOP_DEV_HOME} export HADOOP_COMMON_HOME=${HADOOP_DEV_HOME} export HADOOP_HDFS_HOME=${HADOOP_DEV_HOME} export YARN_HOME=${HADOOP_DEV_HOME} export HADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop export HDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop export YARN_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop export JAVA_LIBRARY_PATH='/home/hadoop/hadoop-2.7.3/lib/native' export HBASE_HOME=/home/hadoop/hbase-1.1.2 export PATH=$PATH:$HBASE_HOME/bin ' >> ~/.bash_profile
HBASE_HOME可以等HBase安装后再根据实际再修改 立刻让hadoop环境变量生效,执行如下命令: source .bash_profile
检查hadoop环境变量配置是否生效 echo $HADOOP_DEV_HOME
配置文件复制到远程其他节点: scp ~/.bash_profile hadoop@hd107:/home/hadoop/ scp ~/.bash_profile hadoop@hd108:/home/hadoop/
其他节点上也执行环境变量立即生效: cd ~ source .bash_profile echo $HADOOP_DEV_HOME
Hadoop的配置 回到hd106(master)节点,继续配置 进入hadoop-2.7.3的配置目录 cd /home/hadoop/hadoop-2.7.3/etc/hadoop
依次修改 core-site.xml、hdfs-site.xml、mapred-site.xml 及 yarn-site.xml 文件
vi core-site.xml
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- ? Licensed under the Apache License, Version 2.0 (the "License"); ? you may not use this file except in compliance with the License. ? You may obtain a copy of the License at
? ? http://www.apache.org/licenses/LICENSE-2.0 ? ? Unless required by applicable law or agreed to in writing, software ? distributed under the License is distributed on an "AS IS" BASIS, ? WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ? See the License for the specific language governing permissions and ? limitations under the License. See accompanying LICENSE file. -->
<!-- Put site-specific property overrides in this file. -->
<configuration> ? <property>? ? ? <name>hadoop.tmp.dir</name>? ? ? <value>file:/home/hadoop/hdfs/tmp</value>? ? ? <description>A base for other temporary directories.</description>? ? </property>?
? <property>? ? ? <name>io.file.buffer.size</name>? ? ? <value>65536</value>? ? </property>?
? <property>? ? ? <name>fs.default.name</name>? ? ? <value>hdfs://hd106:9000</value>? ? </property>?
? <property>? ? ? <name>hadoop.proxyuser.root.hosts</name>? ? ? <value>*</value>? ? </property>?
? <property>? ? ? <name>hadoop.proxyuser.root.groups</name>? ? ? <value>*</value>? ? </property>? </configuration>
vi hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- ? Licensed under the Apache License, Version 2.0 (the "License"); ? you may not use this file except in compliance with the License. ? You may obtain a copy of the License at
? ? http://www.apache.org/licenses/LICENSE-2.0
? Unless required by applicable law or agreed to in writing, software ? distributed under the License is distributed on an "AS IS" BASIS, ? WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ? See the License for the specific language governing permissions and ? limitations under the License. See accompanying LICENSE file. -->
<!-- Put site-specific property overrides in this file. -->
<configuration> ? <property>? ? ? <name>dfs.replication</name>? ? ? <value>2</value>? ? </property>? ?? ? <property>? ? ? <name>dfs.namenode.name.dir</name>? ? ? <value>file:/home/hadoop/hdfs/name</value>? ? ? <final>true</final>? ? </property>?
? <property>? ? ? <name>dfs.datanode.data.dir</name>? ? ? <value>file:/home/hadoop/hdfs/data</value>? ? ? <final>true</final>? ? </property>?
? <property>? ? ? <name>dfs.namenode.secondary.http-address</name>? ? ? <value>hd106:9001</value>? ? </property>? ?? ? <property>? ? ? <name>dfs.webhdfs.enabled</name>? ? ? <value>true</value>? ? </property>? ?? ? <property>? ? ? <name>dfs.permissions</name>? ? ? <value>false</value>? ? </property>? </configuration>
vi mapred-site.xml
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- ? Licensed under the Apache License, Version 2.0 (the "License"); ? you may not use this file except in compliance with the License. ? You may obtain a copy of the License at
? ? http://www.apache.org/licenses/LICENSE-2.0
? Unless required by applicable law or agreed to in writing, software ? distributed under the License is distributed on an "AS IS" BASIS, ? WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ? See the License for the specific language governing permissions and ? limitations under the License. See accompanying LICENSE file. -->
<!-- Put site-specific property overrides in this file. -->
<configuration> ? <property>? ? ? <name>mapreduce.framework.name</name>? ? ? <value>yarn</value>? ? </property>? </configuration>
vi yarn-site.xml
<?xml version="1.0"?> <!-- ? Licensed under the Apache License, Version 2.0 (the "License"); ? you may not use this file except in compliance with the License. ? You may obtain a copy of the License at
? ? http://www.apache.org/licenses/LICENSE-2.0
? Unless required by applicable law or agreed to in writing, software ? distributed under the License is distributed on an "AS IS" BASIS, ? WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ? See the License for the specific language governing permissions and ? limitations under the License. See accompanying LICENSE file. -->
<configuration> <!-- Site specific YARN configuration properties --> ? <property>? ? ? <name>yarn.resourcemanager.address</name>? ? ? <value>hd106:18040</value>? ? </property>?
? <property>? ? ? <name>yarn.resourcemanager.scheduler.address</name>? ? ? <value>hd106:18030</value>? ? </property>?
? <property>? ? ? <name>yarn.resourcemanager.webapp.address</name>? ? ? <value>hd106:18088</value>? ? </property>?
? <property>? ? ? <name>yarn.resourcemanager.resource-tracker.address</name>? ? ? <value>hd106:18025</value>? ? </property>? ?? ? <property>? ? ? <name>yarn.resourcemanager.admin.address</name>? ? ? <value>hd106:18141</value>? ? </property>? ?? ? <property>? ? ? <name>yarn.nodemanager.aux-services</name>? ? ? <value>mapreduce_shuffle</value>? ? </property>? ?? ? <property>? ? ? <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>? ? ? <value>org.apache.hadoop.mapred.ShuffleHandler</value>? ? </property>? </configuration>
修改 hadoop-env.sh 加入 JAVA_HOME 环境变量配置:
echo ' export JAVA_HOME=/lib/jvm/java ' >> ?hadoop-env.sh
在hd106s master节点上创建masters文件、指定SNN echo 'hd106' > /home/hadoop/hadoop-2.7.3/etc/hadoop/masters
在hd107、hd108 slave节点上创建slaves文件、指定DN echo 'hd107 hd108 ' > /home/hadoop/hadoop-2.7.3/etc/hadoop/slaves
hadoop配置参数优化(如果要调整优化相关参数,则参考下面参数说明,不调整的话直接跳过)
1、hdfs-site.xml 参数 ? dfs.name.dir:NameNode 元数据存放位置。默认值:使用core-site.xml中的hadoop.tmp.dir/dfs/name。 ? dfs.block.size:对于新文件切分的大小,单位byte。默认是64M,建议是128M或更大。每一个节点都要指定,包括客户端。默认值:67108864。如果调整为128M,可以写成134217728,也可以写成128m。支持k,m,g,p,t。 ? dfs.data.dir:DataNode在本地磁盘存放block的位置,可以是以逗号分隔的目录列表,DataNode循环向磁盘中写入数据,每个DataNode可单独指定与其它DataNode不一样。默认值:${hadoop.tmp.dir}/dfs/data。 ? dfs.namenode.handler.count:NameNode用来处理来自DataNode的RPC请求的线程数量。建议设置为DataNode数量的10%,一般在10~200个之间。如设置太小,DataNode在传输数据的时候日志中会报告“connecton refused"信息。在NameNode上设定。默认值:10。 ? dfs.datanode.handler.count:DataNode用来连接NameNode的RPC请求的线程数量。取决于系统的繁忙程度。设置太小会导致性能下降甚至报错。在DataNode上设定。默认值:3。 ? dfs.datanode.max.xcievers:DataNode可以同时处理的数据传输连接数。默认值:256。建议值:4096。 ? dfs.permissions:如果是true则检查权限,否则不检查(每一个人都可以存取文件) 。在NameNode上设定。默认值:true。 ? dfs.datanode.du.reserved:在每个卷上面HDFS不能使用的空间大小。在每个DataNode上面设定。默认值:0。建议为10737418240,即10G。需要结合MapReduce场景设置。? ? dfs.datanode.failed.volumes.tolerated:DataNode可以容忍损块的磁盘数量,超过这个数量DataNode将会离线,所有在这个节点上面的block将会被重新复制。默认是0,但是在有多块磁盘的时候一般会增大这个值。 ? dfs.replication:在文件被写入的时候,每一块将要被复制多少份。默认是3份。建议3。在客户端上设定。通常也需要在DataNode上设定。?
2、HDFS core-site.xml 参数 ? fs.default.name:文件系统的名字。通常是NameNode的hostname与port。需要在每一个需要访问集群的机器上指定,包括集群中的节点。例如:hdfs://<your_namenode>:9000/。 ? fs.checkpoint.dir:以逗号分隔的文件夹列表,SecondNameNode用来存储checkpoint image文件。如果多于一个文件夹,那么都会被写入数据。在SecondNameNode上设定。默认值:${hadoop.tmp.dir}/dfs/namesecondary。 ? hadoop.tmp.dir:HDFS与本地磁盘的临时文件。默认是/tmp/hadoop-${user.name}。需要在所有的节点中设定。 ? fs.trash.interval:当一个文件被删掉后,它会被放到用户目录的.Trash目录下,而不是立即删掉。经过此参数设置的分钟数之后,再删掉数据。默认是0,禁用此功能,建议1440(一天)。 ? io.file.buffer.size:设定在读写数据时的缓存大小,应该为硬件分页大小的2倍。默认是4096,建议为65536(64K)。
3、yarn-site.xml 参数 ? yarn.nodemanager.resource.memory-mb:该节点nodemanager资源池内存。NodeManager节点上可使用的物理内存总量,默认是8192(MB),根据节点所能分配的最大的内存进行分配即可,注意为操作系统与其他服务预留资源。 ? yarn.nodemanager.resource.cpu-vcores:该节点有多少cpu加入资源池 , 默认值为8。表示该节点上YARN可使用的虚拟CPU个数,默认是8,注意,目前推荐将该值设值为与物理CPU核数数目相同。如果你的节点CPU核数不够8个,则需要调减小这个值,而YARN不会智能的探测节点的物理CPU总数。 ??
4、设置log文件的大小和数量(修改core-site.xml配置参数) ? hadoop.logfile.size ? hadoop.logfile.count
5、设置组件的日志级别 查看不同组件的日志级别 ? hadoop daemonlog -getlevel host:port packageName
设置组件的日志级别(4个级别:DEBUG, INFO, ERROR, FATAL) ? hadoop daemonlog –setlevle ?host:port packageName level
port:为前台页面的端口,缺省为50070。 packageName:组件名称: ? ?org.apache.hadoop ? ?org.apache.hadoop.hdfs? ? ?org.apache.hadoop.hdfs.server.namenode.NameNode? ? ?org.apache.hadoop.hdfs.server.datanode.DataNode ? ?org.apache.hadoop.mapred.JobTracker ?
最后,将整个hadoop-2.7.3文件夹及其子文件夹使用scp复制到两台Slave的相同目录中: cd ~ scp -r hadoop-2.7.3 hadoop@hd107:/home/hadoop/ scp -r hadoop-2.7.3 hadoop@hd108:/home/hadoop/?
启动服务
先格式化NameNode(master节点执行) hadoop namenode -format
启动所有服务(master节点执行) start-all.sh
执行结果如下: [hadoop@hd106 hadoop]$ start-all.sh? This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh Starting namenodes on [hd106] hd106: starting namenode, logging to /home/hadoop/hadoop-2.7.3/logs/hadoop-hadoop-namenode-hd106.out hd108: starting datanode, logging to /home/hadoop/hadoop-2.7.3/logs/hadoop-hadoop-datanode-hd108.out hd107: starting datanode, logging to /home/hadoop/hadoop-2.7.3/logs/hadoop-hadoop-datanode-hd107.out Starting secondary namenodes [hd106] hd106: starting secondarynamenode, logging to /home/hadoop/hadoop-2.7.3/logs/hadoop-hadoop-secondarynamenode-hd106.out starting yarn daemons starting resourcemanager, logging to /home/hadoop/hadoop-2.7.3/logs/yarn-hadoop-resourcemanager-hd106.out hd108: starting nodemanager, logging to /home/hadoop/hadoop-2.7.3/logs/yarn-hadoop-nodemanager-hd108.out hd107: starting nodemanager, logging to /home/hadoop/hadoop-2.7.3/logs/yarn-hadoop-nodemanager-hd107.out [hadoop@hd106 hadoop]$?
停止所有服务命令: stop-all.sh
start-all.sh 会完成启动所有 master 节点的 NameNode(hadoop-daemon.sh start namenode)和 所有 slate节点的 DataNode(hadoop-daemons.sh start datanode)以及yarn等服务的启动
查看服务进程 ps -ef | grep hadoop jsp
master节点执行结果: [hadoop@hd106 hadoop]$ jps 29233 Jps 28614 NameNode 28963 ResourceManager 28806 SecondaryNameNode
slave节点执行结果: [hadoop@hd107 hadoop]$ jps 28036 Jps 27924 NodeManager 27817 DataNode
[hadoop@hd108 ~]$ jps 27172 Jps 27062 NodeManager 26955 DataNode
如果要单独运行hdfs,yarn等,有单独的脚本可以管理,这里不再累赘,相关命令: hadoop-daemon.sh start namenode hadoop-daemons.sh start datanode start-dfs.sh yarn-daemon.sh start resourcemanager yarn-daemons.sh start nodemanager?
测试HDFS cd ~ hadoop fs -mkdir /hdfsdir/ hadoop fs -mkdir /hdfsdir/test01 hadoop fs -ls /hdfsdir echo "1;jack;testaaaa" > file01.txt hdfs dfs -put file01.txt /hdfsdir/test01/file01.txt hdfs dfs -cat /hdfsdir/test01/file01.txt
hadoop进程管理页面,Web查看NameNode运行状况:http://192.168.108.106:18088/ hdfs管理页面,Web查看hdfs管理页面:http://192.168.108.106:50070/
测试YARN 可以访问YARN的Web管理界面
测试mapreduce cd ~/hadoop-2.7.3/share/hadoop/mapreduce hadoop jar hadoop-mapreduce-examples-2.7.3.jar ?pi 5 10
执行成功: [hadoop@hd106 mapreduce]$ hadoop jar hadoop-mapreduce-examples-2.7.3.jar ?pi 5 10 ? ? Number of Maps ?= 5 Samples per Map = 10 Wrote input for Map #0 Wrote input for Map #1 Wrote input for Map #2 Wrote input for Map #3 Wrote input for Map #4 Starting Job 21/08/29 10:35:26 INFO client.RMProxy: Connecting to ResourceManager at hd106/192.168.111.106:18040 21/08/29 10:35:26 INFO input.FileInputFormat: Total input paths to process : 5 21/08/29 10:35:26 INFO mapreduce.JobSubmitter: number of splits:5 21/08/29 10:35:26 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1630203287822_0001 21/08/29 10:35:27 INFO impl.YarnClientImpl: Submitted application application_1630203287822_0001 21/08/29 10:35:27 INFO mapreduce.Job: The url to track the job: http://hd106:18088/proxy/application_1630203287822_0001/ 21/08/29 10:35:27 INFO mapreduce.Job: Running job: job_1630203287822_0001 21/08/29 10:35:35 INFO mapreduce.Job: Job job_1630203287822_0001 running in uber mode : false 21/08/29 10:35:35 INFO mapreduce.Job: ?map 0% reduce 0% 21/08/29 10:35:45 INFO mapreduce.Job: ?map 100% reduce 0% 21/08/29 10:35:51 INFO mapreduce.Job: ?map 100% reduce 100% 21/08/29 10:35:52 INFO mapreduce.Job: Job job_1630203287822_0001 completed successfully 21/08/29 10:35:52 INFO mapreduce.Job: Counters: 49 ? ? ? ? File System Counters ? ? ? ? ? ? ? ? FILE: Number of bytes read=116 ? ? ? ? ? ? ? ? FILE: Number of bytes written=715437 ? ? ? ? ? ? ? ? FILE: Number of read operations=0 ? ? ? ? ? ? ? ? FILE: Number of large read operations=0 ? ? ? ? ? ? ? ? FILE: Number of write operations=0 ? ? ? ? ? ? ? ? HDFS: Number of bytes read=1305 ? ? ? ? ? ? ? ? HDFS: Number of bytes written=215 ? ? ? ? ? ? ? ? HDFS: Number of read operations=23 ? ? ? ? ? ? ? ? HDFS: Number of large read operations=0 ? ? ? ? ? ? ? ? HDFS: Number of write operations=3 ? ? ? ? Job Counters? ? ? ? ? ? ? ? ? Launched map tasks=5 ? ? ? ? ? ? ? ? Launched reduce tasks=1 ? ? ? ? ? ? ? ? Data-local map tasks=5 ? ? ? ? ? ? ? ? Total time spent by all maps in occupied slots (ms)=38973 ? ? ? ? ? ? ? ? Total time spent by all reduces in occupied slots (ms)=3320 ? ? ? ? ? ? ? ? Total time spent by all map tasks (ms)=38973 ? ? ? ? ? ? ? ? Total time spent by all reduce tasks (ms)=3320 ? ? ? ? ? ? ? ? Total vcore-milliseconds taken by all map tasks=38973 ? ? ? ? ? ? ? ? Total vcore-milliseconds taken by all reduce tasks=3320 ? ? ? ? ? ? ? ? Total megabyte-milliseconds taken by all map tasks=39908352 ? ? ? ? ? ? ? ? Total megabyte-milliseconds taken by all reduce tasks=3399680 ? ? ? ? Map-Reduce Framework ? ? ? ? ? ? ? ? Map input records=5 ? ? ? ? ? ? ? ? Map output records=10 ? ? ? ? ? ? ? ? Map output bytes=90 ? ? ? ? ? ? ? ? Map output materialized bytes=140 ? ? ? ? ? ? ? ? Input split bytes=715 ? ? ? ? ? ? ? ? Combine input records=0 ? ? ? ? ? ? ? ? Combine output records=0 ? ? ? ? ? ? ? ? Reduce input groups=2 ? ? ? ? ? ? ? ? Reduce shuffle bytes=140 ? ? ? ? ? ? ? ? Reduce input records=10 ? ? ? ? ? ? ? ? Reduce output records=0 ? ? ? ? ? ? ? ? Spilled Records=20 ? ? ? ? ? ? ? ? Shuffled Maps =5 ? ? ? ? ? ? ? ? Failed Shuffles=0 ? ? ? ? ? ? ? ? Merged Map outputs=5 ? ? ? ? ? ? ? ? GC time elapsed (ms)=570 ? ? ? ? ? ? ? ? CPU time spent (ms)=3350 ? ? ? ? ? ? ? ? Physical memory (bytes) snapshot=1575452672 ? ? ? ? ? ? ? ? Virtual memory (bytes) snapshot=6413795328 ? ? ? ? ? ? ? ? Total committed heap usage (bytes)=1130889216 ? ? ? ? Shuffle Errors ? ? ? ? ? ? ? ? BAD_ID=0 ? ? ? ? ? ? ? ? CONNECTION=0 ? ? ? ? ? ? ? ? IO_ERROR=0 ? ? ? ? ? ? ? ? WRONG_LENGTH=0 ? ? ? ? ? ? ? ? WRONG_MAP=0 ? ? ? ? ? ? ? ? WRONG_REDUCE=0 ? ? ? ? File Input Format Counters? ? ? ? ? ? ? ? ? Bytes Read=590 ? ? ? ? File Output Format Counters? ? ? ? ? ? ? ? ? Bytes Written=97 Job Finished in 26.374 seconds Estimated value of Pi is 3.28000000000000000000 [hadoop@hd106 mapreduce]$?
> hbase安装
待补充
> hive安装
待补充
> Kerberos安装
待补充 ?
|