Hadoop

通用命令

hdfs dfs -get /user




单击安装, 主要使用Hdfs

1, 创建新文件夹

mkdir -p /data/hadoop/hdfs/tmp /data/hadoop/hdfs/data /data/hadoop/hdfs/name

2, 打通ssh

cd 
cd .ssh
ssh-keygen -t rsa

添加ssh登录
方式1: 
      ssh-copy-id hadoop001    
      具体看你自己想使用那个登录服务器, 可以是localhost也可以是ip
方式2: 
      cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
      chmod 600  ~/.ssh/id_rsa.pub

测试
  ssh hadoop001
  ssh localhost

3, 卸载系统自带的JDK, 使用自己的JDK

tar -xvf jdk8.tar.gz   // 自己下载即可
vim /etc/profile

profile追加以下内容
export JAVA_HOME=/data/jdk8
export PATH=$JAVA_HOME/bin:$PATH

export HADOOP_HOME=/data/hadoop/hadoop-3.3.1
export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin

测试
java -version 看看是不是你的jdk版本

3.1 配置用户环境变量, 选择性配置

cd
vim .bash_profile 

追加如下内容
export PATH
export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin
export JAVA_HOME=/data/jdk8
export HADOOP_HOME=/data/hadoop/hadoop-3.3.1
export HDFS_NAMENODE_USER=hdfs
export HDFS_DATANODE_USER=hdfs
export HDFS_SECONDARYNAMENODE_USER=hdfs
export YARN_RESOURCEMANAGER_USER=hdfs
export YARN_NODEMANAGER_USER=hdfs

4, 开始部署hadoop,

本次只使用hdfs, 其主要有以下配置文件, 位置在于hadoop的根目录下的etc/hadoop/下文件夹

  • hadoop-env.sh
  • core-site.xml
  • hdfs-site.xml
hadoop-env.sh

export JAVA_HOME=/data/jdk8
export HADOOP_HOME=/data/hadoop/hadoop-3.3.1
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


core-site.xml
<configuration>

    <!-- 指定 NameNode 的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>

    <!-- 指定 hadoop 数据的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/data/hadoop/hdfs/tmp</value>
    </property>

</configuration>


hdfs-site.xml
<configuration>

    <property>
        <name>dfs.replication</name>  
        <value>1</value>
    </property>  

    <property>
        <name>dfs.namenode.name.dir</name>  
        <value>/data/hadoop/hdfs/name</value>  
        <final>true</final>
    </property>  

    <property>
        <name>dfs.datanode.data.dir</name>  
        <value>/data/hadoop/hdfs/data</value>  
        <final>true</final>
    </property>  
      以下内容选择性配置
    <property>
        <name>dfs.http.address</name>
        <value>0.0.0.0:50070</value>
    </property>

    <property>
        <name>dfs.permissions</name>  
        <value>false</value>
    </property>

</configuration>

5, 剩余配置文件可按需调整


mapre-site.xml

<configuration>

    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

</configuration>


yarn-site.xml
<configuration>

    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

</configuration>

6, 启动

可以直接使用sbin/start-all.sh启动
也可以单独只启动hdfs, sbin/start-dfs.sh

测试
hdfs dfs -ls /
hdfs dfs -mkdir /user
只要没有error信息就代表成功
或者直接访问 IP:50070 查看hdfs的可视化界面

7, 问题

  • 如果hadoop正常启动, 但是hdfs的datanode或者namenode无法启动, 执行hdfs命令一直提示无法连接localhost:9000等信息, 说明hdfs的配置有问题
    解决:
    1, 查看core-site.xml的配置, 看看里边配置的fs的ip或者hostname, 是否已经打通了ssh,
    2, 查看hdfs-site.xml的dfs.http.address是否打开
    3, 查看防火墙状态
    4, 重置hdfs, 执行如下命令
    cd hadoop根路径/bin
    ./hdfs namenode -format
    cd ..
    sbin/star-dfs.sh
    
    或者可以直接试试  hdfs namenode -format, 我没试
    

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容