Centos7 大数据组件安装

128 阅读3分钟

Java 安装

下载JDK

查看Linux 服务区的操作系统位数,下载适合的JKD安装包


[root@master ~]# getconf LONG_BIT

64

下载jdk-8u361

解压安装JDK


tar -zxvf jdk-8u361-linux-x64.tar.gz -C /usr/local

添加JAVA 环境变量

执行命令 vi /.bash_profile 在/.bash_profile文件中增加Java环境变量


export JAVA_HOME=/usr/local/jdk1.8.0_361

export JAVA_BIN=$JAVA_HOME/bin

export JAVA_LIB=$JAVA_HOME/lib

export CLASSPATH=.:$JAVA_LIB/tools.jar:$JAVA_LIB/dt.jar

PATH=$PATH:$HOME/.local/bin:$HOME/bin:$JAVA_BIN

export PATH

最后 source ~/.bash_profile

验证JAVA是否安装成功


[root@master src]# java -version

java version "1.8.0_361"

Java(TM) SE Runtime Environment (build 1.8.0_361-b09)

Java HotSpot(TM) 64-Bit Server VM (build 25.361-b09, mixed mode)

修改host


[root@master ~]# vim /etc/hosts

## 在文件末尾添加一行

127.0.0.1 hadoop001

创建hadoop 用户


useradd hadoop

给普通用户设置超级管理的权限

/etc/sudoers文件默认情况下是只读的,若要修改它需要为其添加写权限,使用命令 chmod u+w /etc/sudoers


chmod u+w /etc/sudoers

编辑/etc/sudoers, 在 root ALL=(ALL) ALL 这一行下面添加一行


## 为 hadoop 用户添加 sudo 权限,sudo 时需要键入密码

hadoop ALL=(ALL) ALL:

修改完毕,保存文件,取消掉 /etc/sudoers 的写权限


chmod u-w /etc/sudoers

Hadoop 安装[单机版]

Hadoop 下载

hadoop-3.2.3

Hadoop 安装


tar -zxvf hadoop-3.2.3.tar.gz -C /usr/local/

添加Hadoop 环境变量

vim ~/.bash_profile


export HADOOP_HOME=/usr/local/hadoop-3.2.3

PATH=$PATH:$HOME/.local/bin:$HOME/bin:$JAVA_BIN:`$HADOOP_HOME/bin:$HADOOP_HOME/sbin`

修改hadoop 配置

配置目录 $HADOOP_HOME/etc/hadoop

hadoop-env.sh


export JAVA_HOME=/usr/local/jdk1.8.0_361

export HADOOP_HOME=/usr/local/hadoop-3.2.3

mapred-site.xml


<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

<final>true</final>

<description>The runtime framework for executing MapReduce jobs</description>

</property>

<property>

<name>yarn.app.mapreduce.am.env</name>

<value>HADOOP_MAPRED_HOME=/usr/local/hadoop-3.2.3</value>

</property>

<property>

<name>mapreduce.map.env</name>

<value>HADOOP_MAPRED_HOME=/usr/local/hadoop-3.2.3</value>

</property>

<property>

<name>mapreduce.reduce.env</name>

<value>HADOOP_MAPRED_HOME=/usr/local/hadoop-3.2.3</value>

</property>

</configuration>

core-site.xml


<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://hadoop001:9001</value>

</property>

</configuration>

hdfs-site.xml


<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

<property>

<name>dfs.namenode.name.dir</name>

<value>/home/hadoop/dfs/namenode</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>/home/hadoop/dfs/datanode</value>

</property>

<property>

<name>dfs.http.address</name>

<value>0.0.0.0:50070</value>

</property>

</configuration>

yarn-site.xml


<configuration>

<!-- Site specific YARN configuration properties -->

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

<final>true</final>

</property>

</configuration>

启动Hadoop

格式化NameNode

第一次启动HDFS需要先进行格式化


hdfs namenode -format

启动NameNode && 启动DataNode


hdfs --daemon start namenode

hdfs --daemon start datanode

jps


bash-4.2$ jps

11526 NameNode

11643 DataNode

11679 Jps

如果启动失败,可以查看%HADOOP_HOME%/logs/ 目录下的日志进行错误排查

访问HDFS的管理界面

输入 http://192.168.1.128:50070/

image.png

本机SSH免密码登录配置

关闭防火墙和SELinux(root权限)

永久有效

修改 /etc/selinux/config 文件中的 SELINUX=enforcing 修改为 SELINUX=disabled ,然后重启

临时生效

setenforce 0

配置sshd(root权限)

编辑 /etc/ssh/sshd_config 文件,使用命令:vi /etc/ssh/sshd_config ,去掉以下3行的 “#” 注释


RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

重启 sshd 服务,使用命令:systemctl restart sshd.service

生成秘钥(普通用户权限)

从 root 用户切换到hadoop 用户. 执行命令 ssh-keygen -t rsa 来生成秘钥

将公钥导入到认证文件(普通用户权限


cat /home/hadoop/.ssh/id_rsa.pub >> /home/hadoop/.ssh/authorized_keys

设置认证文件访问权限(普通用户权限


chmod 700 /home/hadoop/.ssh

chmod 600 /home/hadoop/.ssh/authorized_keys

启动Yarn


bash-4.2$ start-yarn.sh

Starting resourcemanager

resourcemanager is running as process 13040. Stop it first and ensure /tmp/hadoop-hadoop-resourcemanager.pid file is empty before retry.

Starting nodemanagers


bash-4.2$ jps

13040 ResourceManager

13731 Jps

12824 NameNode

12687 DataNode

13583 NodeManager

查看YARN的管理界面

image.png

MapReduce测试


bash-4.2$ hdfs dfs -mkdir /input # 在HDFS根目录下创建input目录

bash-4.2$ hdfs dfs -mkdir /output # 在HDFS根目录下创建output目录

bash-4.2$ hdfs dfs -ls / # 查看HDFS根目录下文件列表

Found 2 items

drwxr-xr-x - hadoop supergroup 0 2023-05-29 16:30 /input

drwxr-xr-x - hadoop supergroup 0 2023-05-29 16:30 /output

其他命令


hdfs dfs -put src out # 文件夹上传

hdfs dfs -get src out # 文件夹下载

hdfs dfs -cat # 文件查看

hdfs dfs -rm -r # 删除

Spark 安装[单机版]

Spark 下载

spark-3.0.0-without-hadoop

解压安装


# 解压安装包并移动到/usr/local/下

sudo tar -zxvf spark-3.0.0-bin-without-hadoop.tgz

sudo mv ./spark-3.0.0-bin-without-hadoop/ /usr/local/spark

环境配置

sudo vim /etc/profile


export SPARK_HOME=/usr/local/spark

export PATH=$PATH:$SPARK_HOME/bin

配置 ${SPARK_HOME}/conf/spark-env.sh 文件关联 spark-without-hadoop 和 hadoop【非without版本无需配置】


bash-4.2$ sudo cp spark-env.sh.template spark-env.sh

bash-4.2$ vim spark-env.sh

# 添加以下内容

# 实际就是执行时在 CLASSPATH 中加入 Hadoop 的 Jar 包 【要根据Hadoop的安装路径配置】

export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop-3.2.3/bin/hadoop classpath)

Local模式

Local 模式是最简单的一种运行方式,它采用单节点多线程方式运行,适合日常测试开发使用


bash-4.2$ spark-shell --master local[*]

  • local:只启动一个工作线程

  • local[k]:启动 k 个工作线程

  • local[*]:启动跟 cpu 数目相同的工作线程数

image.png

spark 测试

进入 spark-shell 后,程序已经自动创建好了上下文 SparkContext ,等效于执行了下面的 Scala 代码


import org.apache.spark.SparkConf

import org.apache.spark.SparkContext

val conf = new SparkConf().setAppName("Spark shell").setMaster("local[*]")

val sc = new SparkContext(conf)

准备一个词频统计的文件样本 word.txt


hadoop,spark,hive

spark,hive,hbase,kafka

hadoop,hive,spark

执行如下 Scala 语句


sc

.textFile("file:///home/spark/testFile/word.txt")

.flatMap(_.split(","))

.map((_, 1))

.reduceByKey(_ + _)

.saveAsTextFile("file:///home/spark/testFile/wordCount")

词频统计的结果


[root@master wordCount]# cat /home/spark/testFile/wordCount/part-00000

(hive,3)

(kafka,1)

通过 Web UI 查看作业的执行情况, 访问端口为 4040

image.png

参考资料