Spark_Hadoop平台搭建

设置SSH

SSH生成密钥,包括私钥id_rsa和公钥id_rsa.pub。私钥用来加密和数字签名,公钥用来解密。服务器间互相拥有对方的公钥,设置好SSH配置文件,即可实现Linux服务器间免密码登陆以及文件的安全传送。

  1. 安装SSH,并启动SSH服务: service sshd start
  2. 生成密钥,存储路径为/root/.ssh: ssh-keygen -t rsa -P
  3. 配置/etc/ssh/sshd_config。重点需要配置的内容如下:
Port 22
PermitRootLogin yes  # 允许Root登陆
RSAAuthentication yes
PubkeyAuthentication yes # 允许公钥验证
AuthorizedKeysFile	%h/.ssh/authorized_keys  # 存储各互联服务器的密钥文件
PermitEmptyPasswords no  # 不允许空密码
PasswordAuthentication yes # 允许密码登陆

若出现错误可重新配置dpkg-reconfigure openssh-server
4. ssh-copy-id root@node01 将本地公钥直接发送到远程主机authorized_keys 或者 scp命令传送文件:scp <本地文件> root@<对方IP>:<远程文件路径> (注意:hosts文件没有配置时,只能用IP,传送目录需要添加选项-r), 然后cat id_rsa.pub >> authorized_keys

配置host

/etc/hostname存储计算机名,可按照个人需求进行修改,例如:主节点设为master,子节点设为slaves。
/etc/hosts存储各个计算机名和计算机IP的对应关系。有了这个文件再使用scp时,可以将IP替换成计算机名。

***.***.***.*** Master
***.***.***.*** node01
***.***.***.*** node02

安装JDK

由于Hadoop和Spark都是在JVM上运行的,所以首先要配置好java环境,这是最基础的一步。这里注意,本人java测试版本太高后面时长会报错,推荐安装JDK8。

删除旧版本:sudo apt-get remove jdk* / yum remove jdk*
安装JDK8: sudo apt-get install openjdk-8-jdk / yum install openjdk-8-jdk
或直接下载jdk*.tar.gz,在指定文件夹解压,设置java环境变量即可。
注意:若系统中安装了多个java版本,需要指定默认的版本:
sudo update-alternatives --install /usr/bin/java java /home/eric/jdk*/bin/java 300
sudo update-alternatives --config java

安装Hadoop

home目录下的.bashrc文件存储特定用户的环境变量 ,/etc/profile存储所有用户的环境变量。
从官网下载Hadoop二进制文件。直接解压,然后再~/.bashrc 文件内设置好环境变量即可。接下来就时配置Hadoop:

配置Hadoop详细的环境变量

# 通常情况下,设置好JAVA环境变量,其他默认即可
export JAVA_HOME=/home/eric/spark_hadoop/jdk1.8.0_171

创建Hadoop系统目录

进入安装目录:
mkdir tmp   # Hadoop临时文件目录
mkdir dfs/data  # 数据节点数据存储目录
mkdir dfs/name  # 名称节点数据存储目录

修改详细配置文件

Hadoop采用XML语言编辑配置文件,进入安装目录/etc/hadoop

  1. 修改core-site.xml: 核心配置文件,设置系统名称和tmp路径
<configuration>
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://eric-master:9000</value>
	</property>
	<property>
		<name>hadoop.tmp.dir</name> # 设置hadoop临时文件目录
		<value>/home/eric/spark_hadoop/hadoop-2.7.6/tmp</value>
	</property>
</configuration>

  1. 修改hdfs-site.xml:Hadoop分布式文件系统的配置文件
<configuration>
	<property>
		<name>dfs.replication</name> # 文件复制份数
		<value>2</value> # 本次测试两个slave节点,故份数为2
	</property>
	<property>
		<name>dfs.namenode.name.dir</name> # 配置名称节点数据存放位置
		<value>file:/home/eric/spark_hadoop/hadoop-2.6.5/dfs/name</value>
	</property>
	<property>
		<name>dfs.datanode.data.dir</name> # 配置数据节点数据存放位置
		<value>file:/home/eric/spark_hadoop/hadoop-2.6.5/dfs/data</value>
	</property>
</configuration>
  1. 修改slaves文件:
    将slaves节点名称添加进slaves。

测试

  1. 首次运行需要格式化节点名称:hdfs namenode -format
  2. 进入sbin目录:./start-dfs.sh;./start-yarn.sh
  3. 正常启动后,可在本地浏览器输入http://localhost:50070/查看HDFS信息
  4. 运行wordcount示例:
文件夹/test存储文档,/output输出结果
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /test /output
hadoop fs -cat /output/part-r-00000  #标准输出

异常处理

Hadoop配置看似简单,但稍不留意就报错。这种情况下,一定要细心检查配置文件。终止一切进程./stop-all.sh,然后重新测试

安装Scala

Spark是用Scala语言编写,Scala语言环境是Spark运行的基础。同JDK的安装,官网下载Scala二进制文件包,解压然后设置环境变量即可。

安装Spark

从官网下载Spark二进制文件。直接解压,然后再~/.bashrc 文件内设置好环境变量即可。接下来进入conf配置Spark:

  1. 修改spark-env.sh:spark详细的环境变量
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export SCALA_HOME=/home/eric/spark_hadoop/scala-2.12.6
export HADOOP_HOME=/home/eric/spark_hadoop/hadoop-2.6.5
export HADOOP_CONF_DIR=/home/eric/spark_hadoop/hadoop-2.6.5/etc/hadoop  # hadoop配置文件目录
export SPARK_MASTER_IP=eric-master # 分布式处理框架中master的IP(hosts文件中存储了IP与主机名的对应关系)
export SPARK_WORKER_MEMORY=2g #slaves节点最大分配内存
export SPARK_WORKER_COERS=2 # slaves节点工作核心数
export SPARK_WOERKER_INSTANCES=1 # 每台主机上开启的worker数目
  1. 修改slaves文件:添加slaves主机名
  2. 测试: 进入sbin目录./start-all.sh(注意hadoop安装目录下也有一个start-all.sh)

设置环境变量

简单说下Linux环境下设置环境变量。进入~/.bashrc编辑:

export JAVA_HOME=/home/eric/spark_hadoop/jdk1.8.0_171
export HADOOP_HOME=/home/eric/spark_hadoop/hadoop-2.6.5
export SCALA_HOME=/home/eric/spark_hadoop/scala-2.12.6
export SPARK_HOME=/home/eric/spark_hadoop/spark-2.3.0-bin-hadoop2.6
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:${HADOOP_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:${JAVA_HOME}/bin:$PATH #设置二进制文件的绝对路径,这样就可以在计算机的任何位置启动命令

测试Spark集群

进入spark的bin目录下:./run-example org.apache.spark.examples.LocalPi spark 这是一个spark自带的计算Pi的例子,结果输出Pi的近似值。

Windows终端连接Linux服务器

终端安装Xshell,即可连接服务器。Linux服务器端安装lrzsz,rz本地传输文件到服务器端,sz从服务器端下载文件到本地(需要指定路径,也可设置默认路径)

总结

整个配置过程远不止以上所述,应该在了解原理的基础上,自己进行最合适的配置。只有懂了相关原理,在遇到问题时才能很快找出问题所在。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值