《Spark编程基础》实行陈诉----Spark集群配置

打印 上一主题 下一主题

主题 1081|帖子 1081|积分 3243

Spark集群安装过程:

1.启动3个假造机节点。



2.利用ifconfig查看每台假造机的ip地点并记录下来。





3.通过下列命令使用vi编辑器编辑节点1的主机名配置文件。

vi /etc/sysconfig/network
在文件中进行内容更改,将 HOSTNAME字段内容配置成yourname01(其中yourname是你自己对集群的定名,每个人的定名都应该不一致,否则同一个局域网内会出现定名冲突)
依次修改节点2和节点3的主机名配置文件。重启3个假造机节点,使配置生效。





4.通过下列命令使用vi编辑器编辑节点1的hosts文件,设置主机和ip地点的映射。

vi /etc/hosts
在文件下面参加如下内容:
节点1ip地点 yourname01(注意yourname替换成你实际的定名)
节点2ip地点 yourname02

通过下列命令检测主机名与IP映射是否配置成功:
ping yourname01 -c 2
ping yourname02 -c 2
ping yourname03 -c 2
依次修改节点2和节点3的hosts文件,并检测配置是否成功。




5.配置SSH免密码登录,通过免密登录各个节点可以访问其他节点而不必要输入密码验证。在节点1上输入如下指令生成密钥,默认会在~l.ssh/文件夹下生成公钥文件id_rsa.pub和私钥文件id_rsa。

ssh-keygen -t rsa
可以通过ll~/.ssh/对~/.ssh/内容进行查看,以确保生成了密钥文件。


通过下面的命令将公钥文件发送到本机,创建root免密钥通道(必要输入root密码):
ssh-copy-id -i /root/ .ssh/id_rsa. pub root@yourname01
通过下面的命令将公钥文件发送到节点2,创建root免密钥通道(必要输入root密码):
ssh-copy-id -i /root/.ssh/id_rsa.pub root@ yourname02
通过下面的命令将公钥文件发送到节点3,创建root免密钥通道(必要输入root 密码):
ssh-copy-id -i /root/. ssh/id_rsa. pub root@ yourname03
依次在节点2和节点3上生成密钥,并将公钥发送到本机及其他节点。
验证SSH免密码登录:起首在节点1中通过下面的命令可以实现免密码远程登录到节点2
ssh yourname02
然后通过下面的命令可以实现免密码远程登录到节点3:ssh yourname03
如果都能正常登录则体现免密登录正常,然后多次输入exit退出登录。




6.在节点1解压安装 jdk , scala ,Hadoop和 spark ,相应的安装包己经放到/usr/software/目录下,不用下载。

起首必要在终端中输入下列命令,在/usr目录下创建cx工作路径(具体名称可以自己设的)用于存放相干软件。
mkdir /usr/cx
通过下面的命令实现在节点2的/usr目录下创建cx工作路径:
ssh yourname02 "mkdir /usr/cx"
通过下面的命令实现在节点3的/usr目录下创建cx工作路径:
ssh yourname03 "mkdir /usr/cx"


将jdk安装包解压安装到/usr/cx目录下(注意检查安装包的名字是否正确):
tar -zxvf /usr/software/jdk-8u60-linux-x64.tar.gz -C /usr/cx
解压后自己查看/usr/cx文件夹下安装 jdk文件夹的名称。



利用scp将jdk分发到节点2和节点3上(注意检查安装文件夹名称是否正确)。
scp -r /usr/cx/jdk1.8.O_90 root@yourname02 :/usr/cx
scp -r /usr/cx/jdk1.8.0_90 root@yourname03 :/usr/cx
执行命令后检查节点2和节点3相应目录下是否存在相应的jdk文件夹。


依次安装scala,hadoop和 spark(解压安装后可以把一些特殊长的安装目录改短一些便于以后操作),并将scala也分发到节点2和节点3 (hadoop和 spark暂不分发)。



