VMware分布式集群搭建(centos) - Jeffrey511/Jeffrey-Yu GitHub Wiki

##常见文件操作命令 rm -rf hadoop-2.7.5.tar.gz #强制删除文件命令 rm -rf hadoop-2.7.5 #强制删除目录/文件夹命令

###环境变量失效,如下代码更改生效 PATH=/usr/bin:$PATH

find / -name tty grep tty /etc/bashrc #本地文件copy到hdfs, copyFromLocal效果更高 hdfs dfs -copyFromLocal /usr/local/hadoop/hadoop-2.7.5/etc/hadoop/* /input 或者 hdfs dfs -put /usr/local/hadoop/hadoop-2.7.5/etc/hadoop/* /input #hdfs文件copy到本地 hdfs dfs -copyToLocal /input ~/output #output本地文件夹

  1. VMware使用 Ctrl + Alt 键释束缚的鼠标。 VMware tools,鼠标自由切换; #文件解压 tar -zxvf VMwareTools-10.0.10-4301679.tar.gz tar zxvf VMwareTools-10.0.0-2977863.tar.gz -C /root/(安装到的目录) cd /root/ cd vmware-tools-distrib/ ./vmware-install.pl

  2. 虚拟机访问主机共享文件夹 cd /mnt/hgfs 看自己共享文件夹

  1. spark 有三种安装部署模式 mesos 集群 yarn 集群 或者 standalone 模式

  2. spark 的部署模式有两种 client模式(默认)和cluster模式

client模式是driver直接在spark-submit进程中启动,将本地作为外部客户端

cluster模式是在worker节点部署你的driver, 如果你的机器跟cluster集群距离较远,通常情况下用cluster模式减少drivers和executors的网络延迟。cluster模式目前不支持独立集群(standalone)、 mesos集群以及python应用程序。

在client模式中,driver启动进程与客户端提交应用程序所在的进程是同一个进程。然而,在cluster模式中,driver在集群的某个worker进程中启动,只有客户端进程完成了提交任务,它不会等到应用程序完成就会退出。

##修改主机名 root权限下 vim /etc/sysconfig/network #修改hostname vi /etc/hosts #修改为设置的主机名,ip与主机名的映射关系 reboot #重新启动服务器,生效 hostname #显示主机名 ping Master #查看主机名与IP地址之间转换关系是否正确;

##修改ip [root@hadoop ~]# vim/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0 HWADDR=00:0C:29:A4:4C:56 TYPE=Ethernet NM_CONTROLLED=yes BOOTPROTO=static #BOOTPROTO=dhcp UUID=d4efead9-4535-44bb-91b5-672e1b9ef800 ONBOOT=yes

IPADDR=192.168.235.128 NETMASK=255.255.255.0 GATEWAY=192.168.235.2 IPV6INIT=no DNS1=192.168.235.2

##关闭防火墙 service iptables stop chkconfig iptables off service iptables status

#IP 主机名 192.168.235.127 Master 192.168.235.128 Slave1 192.168.235.129 Slave2

#物理本机IP地址 192.168.235.180 DNS1 192.168.235.2 service network restart

#安装scala mkdir /usr/lib/scala

tar -zxf scala-2.12.1.tgz mv scala-2.12.1 /usr/lib/scala cd /usr/lib/scala

################################################################## ###安装Java root权限下 mkdir /usr/lib/java #新建目录 rz #根目录上传文件 mv jdk-8u161-linux-x64.tar.gz /usr/lib/java #JDK移到新目录下 cd /usr/lib/java
tar -xvf jdk-8u161-linux-x64.tar.gz #jdk文件解压 #java环境变量修改 vim ~/.bashrc #修改bashrc文件

export JAVA_HOME=/usr/lib/java/jdk1.8.0_161 export JRE_HOME=${JAVA_HOME}/jre export CLASS_PATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH export PATH=${JAVA_HOME}/bin:/usr/local/hadoop/hadoop-2.7.5/bin:$PATH #添加路径

source $HOME/.bashrc #环境变量修改生效 java -version #java版本

#################################################################### ##ssh免密码登陆,安装ssh: yum list installed | grep openssh-server #是否安装了openssh-server 或者 rpm -qa | grep ssh #是否安装了openssh-server yum -y install openssh-server #安装openssh-server服务

