大数据[1] -- 安装hadoop

文章目录

  • Hadoop 安装以及配置
    • 一、安装
      • 1.安装SSH,设置SSH无密码登录
      • 2. 安装jdk
      • 3.安装Hadoop
    • 二、配置
    • 三、其他配置
    • 四、出现的问题
    • 五 参考文章

Hadoop 安装以及配置

一、安装

1.安装SSH,设置SSH无密码登录

ssh可以让访问其他Linux虚拟机而不用输入密码,可以为集群做准备

  1. 被访问主机上生成公钥
    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
  2. 访问主机上获取公钥
    ssh-copy-id root@ip地址
  3. 可以在/etc/hosts文件中可以将ip地址映射为自己取得名字
  4. 远程拷贝文件的使用
远程拷贝文件
scp 本机文件 user@host:路径/
注:将bigdata1上的/etc/profile文件拷贝到bigdata2的根目录下
scp /etc/profile root@bigdata2:/
注:将bigdata1上的/etc/profile文件拷贝到bigdata2的根目录下,并改名为profile.txt
scp /etc/profile root@bigdata2:/profile.txt
远程拷贝目录
scp -r 本机目录 user@host:路径/
注:将bigdata1上的/bin目录拷贝到bigdata2的根目录下
scp -r /bin root@bigdata1:/home/ (-r 表示递归)
下载文件到本地
scp user@host:文件名 本地目录
注:将bigdata2上的/profile下载到本地并改名为profile.txt
scp root@bigdata2:/profile ./profile.txt
下载目录到本地
scp -r user@host:文件名 本地目录
注:将bigdata2上的/bin下载到本地并改名为bin.bak
scp -r root@bigdata2:/home/bin ./bin.bak

2. 安装jdk

  1. 官网下载
  2. 解压

sudo tar -zxvf 名字 -C 移动到哪里目录

  1. 配置环境变量
export JAVA_HOME=
export JRE_HOME=${JAVA_HOME}/JRE
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
: 表示分隔符,再原来的基础智商增加这些东西
  1. 让变量生效
    source ~/.bashrc
  2. 产看是否安装成功java -version

3.安装Hadoop

  1. 下载

  2. 解压安装包

    tar -zxvf
    
    最好解压到某一个urs/
    
  3. 配置环境变量
    将下面的代码添加到/.bashrc里面

export HADOOP_HOME=/usr/local/hadoop
export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"

  1. 执行source ~/.bashrc
  2. 查看hadoop是否安装成功hadoop version

二、配置

  1. 在hadoop中配置jdk路径
    /usr/local/hadoop/etc/hadoop/中修改使用gedit hadoop-env.sh增加这一行
export JAVA_HOME=/usr/lib/jvm/java
  1. 配置核心组件

    1. 配置core-site.xml
    <configuration>
            <property>
                 <name>hadoop.tmp.dirname>
                 <value>file:/usr/local/hadoop/tmpvalue> 
                 <description>Abase for other temporary directories.供其他临时文件夹的使用description>
            property>
            <property>
                 <name>fs.defaultFSname>
                 <value>hdfs://localhost:9000value>
            property>
    configuration>
    
    
    
    不知道第一个value这个值是对是错,对于书上的来说,是使用的/home/用户名/hadoopdata这个文件或者文件夹。这个好像是使用的文件,并且是使用的绝对路径上的文件,所以可能会有点错误。
    
    
    1. 修改hdfs-site.xml文件

      <configuration>
              <property>
                   <name>dfs.replicationname>
                   <value>1value>
              property>
              <property>
                   <name>dfs.namenode.name.dirname>
                   <value>file:/usr/local/hadoop/tmp/dfs/namevalue>
              property>
              <property>
                   <name>dfs.datanode.data.dirname>
                   <value>file:/usr/local/hadoop/tmp/dfs/datavalue>
              property>
      configuration>
      第一个配置是配饰dfs的副本数量,最高为三,如果不设置,那么默认也是3.
      另外两个配置了名字结点和数据结点的存储位置。
      
      
  2. 配置NodeName格式化

    ./bin/hdfs namenode -format   # 重新格式化 NameNode
    
  3. 启动nameNode和dataNode进程,并且查看结果
    如果上面已经可以访问就不用执行下面的

    ./sbin/start-dfs.sh              
    ./sbin/start-all.sh
    
    # 7. 上面的那句不行,就执行下面的
    
  4. 查看结果

    使用jps命令产看是否已经启动了SecondaryNameNode结点,NameNode结点DataNode结点。
    如果已经启动完成了使用localhost:9870进行访问
    二点几的版本的使用50070端口进行访问
    
  5. 关闭进程

    ./sbin/stop-dfs.sh   # 关闭
    
  6. 如果出现启动不了的情况

    • 情况1:Call From ubuntu/127.0.1.1 to localhost:9000 failed on connection exception
    #针对 DataNode 没法启动的解决方法
    cd /usr/local/hadoop
    ./sbin/stop-dfs.sh   # 关闭
    rm -r ./tmp     # 删除 tmp 文件,注意这会删除 HDFS 中原有的所有数据
    ./bin/hdfs namenode -format   # 重新格式化 NameNode
    ./sbin/start-dfs.sh  # 重启
    
    • 情况2: Attempting to operate on hdfs namenode as root的解决方法
      进入在/etc/profile文件中加入下面内容。注意把root修改成自己用户名。
    export HDFS_NAMENODE_USER=root
    export HDFS_DATANODE_USER=root
    export HDFS_SECONDARYNAMENODE_USER=root
    export YARN_RESOURCEMANAGER_USER=root
    export YARN_NODEMANAGER_USER=root
    

到此已经可以运行伪集群环境了。就是说文件节点和数据结点都在一个服务器上面的集群环境。下面的配置是为了多机配置而进行的。

三、其他配置

  1. 配置文件系统

  2. 配置yarn site.xml文件

  3. 配置mapreduce计算框架

  4. 配置master中的workers

四、出现的问题

  1. ~ 代表用户的根目录,就是说用户的文件夹。Linux是多用户的。每一个用户都有自己的文件夹。

  2. /mnt/hgfs文件夹是共享文件夹,使用虚拟机中

    如果想要永久挂载使用.host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other,defaults 0 0
    放到/etc/fstab文件中。

  3. 直接拖拽不可以上传Hadoop, 需要使用共享文件夹,或者XShell这种进行操作

  4. 共享文件夹创建失败

  5. 首先手动创建

  6. 进行挂载子文件夹

vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other
  1. vmware-tools的安装

    1. 打开虚拟机的设置找到CD/DVD的设置
    2. 将这个DVD指向VMware安装路径下的linux.ios文件
    3. 重启虚拟机,会发现有一个CD/DVD的光盘
    4. 吧VMware tools拷贝到自己的虚拟机上,解压,执行 ./vmware-install-distrib
  2. 出现invalid HADOOP_HDFS_HOME还有ivalid HADOOP_YARN_HOME以及HADOOP_COMMON_HOME
    应该是java的版本问题。

  3. 配置ssh的时候出出现password这种。

    编辑vi /etc/ssh/sshd_config文件然后修改成yes,注意**修改访问的电脑,不是被访问的。**保险起见,都修改

    PermitRootLogin yes
    

    或者是防火墙的问题

  4. 出现了hadoop启动namenode失败,但是不报错的情况,请看参考文章hadoop无法启动

五 参考文章

  1. 永久挂载
  2. hadoop无法启动

你可能感兴趣的:(环境的配置与软件的使用,操作系统,大数据,linux)