利用vi编辑配置环境变量
vi /etc/profile
在/etc/profile文件中添加下列内容:
export JAVA_HOME=/usr/cx/jdk1.8.0_60
export HADOOP_HOME=/usr/cx/hadoop-3.2.2
export SCALA_HOME=/usr/cx/scala-2.12.14
export SPARK_HOME=/usr/cx/spark-3.1.2
exportPATH=$PATHJAVA_HOME/bin: $SPARK_HOME/binSCALA_HOME/binHADOOP_HOME/bin: $HADOOP_HOME/sbin
export CLASSPATH=. JAVA_HOME/lib.dt.jarJAVA_HOME/lib/tools. jar
执行如下命令让环境变量配置生效:
source /etc/profile
通过下面的命令将环境变量配置文件分发到节点2和节点3:
scp /etc/profile root@yourname02 :/etc/profile
scp /etc/profile root@yourname03 : /etc/profile

在节点2和节点3执行命令让环境变量配置生效。
在各个节点执行:
java -version
scala -version
验证java和 scala正常安装,而且环境变量生效。

7.安装hadoop分布式环境。

1)在节点1上创建hadoop存储相干数据的文件夹。

mkdir -p /usr/cx/hadoop-3. 2.2/hadoop/tmp
mkdir -p /usr/cx/hadoop-3.2..2/hadoop/data
mkdir -p /usr/cx/hadoop-3. 2.2/hadoop/name


2)在节点1上修改hadoop-env. sh文件

vi /usr/cx/hadoop-3.2.2/etc/hadoop/hadoop-env. Sh
在文件头部参加如下内容:
export JAVA_HOME=/usr/cx/jdk1.8.0_60
export HADOOP_PREFIX=/usr/cx/hadoop-3.2.2

3)在节点1上修改yarn-env.sh 文件

vi /usr/cx/hadoop-3. 2.2/etc/hadoop/yarn-env. Sh
在文件头部参加如下内容:
export JAVA_HOME=/usr/cx/ jdk1.8.0_60
4)在节点1上修改core-site. xml文件

vi / usr/cx/hadoop-3.2.2/etc/hadoop/core-site.xml
修改内容(注意yourname修改为你的定名,如果改变了hadoop安装目录也要保持一致):
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://yourname01 : 9000</value>
</property>
<property>
<name>hadoop.tmp. dir</name>
<value>/usr/cx/hadoop-3.2.2/hadoop/tmp</value>
</property>
</configuration>

5)在节点1上修改hdfs-site.xml文件

vi / usr/cx/hadoop-3.2.2/etc/hadoop/hdfs-site. xm l
修改内容:
<configuration>
<property>
<name>dfs. namenode.http-address</name>
<value>yourname01 :50070</value>
</property>
<property>
<name>dfs.namenode. name. dir</name>
<value>/usr/cx/hadoop-3.2.2/hadoop/name</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs. permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.datanode. data.dir</name>
<value>/usr/cx/hadoop-3.2.2/hadoop/data</value>
</property>
</configuration>

6)在节点1上修改mapred-site.xml文件

vi / usr/cx/hadoop-3. 2.2/etc/hadoop/mapred-site. Xml
修改内容:
<configuration>
<property>
<name>mapreduce.framework. name</name>
<value>yarn</value>
</property>
<property>
<name>yarn. app. mapreduce. am.env</ name>
<value>HADOOP_MAPRED_HOME=/usr/cx/hadoop-3.2.2/</value>
</property>
<property>
<name>yarn.app. mapreduce.am.env</ name>
<value>HADOOP_MAPRED_HOME=/usr/cx/hadoop-3.2.2/</value>
</property>
<property>
<name>mapreduce. map. env</name>
<value>HADOOP_MAPRED_HOME=/cx/xxt/hadoop-3.2.2/</value>
</property>
<property>
<name>mapreduce. reduce.env</name>
<value>HADOOP_MAPRED_HOME=/usr/cx/hadoop-3.2.2/</value>
</property>
</configuration>

7)在节点1上修改workers文件

vi / usr/cx/hadoop-3.2.2/etc/hadoop/workers
修改内容:
yourname01
yourname02
yourname03


8)在节点1上修改yarn-site.xml文件

vi / usr/cx/hadoop-3.2.2/etc/hadoop/yarn-site.xm l
修改内容:
<configuration>
<property>
<name>yarn. nodemanager. aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager. hostname</name><value>yourname01</value>
</property>
<property>
<name>yarn.nodemanager. aux-services.mapreduce.shuffle.class</name>
<value>org. apache.hadoop. mapred. ShuffleHandler</value>
</property>
<property>
<name>yarn.nodemanager. resource.cpu-vcores</name>
<value>1</value>
</property>
<property>
<name>yarn.resourcemanager. address</name>
<value> yourname01 : 8032</value>
</property>
<property>
<name>yarn.resourcemanager. scheduler. address</name>
<value> yourname01:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value> yourname01 :8031</value>
</property>
</configuration>


