欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

centos 7 下安装hadoop 3.0 伪分布式

程序员文章站 2022-07-15 18:48:04
...

hadoop 3.0 的安装

经过两天的折腾终于把hadoop安装在自己的电脑上,并进行了简单的测试,中间遇到了很多问题,下面主要是我总结的centos 7下伪分布式hadoop的安装。

下载hadoop 3.0 的安装包

   wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.0.2/hadoop-3.0.2.tar.gz -P ./

安装ssh

     具体过程可以见:https://blog.csdn.net/u012941811/article/details/18556831

ssh的无密码登陆

   在设置无密码登陆前,首先应该明确,你主要使用那个用户名进行hadoop的开发学习测试,也就是你经常用来启动关闭hadoop集群的用户。
  在这里我以hduser用户为例,首先创建用户名(需要用root用户创建)
#创建用户hduser
useradd hduser
#然后切换到hduser
su hduser
#进入hduser用户主目录
cd ~
   接下来开始设置hduser可以不需要密码登陆[email protected]
#假设指定的加密算法为rsa,指定密码为空
ssh-****** -t rsa -P ''
# 以上命令回车后会提示如下语句,指定**保存在那个文件里面,这里我们输入:/home/hduser/.ssh/id_rsa_hadoop
Enter file in which to save the key (/root/.ssh/id_rsa):
#最后输出如下:
Your identification has been saved in /home/hduser/.ssh/id_rsa_hadoop.
Your public key has been saved in /home/hduser/.ssh/id_rsa_hadoop.pub.
The key fingerprint is:
SHA256:M24Qs44pFwMknhw+2YSQjaDENLwsGstvmN2g8Xt1BJo [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|XOo.             |
|O*O    .         |
|oBo.  = .        |
|oo.. E + .       |
|+o  o o S        |
|oo . * + +       |
|  X * o +        |
| + B o .         |
|  ..o            |
+----[SHA256]-----+

上面的步骤结束以后,说明我们的密要文件已经生成完毕了:

ll .ssh/id_rsa_hadoop*
-rw-------. 1 hduser hduser 1766 56 15:12 .ssh/id_rsa_hadoop
-rw-r--r--. 1 hduser hduser  398 56 15:12 .ssh/[[email protected] ~]$ ll .ssh/id_rsa_hadoop*
-rw-------. 1 hduser hduser 1766 56 15:12 .ssh/id_rsa_hadoop
-rw-r--r--. 1 hduser hduser  398 56 15:12 .ssh/id_rsa_hadoop.pub

接下来我们对hduser免密码登陆进行授权,总共有两种方式:

  • 直接把.ssh/id_rsa_hadoop.pub的内容追加到 ~/.ssh/authorized_keys ,没有的话则新建一个
  cat .ssh/id_rsa_hadoop.pub >> ~/.ssh/authorized_keys
  • 通过ssh-copy-id拷贝公要文件内容到你想免密码登陆的服务器上,命令如下:
# 需要输入hduser的用户密码
 ssh-copy-id -i .ssh/id_rsa_hadoop [email protected]
# 执行以下命令测试是否还需要输入密码登陆,如果登陆不成功请修改下.ssh目录权限为700 ~/.ssh/authorized_keys权限为600
ssh '[email protected]'

着手安装hadoop

这里我把hadoop安装在/opt目录下:

  • 去hadoop-3.0.2.tar.gz 保存目录解压hadoop
tar -jxvf hadoop-3.0.2.tar.gz
sudo mv hadoop-3.0.2 /opt/hadoop
  • 设置hadoop需要的环境变量
# 打开~/.bash_profile,写入环境变量设置相关信息
vim ~/.bash_profile
# 末尾追加内容如下:
# hadoop related
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre #修改成你自己的
export HADOOP_HOME=/opt/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-DJava.library.path=$HADOOP_HOME/lib"
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH 
PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export PATH
  • 设置hadoop相关配置文件
    配置文件在hadoop根目录下的etc/hadoop
cd /opt/hadoop/etc/hadoop
# 1. 修改hadoop-env.sh, 输入内容下
# The java implementation to use. By default, this environment
# variable is REQUIRED on ALL platforms except OS X!
# export JAVA_HOME=
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre #自己添加的
# 2. 修改core-site.xml修改后内容大体如下:
<configuration>
<!-- 以下为自己增加内容 -->
<property>
<!-- 设置HDFS的默认名字 -->
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<!-- 以上为自己增加内容 -->
</configuration>
# 3. 修改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>
# 4. 修改mapred-site.xml修改后内容大体如下:

<configuration>
<!-- 以下为自己增加内容 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/opt/hadoop</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/opt/hadoop</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/opt/hadoop</value>
</property>
<!-- 以上为自己增加内容 -->
</configuration>
# 5. 修改hdfs-site.xml 修改后内容大体如下:
<configuration>
<!-- 以下为自己增加内容 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hduser/hadoop_data/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hduser/hadoop_data/hdfs/datanode</value>
</property>
<property>
<name>fs.hdfs.impl</name>
<value>org.apache.hadoop.hdfs.DistributedFileSystem</value>
<description>The FileSystem for hdfs: uris.</description>
</property>
<property>
<name>dfs.http.address</name>
<value>0.0.0.0:50070</value>
</property>
<!-- 以上为自己增加内容 -->
</configuration>
  • 创建hadoop需要的目录 namenode datanode
mkdir -p /home/hduser/hadoop_data/hdfs/namenode
mkdir -p /home/hduser/hadoop_data/hdfs/datanode
  • 格式化namenode
# 执行如下命令时如果提示找不到hadoop,请确认下hadoop相关环境变量是否设置成功,echo $PATH
hadoop namenode -format
  • 启动hadoop
start-all.sh
  • 查看启动的jvm进程
jps
#输出如下:
19251 Jps
9654 NodeManager
8841 DataNode
9098 SecondaryNameNode
8701 NameNode
9341 ResourceManager
  • 尝试浏览器打开hadoop ResourceManager web 界面
浏览器中输入网址
http://localhost:8088
  • 打开HDFS web界面
浏览器中输入网址
http://localhost:50070 或https://localhost:50470
  • 启动hadoop
stop-all.sh