IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Centos7 Hadoop 2.7.3 + Hive + HBase + Kerberos 集群环境搭建 -> 正文阅读

[大数据]Centos7 Hadoop 2.7.3 + Hive + HBase + Kerberos 集群环境搭建


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安装

待补充
?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-30 12:07:06  更:2021-08-30 12:09:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 17:22:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码