首先需要Linux系统,本次安装以Ubuntu为例
用到的软件,安装包版本为:
nanortual box6.0.2
hadoop-2.7.7.tar.gz
jdk-8u221-linux-x64.tar.gz
scala-2.13.1.tgz
spark-2.4.4-bin-without-hadoop.tgz版本略有不同详情请下载官网推荐搭配,也可以去各大镜像站下载
更换Ubuntu软件源
由于Ubuntu软件源在国外,这里更换阿里云镜像源
最小化安装Ubuntu和nanortual box安装增强功能需要,若不在意,可忽略
1.备份
1 | sudo cp /etc/apt/source.list /etc/apa/source.list.bak |
2.编辑
1 | sudo nano /etc/apt/source.list |
3.修改内容
1 | deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse |
4.软件更新
1 | sudo apt-get update |
5.更新软件包
1 | sudo apt-get upgrade |
hadoop的安装
准备好安装包,如果是在Ubuntu直接下载的可直接开始下一步,若是在Windows上下载,请用xftp上传至Ubuntu你自己的目录,这里我们上传至用户根目录
并且已经配置好ssh免密登录
开始安装
jdk安装
解压安装包到~目录下
1 | tar -zxvf jdk-8u221-linux-x64.tar.gz |
- JDK 环境变量(推荐复制一份 .bashrc文件备份)
1 | sudo cp ~/.bashrc ~/.bashrc.bat #备份 |
内容的末尾添加如下代码(注意:等号两侧不要有空格)
1 | export JAVA_HOME=~/jdk的根目录 |
- 重置生效
1 | source ~/.bashrc |
- 检验是否安装成功
1 | java –version |
出现版本信息则安装成功
hadoop安装
1 | tar -zxvf hadoop-2.7.7.tar.gz |
设置环境变量
1 | nano ~/.bashrc |
在打开文件的末尾添加以下两行代码,保存并退出。
1 | export HADOOP_HOME=~/hadoop |
使配置生效。
1 | source ~/.bashrc |
- 验证 Hadoop 环境变量配置是否正确的方法如下
1 | whereis hdfs |
修改主机名 (也可以不用更改,但一定记得查看主机名,并记住)
- 查看 Ubuntu 操作系统的主机名,参考下面的命令。
1 | hostname |
- 用 nano 命令编辑/etc/hostname 文件。
1 | sudo nano /etc/hostname |
主机名自行修改
- 重启 Ubuntu 操作系统,使修改生效。
1 | sudo reboot |
在文件末尾添加一下内容,下面的 IP 地址根据实际的 IP 地址修改。
通过以下查询当前主机的IP地址
1 | ifconfig |
将你查询到的IP地址添加入hosts(最好不要用10.0.0.15 注意切换虚拟机的网络设置,用桥接网卡,其他的另行尝试)
修改/etc/hosts 文件。
1 | nano /etc/hosts |
添加的内容为:
你的IP地址(刚刚通过ifconfig查询的地址) 你的主机名
- 进入 Hadoop 配置文件所在目录。
1 | cd ${HADOOP_HOME}/etc/hadoop |
- 配置 hadoop-env.sh
添加 JAVA_HOME=你的jdk目录
配置 core-site.xml
主要内容为configuration标签里的内容
用 nano 命令打开 core-site.xml。
1 | nano core-site.xml |
- 参考以下内容进行修改,修改完保存退出
1 |
|
配置说明:
fs.defaultFS 属性指定默认文件系统的 URI 地址,一般格式为“hdfs://host:port”。其中,host
可以设置为 Ubuntu 操作系统的 IP 地址以及主机名称中的任意一个,这里设置为主机名;port 如
果不配置,则使用默认端口号 8020。
hadoop.tmp.dir 指定 Hadoop 的临时工作目录,设置为/home/<用户名>/hadoop/tmp,<用户名>
请根据实际情况修改。注意:一定要配置 hadoop.tmp.dir,否则默认的 tmp 目录在/tmp 下,重启
Ubuntu 操作系统时 tmp 目录下的 dfs/name 文件夹会被删除,造成没有 NameNode。
- 配置 hdfs-site.xml
用 nano 命令打开 hdfs-site.xml。
1 | nano hdfs-site.xml |
修改成以下内容,保存退出。
1 |
|
dfs.replication 的默认值是 3,因为伪分布式只有一个节点,所以值设置为 1。
- 配置 mapred-site.xml
复制 mapred-site.xml.template,生成 mapred-site.xml。
1 | cp mapred-site.xml.template mapred-site.xml |
用 nano 命令打开 mapred-site.xml。
1 | nano mapred-site.xml |
修改成以下内容,保存退出。
1 |
|
- 配置 yarn-site.xml
用 nano 命令打开 yarn-site.xml。
1 | nano yarn-site.xml |
修改成以下内容,保存退出。
1 |
|
- 格式化 HDFS
格式化的过程是创建初始目录和文件系统结构的过程。执行以下命令格式化 HDFS。
1 | hdfs namenode -format |
注意:格式化只需进行一次,下次启动不要再次格式化,否则会少 DataNode 进程。
- 启动hadoop
1 | start-all.sh #启动 |
查看jps
1 | jps |
有以下内容则考虑下一步
1 | NameNode |
如果某个主机少了某个进程,应该到相应主机去找对应的 log 查看原因,log 存放在 ${HADOOP_HOME}/logs 目录下。例如,若少了 DataNode 进程,那么就切换到${HADOOP_ HOME}/logs 目录下,查看 DataNode 相关的 log,找到含有“WARN”“Error”“Exception”等的 关键字句,通过上网搜索关键字句找到解决问题的办法。
- 查看网页
虚拟机查看:
localhost:8088 localhost:50070
成功打开则配置完成
spark配置
scala安装
- 解压Scala的安装包,解压命令:
1 | tar -zvxf scala-2.13.1.tgz |
- 重新执行命令:
1 | source ~/.bashrc |
- 配置环境变量,在 ~/.bashrc文件中添加如下内容:
1 | nano ~/.bashrc |
- 打开后添加
export SCALA_HOME=scala的目录 # 配置SCALA_HOME
export PATH=$PATH:$SCALA_HOME/bin # 添加bin目录到PATH
- scala启动
1 | scala #启动 |
spark安装
- 解压spark
1 | tar -zvxf spark-2.3.3-bin-hadoop2.7.tgz |
配置环境变量,在 ~/.bashrc文件中添加如下内容:
1 | export SPARK_HOME=spark目录 # 配置SPARK_HOME |
重新执行命令: source ~/.bashrc
- 复制模板文件,将在Spark的conf目录中的spark-env.sh.template、log4j.properties.template、slaves.template三个文件拷贝为spark-env.sh、log4j.properties、slaves到同一目录下(conf文件夹),注意把.template去掉,然后Spark启动时就会对文件中的配置项进行读取,否则找不到配置。命令如下:
1 | cd $SPARK_HOME/conf |
- 修改spark-env.sh 添加以下参考内容
1 | export SCALA_HOME=scala目录 |
- 设置spark-2.3.3-bin-hadoop2.7文件夹可读可写可执行权限,命令:
1 | sudo chmod 777 spark-2.3.3-bin-hadoop2.7/ |
- 通过以下命令来检查
1 | spark-shell |
出现版本号,且没有错误,网页打开localhost:4040
- 启动spark集群
1 | #进入spark sbin目录 |
无报错,打开localhost:8080 则spark配置完成
- 可能遇到的问题
启动scala报错 java.lang.NumberFormatException: For input string: “0x100”
解决方法如下:
1 | sudo nano ~/.bashrc |
spark适用