Hadoop部署和简单使用

一.部署

1.     安装jdk并配置环境变量

将jdk下载到根目录下:wget地址 

解压:tar -zxvf  jdk-8u172-linux-x64.tar.gz

配置环境变量:vim/etc/profile

#set java environment

export JAVA_HOME=/jdk1.8.0_172

export JAVA_BIN=/jdk1.8.0_172/bin

export PATH=$PATH:$JAVA_HOME/bin

exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME JAVA_BIN PATH CLASSPATH

生效:source/etc/profile

Java –version

(备注:oracle官方下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

 

2.      建立hadoop用户和配置ssh

adduserhadoop

passwdhadoop

su -hadoop                                 #一定切换到hadoop用户下
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys

sshlocalhost

Exit       #退出的是ssh,不是hadoop用户,后面所有操作仍然在hadoop用户下

备注:第2步之后所有操作在hadoop用户下进行

3.     下载hadoop-3.1.0包到hadoop家目录下即 /home/hadoop

cd  ~

wget 地址
tar xzf hadoop-3.1.0.tar.gz
mv hadoop-3.1.0 hadoop

(备注:电脑里有软件包可直接上传)

4.     配置hadoop环境变量

1)配置.bashrc

cd   ~

vi   .bashrc

   添加如下内容:   

   export HADOOP_HOME=/home/hadoop/hadoop

   export HADOOP_INSTALL=$HADOOP_HOME

   export HADOOP_MAPRED_HOME=$HADOOP_HOME

   export HADOOP_COMMON_HOME=$HADOOP_HOME

   export HADOOP_HDFS_HOME=$HADOOP_HOME

   export YARN_HOME=$HADOOP_HOME

   exportHADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

   export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

生效:source~/.bashrc      #启动

2)配置hadoop-env.sh添加JAVA路径

   cd $HADOOP_HOME/etc/hadoop  

($HADOOP_HOME即:/home/hadoop/hadoop)

   vi hadoop-env.sh

        添加

        export JAVA_HOME=/jdk1.8.0_172

5.     设置hadoop配置文件

cd $HADOOP_HOME/etc/hadoop/etc/Hadoop

1) 配置core-site.xml

vi core-site.xml

添加:

<configuration>

<property>

  <name>fs.default.name</name>

   <value>hdfs://localhost:9000</value>

</property>

</configuration>

 

2) 配置 hdfs-site.xml

<configuration>

<property>

 <name>dfs.replication</name>

 <value>1</value>

</property>

 

<property>

  <name>dfs.name.dir</name>

   <value>file:///home/hadoop/hadoopdata/hdfs/namenode</value>

</property>

 

<property>

  <name>dfs.data.dir</name>

    <value>file:///home/hadoop/hadoopdata/hdfs/datanode</value>

</property>

</configuration>

 

3) 配置 mapred-site.xml

<configuration>

 <property>

 <name>mapreduce.framework.name</name>

   <value>yarn</value>

 </property>

</configuration>

 

4) 配置 yarn-site.xml

<configuration>

 <property>

  <name>yarn.nodemanager.aux-services</name>

   <value>mapreduce_shuffle</value>

 </property>

</configuration>

 

6.     格式化hadoop

cd ~

hdfs namenode -format

7.     启动hadoop

cd ~/Hadoop/sbin

./start-dfs.sh

./start-yarn.sh

8.     UI登录hadoop

URL:     Ip:9870                   #记得一定打开服务器的9870端口

 

 

二.简单操作

1.     在HDFS中创建目录

$path/name  #在path路径下创建目录name

          如:hdfs dfs –mkdir/test  #在根目录下创建了test目录

2.     放文件到HDFS

$ hdfs dfs –put file1 path1    #当前路径下的file1 放入HDFS路径path1中

                  如:$ hdfs dfs -put jdk-8u172-linux-x64.tar.gz/test1 #将当前路径下的jdk文件放入HDFS的/test1路径下

$ hdfs dfs-copyFromLocal path1/file path2   #path1路径下file放入HDFS的path2下

                  如:hdfs dfs-copyFromLocal /jdk1.8.0_172/ /   #将根目录下的jdk文件放入HDFS的根路径下

 

3.     List出HDFS中的内容

$ hdfs dfs –ls path  #将HDFS中path路径中内容列出

$ hdfs dfs –ls –R path #将HDFS中path路径中内容递归列出

4.     从HDFS下载

$ hdfs dfs –get path/file  #将HDFS中path路径下file下载到当前路径

hadoop命令大全http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html#FS+Shell

参考文献:

https://tecadmin.net/setup-hadoop-single-node-cluster-on-centos-redhat/

https://tecadmin.net/hadoop-commands-to-manage-files-on-hdfs/

 

三、填坑

创建目录时报错:

实际上这里面有两个错误:

1.util.NativeCodeLoader: Unable to load native-hadoopm... using builtin-java classes where applicable

解决方法:在log4j日志中去除告警信息

         vi hadoop/etc/hadoop/log4j.properties

添加:log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR

2.Name node is in safe mode

分析:分布式文件系统启动时会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。在实践过程中,系统启动的时候去修改和删除文件也会有安全模式不允许修改的出错提示,只需要等待一会儿即可。可以通过命令离开安全模式。

解决方法:hdfs dfsadmin –safemode leave

         安全模式说明:hdfs dfsadmin –safemode value

value:

enter - 进入安全模式
leave - 强制NameNode离开安全模式
get - 返回安全模式是否开启的信息
wait - 等待,一直到安全模式结束。

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值