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=$PATH ![]() ![]() ![]() export CLASSPATH=. ![]() ![]() 执行如下命令让环境变量配置生效: 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集群,就可以成功启动了; |
|
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |