搭建Hadoop伪分布式环境是在单台机器上模拟完整的Hadoop分布式系统,使得所有的Hadoop守护进程(如NameNode、DataNode、ResourceManager、NodeManager等)都在同一台机器上运行。这样可以在一台机器上体验Hadoop的分布式特性,适合学习、测试和开发。以下是搭建Hadoop伪分布式环境的详细步骤:
1.系统准备
硬件要求:
- 一台机器:可以是物理机或虚拟机,具有足够的内存(至少4GB,推荐8GB或更高)和磁盘空间。
软件要求:
- 操作系统:安装Linux发行版,如Ubuntu、CentOS或RHEL。
- Java环境:安装Java Development Kit (JDK) 8或以上版本,并设置
JAVA_HOME
环境变量。
2.安装Hadoop
下载Hadoop:
- 从Apache官方网站或其他可信源下载对应版本的Hadoop二进制包。
- 将下载的Hadoop压缩包上传至目标机器,并解压缩至指定目录(如
/opt
或/usr/local/src
)。
配置环境变量:
- 在用户主目录(如
~/.bashrc
、~/.bash_profile
或/etc/profile
)中添加如下环境变量:
vim /etc/profile
#在结尾添加下面内容
export HADOOP_HOME=/usr/local/src/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
3.设置JDK环境变量
vim /etc/profile
#在结尾添加下面内容
export JAVA_HOME=/usr/local/src/jdk
export PATH=$PATH:$JAVA_HOME/bin
4.配置Hadoop
编辑核心配置文件:
-
core-site.xml
:设置Hadoop全局属性,如HDFS的默认FS URI(fs.defaultFS
)应指向本地的伪分布式模式,例如hdfs://localhost:9000
;临时文件目录(hadoop.tmp.dir
)设置为一个可用的本地路径,如/usr/local/src/hadoop/tmp
。 -
hdfs-site.xml
:配置HDFS特定属性,如副本数(dfs.replication
)在伪分布式模式下通常设为1,表示数据只有一个本地副本;开启短路读写(dfs.client.use.datanode.hostname
、dfs.datanode.hostname
)以优化本地访问性能。 -
yarn-site.xml
:设置YARN相关参数,如ResourceManager地址(yarn.resourcemanager.hostname
)设为localhost
;调度器策略等。 -
mapred-site.xml
(或mapred-site.xml.template
改名后):配置MapReduce框架属性,如作业提交方式(mapreduce.framework.name
设为yarn
)。
配置主机名与IP映射:
vim /etc/hosts
#在结尾添加下面内容
192.168.10.10 master
编辑core-site.xml
cd /usr/local/src/hadoop/etc/hadoop/
vim core-site.xml
#添加下面内容
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value> #填写自己的主机名
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/src/hadoop/bin/tmp</value>
</property>
</configuration>
编辑hdfs-site.xml
cd /usr/local/src/hadoop/etc/hadoop/
vim hdfs-site.xml
#添加如下内容
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/src/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/src/hadoop/dfs/data</value>
</property>
</configuration>
编辑yarn-site.xml
cd /usr/local/src/hadoop/etc/hadoop/
vim yarn-site.xml
#添加下面内容
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
编辑mapred-site.xml
cd /usr/local/src/hadoop/etc/hadoop/
vim mapred-site.xml
#添加下面内容
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
编辑masters
cd /usr/local/src/hadoop/etc/hadoop/
vim masters
192.168.10.10 #主机ip
创建目录
mkdir /usr/local/src/hadoop/tmp
mkdir /usr/local/src/hadoop/dfs/name -p
mkdir /usr/local/src/hadoop/dfs/data -p
5.配置SSH无密码登录
虽然在伪分布式环境中SSH无密码登录不是必须的,但如果希望使用某些依赖SSH的功能(如DistCp、Hadoop fs -get/-put等),可以配置SSH公钥认证以实现本地无密码登录:
[root@master ~]# vim /etc/ssh/sshd_config
PubkeyAuthentication yes #找到此行,并把#号注释删除。
生成密钥
[root@master ~]# ssh-keygen -t rsa
查看密钥是否生成
[root@master ~]# ls ~/.ssh
id_rsa id_rsa.pub
将 id_rsa.pub 追加到授权 key 文件中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
查看是否成功
[root@master ~]# ls ~/.ssh/
authorized_keys id_rsa id_rsa.pub
设置权限
chmod 600 ~/.ssh/authorized_keys
配置 Hadoop 格式化
cd /usr/local/src/hadoop/
bin/hdfs namenode -format
启动Hadoop集群
start-dfs.sh
start-yarn.sh
start-all.sh
查看是否启动成功
jps
6128 SecondaryNameNode
9316 NodeManager
6038 NameNode
9036 ResourceManager
9868 Jps
8733 DataNode
访问
打开浏览器输入http://localhost:50070
打开浏览器输入http://localhost:50090
打开浏览器输入http://localhost:8088
到此你的Hadoop伪分布式就搭建完成了
6.装spark组件
去Spark官网自行下载安装包,进行解压,这里不做演示
搭建单击伪分布式集群
配置spark
cd /sur/local/src/spark/conf
cp spark-env.sh.template spark-env.sh
#编辑配置文件
export JAVA_HOME=/usr/local/src/jdk
export SPARK_MASTER_IP=master
export HADOOP_CONF_DIR=/usr/local/src/hadoop/etc/hadoop
export SPARK_LOCAL_IP=master
启动spark集群
cd /usr/local/src/spark/sbin/
./start-all.sh
启动spark-shell
cd /usr/local/src/spark/
./bin/spark-shell
访问
打开浏览器输入http://localhost:8080
7.安装scala
自行下载安装包,并加压到相关路径,这里不做演示
配置scala环境变量
vim /etc/profile/
#在结尾添加下面内容
export SCALA_HOME=/usr/local/src/scala
export PATH=$PATH:$SCALA_HOME/bin
运行scala
scala
Welcome to Scala 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_152).
Type in expressions for evaluation. Or try :help.
scala>