#修改ssh的配置文件,使用用户名密码作为连接验证 vi /etc/ssh/sshd_config
#将如下代码注释掉 RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys

#重启ssh服务 service sshd restart

#切换root home 目录 cd ~ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa #产生公私钥 cd .ssh #查看隐藏目录 ls -lah

#公钥文件复制成authorized_keys文件 cat id_rsa.pub >> authorized_keys
#本地免密登陆测试 ssh Slave1/localhost
#修改文件权限 在.ssh目录下 chmod 600 authorized_keys

##在其他机器上生成公钥,并复制到master机器 Slave1: scp ~/.ssh/id_rsa.pub root@master:/root/.ssh/id_rsa_01.pub Slave2: scp ~/.ssh/id_rsa.pub root@master:/root/.ssh/id_rsa_02.pub

#将pub导入到master机器上,导入公钥 cat id_rsa_01.pub >> authorized_keys cat id_rsa_02.pub >> authorized_keys

#将master公钥复制到其他机器上 scp ~/.ssh/authorized_keys root@Slave1:/root/.ssh/authorized_keys scp ~/.ssh/authorized_keys root@Slave2:/root/.ssh/authorized_keys

#所有机器修改authorized_keys文件权限 chmod 600 .ssh/authorized_keys

#重启sshd服务,此时需要切换账号为root账号
service sshd restart

#登陆成功 ##################################################################### mkdir /usr/local/hadoop cd /usr/local/hadoop rz #上传文件, 在 hadoop目录下 tar xzf hadoop-2.7.5.tar.gz #在新目录下解压

#配置hadoop-env.sh的java安装信息 cd /usr/local/hadoop/hadoop-2.7.5/etc/hadoop vim hadoop-env.sh export JAVA_HOME=/usr/lib/java/jdk1.8.0_161 #添加java路径 source hadoop-env.sh #配置信息生效

#配置开机启动命令 vim ~/.bashrc export PATH=${JAVA_HOME}/bin:/usr/local/hadoop/hadoop-2.7.5/bin:$PATH #添加路径

source ~/.bashrc

#单机版配置成功 hadoop version

#运行自带例子WordCount cd /usr/local/hadoop/hadoop-2.7.5/

mkdir input #建立新文件夹 cp /usr/local/hadoop/hadoop-2.7.5/etc/hadoop/* input #复制目标文件到input文件夹

#hadoop 调用 vim $HOME/.bashrc #修改bashrc文件,
#添加路径start-all.sh所在文件夹,方便全局路径下直接调用; export PATH=$PATH:/usr/local/hadoop/hadoop-2.7.5/sbin source $HOME/.bashrc #修改生效

hadoop version whereis hadoop

start-all.sh #直接调用hadoop start-dfs.sh #启动dfs

#jar包的调用
cd /usr/local/hadoop/hadoop-2.7.5 #input 对应目录

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar #jar包目录,连接根目录 wordcount #package应用名称 /input #输入目录 在根目录 /output #输出目录 在根目录

########################################################### ###单机模式的构建、配置、运行测试成功

#hdfs的使用 hdfs version #文件版本 hdfs dfs -ls / #列出文件和目录 hdfs dfs -ls -R / #列出目录下的左右文件

