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本地文件夹
-
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
-
虚拟机访问主机共享文件夹 cd /mnt/hgfs 看自己共享文件夹
-
spark 有三种安装部署模式 mesos 集群 yarn 集群 或者 standalone 模式
-
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,同时查看节点,验证集群是否关闭