关于环境变量
#拿不到环境变量 ssh root@192.168.xxx.xxx 'echo $bianliang' #先加载环境变量,再输出环境变量 ssh root@192.168.xxx.xxx 'source /etc/profile;echo $bianliang'
关于克隆虚拟机
#需要为每台机器重新生成不同的machine-id: rm /etc/machine-id /var/lib/dbus/machine-id dbus-uuidgen --ensure systemd-machine-id-setup reboot #修改主机名 #修改IP地址
Linux基础设施
设置IP
#修改配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ens33 #将BOOTPROTO修改为"static" BOOTPROTO="static" #在BOOTPROTO下添加 IPADDR="192.168.238.100" #IP地址 NETMASK="255.255.255.0" #子网掩码 GATEWAY="192.168.238.255" #默认网关 DNS="192.168.238.2" #DNS
设置主机名
#修改配置文件 vi /etc/sysconfig/network #添加内容 NETWORKING=YES HOSTNAME=name #centos修改 vi /etc/hostname
关闭防火墙
service iptables stop #关闭防火墙 systemctl stop firewalld #centos关闭防火墙 chkconfig iptables off #禁止开启启动 systemctl disable firewalld #centos禁止自启
关闭SELinux
SELinux是Linux的一种安全子系统。 Linux权限管理是针对文件不针对进程的,就比如root启动了某进程,则这个进程可以操作任何一个文件。 SELinux在Linux文件权限外,增加了对进程的限制,进程只能在允许的范围内操作资源。
SELinux工作模式: enforcing 强制模式(操作违反规则会制止并且记录到日志文件) permissive 宽容模式(操作违反规则不制止但是记录到日志文件) disable 关闭
修改SElinux配置文件: vi /etc/selinux/config 写入:SELINUX=disable
设置hosts映射
vi /etc/hosts 192.168.238.101 tongyuzhe1 192.168.238.102 tongyuzhe2 192.168.238.103 tongyuzhe3 192.168.238.104 tongyuzhe4
时间同步
方式1
所有主机和同一台主机同步
方式2
通过网络,所有主机和时钟服务器保持同步
安装
# 安装时钟同步软件 yum install -y ntp # 配置文件 crontab -e # 定时任务,每分钟与阿里云时钟服务器同步 # 分时日月周 */1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com; # 查看服务是否启动 service ntpd status # 启动服务 service ntpd start # 设置开机自启动 chkconfig ntpd on # 开机自启失败解决方法 # 禁止系统自己控制时钟 systemctl disable chronyd
安装jdk
卸载open-JDK
#查看和java相关的安装包 rpm -qa | grep java #卸载所有java-1.*的安装包 sudo yum remove java-1.* #卸载tzdata rpm -e tzdata-java-2020a-1.el7.noarch
创建目录
#创建安装目录 mkdir -p /export/softwares #软件包存放目录 mkdir -p /export/servers #软件安装目录
上传
rz -E
解压安装
tar -xvf jdk-8u281-linux-x64.tar.gz -C ../servers/
配置环境变量
#修改配置文件 vim /etc/profile #添加以下内容 export JAVA_HOME=/export/servers/jdk1.8.0_281 export PATH=$JAVA_HOME/bin:$PATH #保存并使用环境设置 source /etc/profile
关闭邮箱检查提示
#修改配置文件 vim /etc/profile #添加内容 unset CHECKMAIL #使其生效 source /etc/profile
设置SSH免秘钥
想管理A,就把自己公钥拷贝到A主机
免密SSH原理
1. 先在B节点配置A节点的公钥 2. A节点请求B节点要求登录 3. B节点使用A节点的公钥,加密一段文本 4. A节点使用私钥解密,返回给B节点 5. B节点验证文本是否正确
第一步
在每台电脑中执行以下命令,生成公钥和私钥 ssh-keygen -t rsa 按三次回车就行
第二步
将三台公钥拷贝至同一台机器
# 将本机公钥拷贝至tongyuzhe1 ssh-copy-id tongyuzhe1
复制第一台机器上三个认证到其他机器
# 将本机目录认证复制到tongyuzhe2主机的/root/.ssh下 scp /root/.ssh/authorized_keys tongyuzhe2:/root/.ssh
hadoop安装配置
hadoop搭建
#创建路径 mkdir /opt/bigdata #安装hadoop tar xf hadoop-2.6.5.tar.gz #移动目录 mv hadoop-2.6.5 /opt/bigdata #配置hadoop角色环境变量 export HADOOP_HOME=/opt/bigdata/hadoop-2.6.5 export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin #使配置文件生效 source /etc/profile
配置hadoop目录
#进入hadoop配置目录 cd $HADOOP_HOME/etc/hadoop #修改配置文件 vi hadoop-env.sh #从远端SSH访问时,是访问不到环境变量的 #所以要将以下目录 export JAVA_HOME=${JAVA_HOME} #修改为绝对路径 export JAVA_HOME=/export/servers/jdk1.8.0_281
角色启动位置
#hadoop配置文件千万不能有空行之类的
NameNode启动位置
#修改文件 vi core-site.xml #在<configuration>内添加 <property> <name>fs.defaultFS</name> <value>hdfs://主机名:9000/</value> </property>
DataNode启动位置
vi slaves #添加主机名 tongyzuhe1
SecondaryNameNode启动位置
#修改文件 vi hdfs-site.xml #在<configuration>内添加 <property> #修改SecondaryNameNode主机 <name>dfs.namenode.secondary.http-address</name> <value>tongyuzhe1:50090</value> </property>
角色启动细节
#修改文件 vi hdfs-site.xml #在<configuration>内添加
文件块副本数
<property> <name>dfs.replication</name> #因为是伪分布式,所以只有1块 <value>1</value> </property>
NameNode存放位置
<property> #指定namenode存放的文件夹 <name>dfs.namenode.name.dir</name> <value>/var/bigdata/hadoop/local/dfs/name</value> </property>
DataNode存放位置
<property> #指定datanode存放的文件夹 <name>dfs.datanode.data.dir</name> <value>/var/bigdata/hadoop/local/dfs/data</value> </property>
SecondaryNameNode存放位置
<property> #修改SecondaryNameNode目录 <name>dfs.namenode.checkpoint.dir</name> <value>/var/bigdata/hadoop/local/dfs/secondary</value> </property>
hadoop初始化启动
初始化
#初始化 #会创建目录 #初始化一个空的fsimage #创建VERSION配置文件,随机分配个CID hdfs namenode -format #修改windows的hosts 192.168.238.101 tongyuzhe1 ...
启动HDFS
#启动 start-dfs.sh #停止 stop-dfs.sh #查看服务 #ps是查看服务,jps是查看和java有关的服务 jps