hdfs dfs -cat /output/* #查看hdfs内容、 hdfs dfs -mkdir -p /output/test_0401/ #添加文件夹 hdfs dfs -rm -r /output #删除hdfs文件夹 hdfs dfs -rm -f /output/xx.txt #删除hdfs文件

############################################################## ###配置伪分布式 cd /usr/local/hadoop/hadoop-2.7.5 mkdir tmp mkdir hdfs mkdir hdfs/data mkdir hdfs/name

##配置core-site.xml cd /usr/local/hadoop/hadoop-2.7.5/etc/hadoop

#vim core-site.xml fs.default.name hdfs://localhost:9000 hadoop.tmp.dir /usr/local/hadoop/hadoop-2.7.5/tmp

#vim hdfs-site.xml dfs.replication 1 dfs.name.dir /usr/local/hadoop/hadoop-2.7.5/hdfs/name dfs.data.dir /usr/local/hadoop/hadoop-2.7.5/hdfs/data

#vim mapred-site.xml mapred.job.tracker localhost:9001

######################## hadoop集群环境配置完成 ########################

####修改Master、Slave1、Slave2的配置文件 分别修改master\Slave1\Slave2 core-site.xml local——>master mapred-site.xml local——>master vim hdfs-site.xml 1——>3

#把Master作为主节点,又作为数据处理节点,分别拷贝到Slave1和Slave2文件夹下 scp masters root@Slave1:/usr/local/hadoop/hadoop-2.7.5/etc/hadoop scp slaves root@Slave1:/usr/local/hadoop/hadoop-2.7.5/etc/hadoop

scp masters root@Slave2:/usr/local/hadoop/hadoop-2.7.5/etc/hadoop scp slaves root@Slave2:/usr/local/hadoop/hadoop-2.7.5/etc/hadoop ##################################################################

##############测试hadoop分布式集群环境 #namenode格式化,root权限下 cd ~ hadoop namenode -format

##脚本封装一起启动、关闭 start-all.sh stop-all.sh

##模块封装启动 start-dfs.sh start-yarn.sh stop-dfs.sh stop-yarn.sh

##########错误提示 no datanode to stop 删除 /usr/local/hadoop/hadoop-2.7.5/ tmp及其子目录 清除hdfs文件夹中的data和name内容;

############################################################### 配置spark集群

##安装scala mkdir /usr/lib/scala #建立新目录,root权限下 rz tar -zxf scala-2.12.1.gz mv scala-2.12.1 /usr/lib/scala

cd /usr/lib/scala vim ~/.bashrc #修改环境变量

##加入scala的环境信息 export SCALA_HOME=/usr/lib/scala/scala-2.12.1 export PATH=${SCALA_HOME}/bin:$PATH

##更改生效 source ~/.bashrc

##检查版本号 scala -version

##scala 退出 第一种方式: Ctrl+C 第二种方式: scala> :quit

#集群scala安装目录信息复制 mkdir /usr/lib/scala #Slave1 mkdir /usr/lib/scala #Slave2 scp -r /usr/lib/scala/scala-2.12.1 root@Slave1:/usr/lib/scala scp -r /usr/lib/scala/scala-2.12.1 root@Slave2:/usr/lib/scala

#复制bashrc信息配置到集群 vim ~/.bashrc #修改环境变量 export SCALA_HOME=/usr/lib/scala/scala-2.12.1 export PATH=${SCALA_HOME}/bin:$PATH

source ~/.bashrc scala -version

########################################### spark 集群配置 ########################################## ##安装spark mkdir /usr/local/spark #建立新目录,root权限下 rz tar -zxf spark-2.3.0-bin-hadoop2.7.tgz mv spark-2.3.0-bin-hadoop2.7 /usr/local/spark

cd /usr/local/spark vim ~/.bashrc #修改环境变量

export SPARK_HOME=/usr/local/spark/spark-2.3.0-bin-hadoop2.7 export PATH=${SPARK_HOME}/bin:$PATH

source ~/.bashrc

##配置spark

cd /usr/local/spark/spark-2.3.0-bin-hadoop2.7 cd conf

cp spark-env.sh.template spark-env.sh

vim spark-env.sh ##添加如下配置信息 export JAVA_HOME=/usr/lib/java/jdk1.8.0_161 export SCALA_HOME=/usr/lib/scala/scala-2.12.1 export SPARK_MASTER_IP=192.168.235.127 export SPARK_WORKER_MEMORY=2g export HADOOP_CONF_DIR=/usr/local/hadoop/hadoop-2.7.5/etc/hadoop

cp slaves.template slaves vim slaves ##添加如下信息 Master Slave1 Slave2 ####################################### 集群搭建成功!

1.启动hadoop集群 start-all.sh

2.启动spark集群 cd /usr/local/spark/spark-2.3.0-bin-hadoop2.7/sbin ./start-all.sh

##使用jps, 同时出现worker和master节点,启动Spark集群成功;

3.关闭spark集群 cd /usr/local/spark/spark-2.3.0-bin-hadoop2.7/sbin ./stop-all.sh

4.关闭hadoop集群 stop-all.sh

##使用jps,同时查看节点,验证集群是否关闭

⚠️ **GitHub.com Fallback** ⚠️