ochangbluce 2019-06-25
推荐使用Rhel或Centos系统,正式环境使用6.8版本,个人学习推荐使用7.2
推荐使用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
书中不仅加入了新近的大数据技术,还丰富了“机器学习”内容。对于有条件的公司和学校,参照书中介绍的搭建过程,同样可以实现将自己的平台搭建在多台实体计算机上,以便更加接近于大数据和机器学习真实的运行环境。