9)在节点1上修改start-dfs.sh文件

vi /usr/cx/hadoop-3.2.2/sbin/start-dfs.sh
头部添加以下内容:
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root


10)在节点1上修改stop-dfs.sh文件

vi/usr/cx/hadoop-3.2.2/sbin/stop-dfs. Sh
头部添加以下内容:
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root


11)在节点1上修改start-yarn. sh文件

vi /usr/cx/hadoop-3.2.2/sbin/start-yarn. Sh
头部添加以下内容:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root


12)在节点1上修改 stop-yarn.sh文件

vi /usr/cx/hadoop-3.2.2/sbin/stop-yarn. Sh
头部添加以下内容:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root


13)在节点1上修改start-all. sh文件

vi /usr/cx/hadoop-3.2.2/sbin/start-all.sh
头部添加以下内容:
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root


14)在节点1上修改stop-all.sh文件

vi /usr/cx/hadoop-3.2.2/sbin/stop-all.sh
头部添加以下内容:
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root


15)将配置好的hadoop分发到节点2和节点3

运用scp分发
16)格式化hadoop集群

在节点1上执行
/usr/cx/hadoop-3.2.2/bin/hdfs namenode – format
17)启动hadoop集群

在节点1上执行
/usr/cx/hadoop-3.2.2/sbin/start-all.sh

18)验证集群安装

第17步如果没有出失败提示,则在各个节点执行“jps”命令,在节点1上可以看到“NameNode DataNode NodeManager ResourceManager SecondaryNameNode”的进程,在节点2和节点3上可以看到“NodeManager DataNode”进程。
同时,可以访问下列网页查看相干信息。
http://节点1的ip: 50070
http://节点1的ip:8088




8.spark集群安装

1)在节点1修改spark-env.sh文件

cp /usr/cx/spark-3.1.2/conf/spark-env. sh.template  /usr/cx/spark-3.1.2/conf/spark-env.sh
vi /usr/cx/spark-3.1.2/conf/spark-env.sh
头部添加以下内容:
export JAVA_HOME=/usr/cx/jdk1.8.0_60

export SPARK_MASTER_IP=yourname01

export SPARK_WORKER_MEMORY=512M

export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop

export YARN_CONF_DIR=${HADOOP_HOME}/etc/Hadoop


2)在节点1修改workers文件

cp /usr/cx/spark-3.1.2/conf/workers.template /usr/cx/spark-3.1.2/conf/workers

vi /usr/cx/spark-3.1.2/conf/workers

在文件尾部参加:

yourname01

yourname02

yourname03


3)将配置好的spark分发到节点2和节点3

4)启动spark集群

在节点1上执行

/usr/cx/spark-3.1.2/sbin/start-all.sh

能看到创建了3个worker,在三个节点上执行“jps“都可以看出worker进程。





9.测试集群

1)自己创建测试的源文件/usr/cx/wordcount.txt,其内容为:

Hello hadoop
hello spark
hello bigdata

2)将本地文件上传到hdfs

hdfs dfs -mkdir -p /hadoop/input
hdfs dfs -put /usr/cx/ wordcount.txt /hadoop/input

3)启动spark-shell

执行如下指令
spark-shell
4)执行以下命令

val file=sc.textFile("hdfs:// yourname01 :9000/hadoop/input/wordcount.txt")
val rdd =file.flatMap(line =line.split(" ")) .map(word =>(word,1 ) ) . reduceByKey(_+_)
rdd.collect()
rdd.foreach(println)
5)查看执行结果,输入:quit退出spark-shell


10.关闭spark和hadoop集群

在节点1执行
/usr/cx/spark-3.1.2/sbin/stop-all.sh
/usr/cx/Hadoop-3.2.2/sbin/stop-all.sh

11.问题

出现的问题:修改堕落文件后,再启动还报错;
解决:修改文件后,要重新格式化hadoop集群,就可以成功启动了;


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

笑看天下无敌手

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表