版本
# 安装的软件版本
macOS 10.13.4
java 1.8.0_241
hadoop 2.7.3
scala 2.12.11
spark2.4.0
安装java
# 测试版本
java -version
# 确保是java8
免密登录SSH
# 一路enter键就行,如果之前进行过,则会提示是否覆盖之前的key,输入y即可,会进行覆盖。
ssh-keygen -t rsa
# 用于授权你的公钥到本地可以无需密码实现登录
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# 此时就可以免密登录了,但是本人在执行ssh localhost后,出现了如下报错:
# ssh : connect to host localhost port 22: Connection refused.
# 解决方法:
# 选择系统偏好设置->选择共享->勾选远程登录
安装hadoop
wget http://archive.apache.org/dist/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
将其解压到指定路径下
tar zxvf hadoop-2.7.3.tar.gz /usr/local/Cellar
mv hadoop-2.7.3 hadoop2.7.3
配置
环境配置
vi ~/.bash_profile
# 在末尾添加
# Java的配置环境
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_241.jdk/Contents/Home
export JRE_HOME=$JAVA_HOME/jre
# hadoop的配置环境
export HADOOP_HOME=/usr/local/Cellar/hadoop2.7.3
export HADOOP_HOME_WARN_SUPPRESS=1
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$PATH
# 激活
source ~/.bash_profile
vi /usr/local/Cellar/hadoop2.7.3/etc/hadoop/hadoop-env.sh
# 在末尾添加如下
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_241.jdk/Contents/Home
测试Hadoop是否安装成功
# 终端中输入
hadoop version
Hadoop 2.7.3
配置core-site.xml
# 打开core-site.xml
vi /usr/local/Cellar/hadoop2.7.3/etc/hadoop/core-site.xml
# 在文末添加如下
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/Cellar/hadoop2.7.3/tmp</value>
</property>
</configuration>
配置hdfs-site.xml
# 打开core-site.xml
vi /usr/local/Cellar/hadoop2.7.3/etc/hadoop/hdfs-site.xml
# 在文末添加如下
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/Cellar/hadoop2.7.3/tmp/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/Cellar/hadoop2.7.3/tmp/hdfs/data</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>localhost:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
配置mapred-site.xml
# 打开core-site.xml
vi /usr/local/Cellar/hadoop2.7.3/etc/hadoop/mapred-site.xml
# 在文末添加如下
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.admin.user.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME</value>
</property>
</configuration>
配置yarn-site-xml
# 打开core-site.xml
vi /usr/local/Cellar/hadoop2.7.3/etc/hadoop/yarn-site-xml
# 在文末添加如下
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
hadoop伪分布式启动
格式化 HDFS
# 在启动 Hadoop 之前要先格式化 HDFS,通过创建存储目录和初始化元数据来格式化和创建新的文件系统:
hadoop namenode -format
启动hadoop
start-dfs.sh
查看是否安装成功
# 输入
jps
# 得到如下结果
出现没有NameNode的情况,参见
jps命令没有namenode或datanode, 怎么解决?
查看namenode
在浏览器中输入http://localhost:50070/
启动yarn
输入网址:http://localhost:8088/cluster
安装Scala
下载Scala-2.12.X
解压
tar zxvf scala-2.12.11.tgz -C ./scala-2.12
添加环境变量
# 在 ~/.bash_profile 添加 scala 的系统环境变量
export SCALA_HOME="/Users/xxx/scala2.12.11"
export PATH=${PATH}:${SCALA_HOME}/bin
# 激活
source ~/.bash_profile
检查
scala -version
安装spark
wget https://archive.apache.org/dist/spark/spark-2.4.0/spark-2.4.0-bin-hadoop2.7.tgz
# 解压到指定文件
tar xzvf spark-2.4.0-bin-hadoop2.7.tgz /usr/local/Cellar/
# 更改文件名
mv spark-2.4.0xxx spark2.4.0
配置环境变量
# 做如下操作
cd /usr/local/Cellar/spark2.4.0/conf
cp spark-env.sh.template spark-env.sh
vi spark-env.sh
export SCALA_HOME=/usr/local/Cellar/scala2.12.11
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_241.jdk/Contents/Home
export SPARK_MASTER_IP=localhost
export SPARK_WORKER_MEMORY=1g
export HADOOP_CONF_DIR=/usr/local/Cellar/hadoop2.7.3/etc/hadoop
# 打开bash_profile
vi ~/.bash_profile
在文末添加
# spark
export SPARK_HOME=/usr/local/Cellar/spark2.4.0
export PATH=$PATH:$SPARK_HOME/bin
# 激活
source ~/.bash_profile
测试
# 在终端输入
spark-shell
# 在scala下输入
val textFile = sc.textFile("file:///usr/local/Cellar/spark3.0.0/README.md")