Hadoop配置

来源:互联网 发布:c语言产生0 1的随机数 编辑:程序博客网 时间:2024/06/03 18:15
最近实验室要做 Spark 相关实验。配置 Hadoop 是首先的一步。(单机使用可以不装Hadoop直接装Spark,这里为了以后配置集群做准备先采用伪分布式安装Hadoop)
文章中使用的 Hadoop 版本为 2.7.3 , JDK版本为1.8.0_92,系统为 Linux (ubuntu 16.04 LTS 64bit)。Linux基础较差的同学请恶补。
官方教程在此,英语好的童鞋请移步 ---> 
hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-common/SingleCluster.html
接下来进入正题:

1. 软件下载和hadoop用户建立

安装 Hadoop 首先需要安装 JDK 和 SSH , 不知道的童鞋请百度一下。
这里从官网 下载Hadoop 和 JDK(本文中使用的是Oracle 版本 JDK)。JDK最好采用1.7及以后的版本。
  1. 输入 wget http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz   获取hadoop
  2. 输入 sudo apt install openssh-server 获取ssh
  3. jdk请至oracle官网下载,建议弄个迅雷然后把下载链接粘到迅雷里下,oracle官网的速度慢如蜗牛
软件都下载完成之后开始软件的安装。
为了方便管理,我们需要新建一个叫hadoop的用户作为使用hadoop和spark的专门用户。
  1. 输入 sudo useradd -m hadoop -s /bin/bash 建立hadoop用户
  2. 输入 sudo passwd hadoop 修改hadoop用户的密码
  3. 输入 sudo adduser hadoop sudo 将hadoop用户加入sudoer列表(也可修改 /etc/sudoers 文件进行配置。详情请百度)
配置过程中有任何提示permission denied 的地方通常加上sudo都可以解决。不能解决的请查看文件拥有者和访问权限。

2. JDK安装

下载完(tar.gz格式安装包)之后
  1. 输入 sudo mkdir /usr/java 建立 /usr/java 目录
  2. 输入 sudo tar -xzvf ~/Downloads/jdk-xxxxx -C /usr/java 将JDK解压至此目录。此处 -xzvf 参数用于解压tar.gz, -C 用于指定解压到的目录
  3. 输入 sudo vim /etc/profile 打开profile文件配置JAVA环境变量

Linux配置环境变量主要有两种方法:
  1. 修改 /etc/profile 。此文件控制系统中所有用户的环境变量,每次用户登录时加载。
  2. 修改 ~./bashrc 。~为 /home/user/ 目录。user 即当前登录用户的用户名 。此文件仅控制对应用户的环境变量
这里我们使用修改 /etc/profile 的方法进行环境变量配置。

打开profile文件后
  1. 输入 i 进入编辑模式,并在文件尾部添加以下内容

export JAVA_HOME=/usr/java/jdk1.8.0_92export JAVA_BIN=$JAVA_HOME/binexport JAVA_LIB=$JAVA_HOME/libexport CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATHexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

  1. 输入 Esc 退出编辑模式
  2. 输入 :wq (英文冒号加wq俩字母)保存文件并退出vim
  3. 输入shell命令:source  /etc/profile 使环境变量立即生效。

此时键入 java -version 应当显示java版本,且和之前解压的版本一致。

3. SSH配置

Hadoop 使用 ssh 进行节点间的控制。故需要配置ssh免密登录。
  1. 输入 sudo apt-get install -y openssh-server 安装ssh。
  2. 输入 su hadoop 切换至hadoop用户
  3. 输入 ssh localhost 然后根据终端提示进行第一次连接。
  4. 输入exit退出ssh连接。

接着配置免密登录ssh。
  1. 输入 cd ~/.ssh/ 切换目录
  2. 输入 ssh-keygen -t rsa  生成key。为了免密请什么都不输入按三次回车
  3. 输入 cat ./id_rsa.pub >> ./authorized_keys  加入授权
再次输入 ssh localhost 这次应该不用输密码就能登进去。如果成功,代表ssh配置好了。

4.Hadoop配置

  1. 将 Hadoop 解压至 /usr/local/ 目录下并重命名为 hadoop (通过 tar -xzvf -C命令解压 通过mv命令重命名) 此时你的Hadoop文件夹路径应该是 /usr/local/hadoop (本文以下操作均在该路径下进行)
  2. 输入 sudo chown -R hadoop:hadoop /usr/local/hadoop 使用户hadoop取得Hadoop文件夹的所有权
  3. 输入 cd /usr/local/hadoop 进入该文件夹
  4. 输入 bin/hadoop version 如果显示hadoop版本则表示hadoop单机版已配置好。

接下来进行伪分布式配置。伪分布式配置的主要内容是修改core-site.xml 和 hdfs-site.xml中的内容。
  1. 输入 cd /usr/local/hadoop/etc/hadoop 切换到这两个文件所在的目录
  2. 输入 vim core-site.xml 修改该文件如下
<configuration>    <property>        <name>fs.defaultFS</name>        <value>hdfs://localhost:9000</value>    </property></configuration>

然后修改 hdfs-site.xml 为
<configuration>    <property>        <name>dfs.replication</name>        <value>1</value>    </property></configuration>
到这里 hadoop 伪分布式配置已完成。

接下来进行测试
  1. 输入 cd /usr/local/hadoop 切换目录
  2. 输入 bin/hdfs namenode -format 格式化名字节点。
若在输出中看到 Exiting with status 0 则表示名字节点格式化成功。
如果前面已经设置好JAVA_HOME但是这里仍然提示未设置JAVA_HOME的话 请修改/usr/local/hadoop/etc/hadoop/hadoop-env.sh文件将其中的 JAVA_HOME 修改为 /usr/java/jdkxxxx(原来是$JAVA_HOME)

Hadoop名字节点格式化之后就可以启动hdfs

  1. 输入 sbin/dfs-start.sh 启动hdfs

启动完毕后输入jps命令应该可以查看到4个节点,此时hadoop hdfs已启动成功。如果没有4个节点,代表启动失败。

启动失败时请依照以下步骤再次尝试

  1. 输入 sbin/dfs-stop.sh 关闭hdfs
  2. 输入 bin/hdfs namenode -format 重新格式化名字节点
  3. 输入 sbin/dfs-start.sh 再启动hdfs
如果此时输入JPS仍然不能看到4个节点。请输入 rm -r ./tmp 删除hadoop文件夹下该子文件夹,并重新格式化名字节点然后再启动

1 0
原创粉丝点击