先查看机器的配置
代码语言:javascript
复制#查看Linux内核版本
cat /proc/version
uname -a
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq
# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l
# 查看CPU信息(型号)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
# 查看内 存信息
cat /proc/meminfo
# 查看 hdfs 文件大小
hadoop fs -du -s -h /user/hive/warehouse/dw.db/
经过计算得出不使用HBASE的
代码语言:javascript
复制C:UsersacerDesktop>python yarn-utils.py -c 16 -m 64 -d 2 -k False
Using cores=16 memory=64GB disks=2 hbase=False
Profile: cores=16 memory=57344MB reserved=8GB usableMem=56GB disks=2
Num Container=4
Container Ram=14336MB
Used Ram=56GB
Unused Ram=8GB
yarn.scheduler.minimum-allocation-mb=14336
yarn.scheduler.maximum-allocation-mb=57344
yarn.nodemanager.resource.memory-mb=57344
mapreduce.map.memory.mb=14336
mapreduce.map.java.opts=-Xmx11468m
mapreduce.reduce.memory.mb=14336
mapreduce.reduce.java.opts=-Xmx11468m
yarn.app.mapreduce.am.resource.mb=14336
yarn.app.mapreduce.am.command-opts=-Xmx11468m
mapreduce.task.io.sort.mb=5734
经过计算得出使用HBASE的
代码语言:javascript
复制C:UsersacerDesktop>python yarn-utils.py -c 16 -m 64 -d 2 -k True
Using cores=16 memory=64GB disks=2 hbase=True
Profile: cores=16 memory=49152MB reserved=16GB usableMem=48GB disks=2
Num Container=4
Container Ram=12288MB
Used Ram=48GB
Unused Ram=16GB
yarn.scheduler.minimum-allocation-mb=12288
yarn.scheduler.maximum-allocation-mb=49152
yarn.nodemanager.resource.memory-mb=49152
mapreduce.map.memory.mb=12288
mapreduce.map.java.opts=-Xmx9830m
mapreduce.reduce.memory.mb=12288
mapreduce.reduce.java.opts=-Xmx9830m
yarn.app.mapreduce.am.resource.mb=12288
yarn.app.mapreduce.am.command-opts=-Xmx9830m
mapreduce.task.io.sort.mb=4915
1. 修改yarn-site.xml
代码语言:javascript
复制<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>49152</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>12288</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>49152</value>
</property>
<property>
<name>yarn.app.mapreduce.am.resource.mb</name>
<value>12288</value>
</property>
<property>
<name>yarn.app.mapreduce.am.command-opts</name>
<value>-Xmx9830m</value>
</property>
2. 修改yarn-site.xml
代码语言:javascript
复制yarn.nodemanager.resource.cpu-vcores :表示该节点上YARN可使用的虚拟CPU个数,默认是8,注意,目前推荐将该值设值为与物理CPU核数数目相同。如果你的节点CPU核数不够8个,则需要调减小这个值,而YARN不会智能的探测节点的物理CPU总数。
yarn.scheduler.minimum-allocation-vcores :单个任务可申请的最小虚拟CPU个数,默认是1,如果一个任务申请的CPU个数少于该数,则该对应的值改为这个数。
yarn.scheduler.maximum-allocation-vcores :单个任务可申请的最多虚拟CPU个数,默认是32。
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>16</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-vcores</name>
<value>64</value>
</property>
3. 使得HDFS 每个节点负载均衡
代码语言:javascript
复制hdfs balancer -threshold 10
4. 新增HADOOP节点
- /etc/hosts 新增主机映射
代码语言:javascript
复制[root@labelmanage app]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
134.200.45.42 labelmanage
134.200.45.43 labelapp1
134.200.45.44 labelapp2
134.200.45.45 labelapp3
134.200.45.46 xxh-kafka1
134.200.45.47 xxh-kafka2
134.200.45.48 xxh-kafka3
134.200.45.49 xxh-kafka4
- slaves 文件中新增主机
代码语言:javascript
复制[root@labelmanage app]# cat /data/app/hadoop-2.6.0-cdh5.7.0/etc/hadoop/slaves
- 分发 ~/.bash_profile 和 hadoop-2.6.0-cdh5.7.0
- 记得 新节点的hdfs目录、tmp目录为空 记得清空./sbin/hadoop-daemon.sh start datanode
- 在新节点上 启动hdfs
- 在新节点上 启动yarn
代码语言:javascript
复制./sbin/yarn-daemon.sh start nodemanager
- 命令检查、当然也可以通过web查看
代码语言:javascript
复制[root@xxx app]# yarn node -list
[root@xxx app]# hdfs dfsadmin -report
[root@xxx hadoop-2.6.0-cdh5.7.0]# ./sbin/start-balancer.sh -threshold 5
[root@xxx hadoop-2.6.0-cdh5.7.0]# hdfs dfsadmin -setBalancerBandwidth 67108864