Hadoop学习(一)Hadoop的安装

环境是VirtualBox虚拟机和Ubuntu操作系统,虚拟机和操作系统的安装见https://blog.csdn.net/zhangcjsyl/article/details/88142588

本文的参考文章:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html#Standalone_Operation

一、安装JDK

Hadoop是以java开发,因此需要安装Java环境。首先查看java版本

$ java -version

请注意,推荐安装jdk8或以下的jdk版本,jdk1.9以上的javax包被禁用,按本文的安装配置方法会无法启动ResourceManager;如要使用jdk9以上的版本需要增加配置(见https://issues.apache.org/jira/browse/HADOOP-14978,hadoop推荐的jdk版本见https://wiki.apache.org/hadoop/HadoopJavaVersions),如果已经安装了jdk1.8及以下的java环境可以直接进行下一节设置SHH无密码登录。如果没有安装Java环境或者jdk版本在9以上就要进行下面的步骤进行安装:

下载apt软件安装包管理工具

$ sudo apt-get update

这一操作需要输入superuser的密码,然后安装software-properties

$sudo apt-get install software-properties-common

添加ppa

$ sudo add-apt-repository ppa:webupd8team/java

更新系统

$ sudo apt-get update

完毕后使用apt-get安装jdk,这里安装的事oracle的1.8版本jdk:

$ sudo apt-get install oracle-java8-installer

系统会询问是否继续执行,输入Y后按Enter即可。如果之前安装过jdk需要进行jdk版本切换

$ sudo update-java-alternatives -s java-8-oracle

再次查看java版本,当看到如下的内容则已经安装成功。

二、设置SSH无密码登录

Hadoop一般是集群部署,启动Hadoop时NameNode必须与DataNode连接,为了让系统能够顺利运行而不用输入密码就需要设置SSH无密码登录。

1.安装SSH

$ sudo apt-get install ssh

在终端执行以上命令,系统会询问是否继续,输入Y并按下Enter键。

2.安装rsync

终端输入下面的命令

$ sudo apt-get install rsync

3.产生SSH Key

这里采用rsa算法,也可采用dsa算法,就将rsa改为dsa即可:

$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_dsa

SSH Key会产生在用户根目录/home/zhangc(这里zhangc是我的用户名)下,输入下面的命令查看产生的SSH Key:

$ ll /home/zhangc/.ssh

运行后得到下面的结果:

.pub文件就是产生的Key,下面将这个Key放到许可证文件中去:

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

(>> 会将命令产生的输出附加在后面的文件末尾而不会覆盖该文件。)、

可以尝试进行本机的ssh无密码登录:

$ ssh localhost

成功后输入logout命令进行登出,不然的话有些命令无法使用(后面的gedit就是)

$ ssh logout

三、下载安装Hadoop

访问下载地址https://archive.apache.org/dist/hadoop/common/(这里可以使用北京信息学院镜像http://mirror.bit.edu.cn/apache/hadoop/common/)

选择要下载的版本,这里我选择的事hadoop-3.2.0的版本,点击进去复制选择.tar.gz的文件右键复制下载链接

然后在终端下输入wget和之前复制的链接

$ wget https://archive.apache.org/dist/hadoop/common/hadoop-3.2.0/hadoop-3.2.0.tar.gz

下载完成后解压缩下载的文件

$ sudo tar -zxvf hadoop-3.2.0.tar.gz 

移动到/usr/local目录下

$ sudo mv hadoop-3.2.0 /usr/local/hadoop

四、设置Hadoop环境变量

1.编辑~/.bashrc

在终端输入下面的命令,打开~/.bashrc文件

$ sudo gedit ~/.bashrc 

在文件末尾输入下面的配置:

export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.2.0
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
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

如下图所示,然后点击保存,最后点击关闭按钮。

2.让~/.bashrc生效

$ source ~/.bashrc 

五、修改Hadoop配置文件

1.修改hadoop-env.sh

$ sudo gedit /usr/local/hadoop/hadoop-3.2.0/etc/hadoop/hadoop-env.sh

找到如下位置

修改为自己的jdk路径:

2.修改core.site.xml

终端输入以下命令:

$ sudo gedit /usr/local/hadoop/hadoop-3.2.0/etc/hadoop/core-site.xml 

在configuration标签中增加如下内容:

    <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:9000</value>
    </property>

如下图所示:

然后点击保存并退出。

3.修改yarn-site.xml

在终端输入命令:

$ sudo gedit /usr/local/hadoop/hadoop-3.2.0/etc/hadoop/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>

如下图所示:

然后点击保存并退出。

4.设置hdfs-site.xml

在终端输入命令:

sudo gedit /usr/local/hadoop/hadoop-3.2.0/etc/hadoop/hdfs-site.xml 

在configuration标签中增加如下内容:

<property>
    <name>dfs.replication</name>
    <value>3</value>
</property>
<property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
</property>

如下图所示:

然后点击保存并退出。

创建namenode和datanode目录:

$ sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode
$ sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode

六、格式化Hadoop

1.将Hadoop目录拥有者改为当前用户zhangc

$ sudo chown zhangc:zhangc -R /usr/local/hadoop

2.进行格式化

这个操作会清除hdfs中的所有数据:

hadoop namenode -format

七、启动Hadoop

运行下面的命令启动hdfs:

$ start-dfs

启动yarn:

$ start-yarn.sh

以上两个命令可以用一个命令代替:

$ start-all.sh

使用jps查看当前已启动的进程:

$ jps

如下所示:

一定要有 DataNode、NodeManager、SecondaryNameNode、ResourceManager、NameNode这五个缺一不可才算启动成功。

访问Resource Manager界面localhost:8088和HDFS界面localhost:9870(hadoop2.x版本的默认的hdfs的端口是50070)

这样就启动成功了。

 

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值