Hadoop集群开发(一)--操作系统配置
操作系统
推荐使用Rhel或Centos系统,正式环境使用6.8版本,个人学习推荐使用7.2
环境搭建
Java
推荐使用JDK1.8版本
系统环境
修改系统相关配置
#修改主机名称 vi /etc/hostname HDP001 #修改IP地址映射 vi /etc/hosts 162.168.1.191 HDP001 hdp001 162.168.1.192 HDP002 hdp002 162.168.1.193 HDP003 hdp003 162.168.1.194 HDP004 hdp004 162.168.1.195 HDP005 hdp005 #修改IP地址 vi /etc/sysconfig/network-scripts/ifcfg-eth0 #关闭防火墙 systemctl stop firewalld systemctl disable firewalld #关闭Selinux sed -i "SELINUX=enforcing/SELINUX=disable/g" /etc/selinux/config #修改最大打开文件句柄数 vi /etc/security/limits.conf * soft nofile 131072 #星号表示对所有用户生效,可替换为用户名,为针对指定用户生效 * hard nofile 131072 #修改最大进程数 vi /etc/security/limits.d/20-nproc.conf * soft nproc unlimited * hard nproc unlimited #修改Swap参数 vi /etc/sysctl.conf vm.min_free_kbytes=40960 ##缺省值是102400,用来确定系统开始回收内存的阈值.保持物理内存有足够的空闲空间,防止突发性的换页.对于生产环境的服务器,可以设置为内存总量的4%。 vm.vfs_cache_pressure=200 ##缺省值是100,这个参数设置了虚拟内存回收directory和i-node缓冲的倾向,增大这个值,可以增加回收的倾向 vm.swappiness=40 ##缺省值是60。这个参数的意义是,如果内存够大,应当告诉 linux 不必太多的使用 SWAP 分区,可以通过修改swappiness 的数值。swappiness=0的时候表示最大限度使用物理内存,然后才是swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面. #挂载参数优化 ##当文件被创建,修改和访问时,Linux系统会记录这些时间信息。当系统的读文件操作频繁时,记录文件最近一次被读取的时间信息,将是一笔不少的开销。所以,为了提高系统的性能,我们可以在读取文件时不修改文件的atime属性。可以通过在加载文件系统时使用notime选项来做到这一点。当以noatime选项加载(mount)文件系统时,对文件的读取不会更新文件属性中的atime信息。设置noatime的重要性是消除了文件系统对文件的写操作,文件只是简单地被系统读取。由于写操作相对读来说要更消耗系统资源,所以这样设置可以明显提高服务器的性能。注意wtime信息仍然有效,任何时候文件被写,该信息仍被更新 ##立即生效 mount -o remount / vi /etc/fstab proc /proc proc defaults 0 0 none /dev/pts devpts gid=5,mode=620 0 0 /dev/md0 /boot ext3 defaults 0 0 /dev/md1 none swap sw 0 0 /dev/md2 / ext3 defaults,noatime 0 0
新建用户
groupadd hadoop useradd -g hadoop hadoop -d /home/hadoop echo 123456|passwd --stdin hadoop
配置互信
切换至集群安装用户(hadoop)
su - hadoop ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub > authorized_keys chmod 600 ~/.ssh/* ssh localhost date
修改SSH配置文件
vi /etc/ssh/ssh_config StrictHostKeyChecking no vi /etc/ssh/sshd_config PrintLastLog yes
配置集群时间同步
hadoop集群间节点时间不宜超过30秒,否则在运行任务时可能出现异常。
hbase数据库那么对于时间同步的要求更加严格。因此hadoop集群之间需要进行时间同步。
通常,使用NTP(ntpdate是立即进行时间同步,可能会导致任务重复调度)服务来进行集群件服务器的时间同步:选取其中一台服务器为ntp服务端,其他服务器作为NTP客户端来同步此服务器的时间。
Centos7系统默认使用chronyc服务来进行时间同步,在使用ntpd服务之前需先禁用chronyc后启用ntpd
#禁用chronyc服务 systemctl stop chronyd systemctl disable chronyd #设置NTP服务自动同步硬件时间 vi /etc/sysconfig/ntpd SYNC_HWCLOCK=yes #NTP服务端配置 ##设定其他IP地址对本地时间同步的访问权限 restrict 162.168.1.191 mask 255.255.255.255 nomodify ##设定局域网内访问权限 restrict 162.168.1.0 mask 255.255.255.0 nomodify #设定服务端时间同步服务器 server 127.127.1.0 fudge 127.127.1.0 stratum 8 #stratum 指定同步地址优先级 #注释原有公网同步地址 # 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 #NTP客户端配置 ##注释原有同步公网地址 server 162.168.1.191 #配置上面配置的同步服务器IP地址 fudge 127.127.1.0 stratum 8 #配置完成后,重启服务生效 systemctl stop ntpd systemctl start ntpd #设置NTPD服务开机启动 systemctl enable ntpd
规划集群目录
/opt |-------wks |-----------java |-----------mariadb |-----------hdp |-----------|-----core |-----------|---------|-----hadoop |-----------|---------|-----zookeeper |-----------|---------|-----spark |-----------|-----conf |-----------|-----data |-----------|-----logs |-----------|-----tmp
cd /opt mkdir wks cd wks mkdir java mariadb hdp cd hdp mkdir core conf data tmp logs cd core mkdir hadoop zookeeper spark hive kafka flume cd ../tmp mkdir mr_cache nm_cache cd ../data mkdir hadoop zookeeper cd hadoop mkdir datanode journalnode namenode yarn cd yarn mkdir staging mkdir -p /opt/wks/hdp/logs/yarn/userlogs
相关推荐
Elmo 2020-01-10
WeiHHH 2019-12-16
lhfredfly 2019-12-09
xiyf0 2016-01-09
GMCWXH 2013-01-14
GMCWXH 2018-09-13
Jonechhc 2019-09-05
GMCWXH 2018-11-28
一个人的世界 2018-04-29
一个人的世界 2018-03-31
李春春 2015-01-10
Shibuwodai 2016-01-16
Shibuwodai 2012-08-22
玻璃心 2016-10-20
laotumingke 2016-04-05
totxian 2016-04-03
system0 2014-01-08
forjustice 2019-06-28
大木行走 2019-06-28