传智播客Hadoop-学习笔记-20141015

/**************************************************************/
Apache 1.1.2 
Cloudera   //hadoop 一款商业 版本
Yahoo
/**************************************************************/
安装前准备软件
vitualBox
rhel-server-6.3-i386-dvd.iso
jdk-6u24-linux-xxx.bin
hadoop-1.1.2.tar.gz
伪分布模式安装步骤
  • 关闭防火墙
  • 修改 ip
  • 修改 hostname
  • 设置 ssh 自动登录
  • 安装 jdk
  • 安装 hadoop
 
安装目录 /usr/local/hadoop
/**************************************************************/
常用 linux 命令
解压缩文件 tar -xzvf xxx
修改密码 passwd xxx
查看磁盘空间 df -ah
查看进程 ps -ef | grep
杀掉进程 kill -9
修改环境变量 vi /etc/profile
修改主机名    vi /etc/sysconfig/network
HOSTNAME=hadoop-master
                    vi /etc/hosts
#hadoop2.x
192.168.1.130   hadoop-yarn        hadoop-yarn.dragon.org
192.168.1.131   hadoop-master    hadoop-master
192.168.1.132   hadoop-slave01      hadoop-slave01
192.168.1.133   hadoop-slave 02      hadoop-slave02
修改ip地址    vi /etc/sysconfig/network-scripts/ifcfg-eth0
关闭防火墙   service iptables stop
                    chkconfig iptables off
查看防火墙状态  service iptables status
关闭selinux  setenforce permissive  修改/etc/selinx/config
SELINUX=disabled
service network restart
hostname  查看主机名
hostname hadoop //更改主机名 仅对当前终端有效
更改主机名hostname 重启有效  vi /etc/sysconfig/network 
reboot -h now
vi /etc/hosts  //把hostname和ip绑定
chkconfig --list 查看开机启动项
chkconfig --list | grep iptables
 
/**************************************************************/
SSH免密码登录
[root@hadoop ~]# cd ~
[root@hadoop ~]# pwd
/root
[root@hadoop ~]# cd ~/.ssh/
[root@hadoop .ssh]# pwd
/root/.ssh
[root@hadoop .ssh]# ssh-keygen -t rsa  产生密钥
[root@hadoop .ssh]# cp ~/.ssh/id_rsa.pub  ~/.ssh/authorized_keys  #权限设为644
 
验证:
[root@hadoop .ssh]# ssh localhost
SSH 登录失败:Host key verification failed
解决方法是:
1. 删除提示信息中,对应的行数,例如上例,需要删除/home/cobyeah/.ssh/known_hosts文件的第7行。
 
2. 删除整份/home/cobyeah/.ssh/known_hosts文件。
 
3. 修改/etc/ssh/ssh_config文件的配置,以后则不会再出现此问题
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
安装jdk:
[root@hadoop .ssh]#rm -rf /usr/local/*
拷贝文件到/usr/local 下
[root@hadoop local]#  chmod u+x jdk-6u24-linux-i586.bin
[root@hadoop local]# mv jdk-6u24-linux-i586.bin jdk
[root@hadoop local]# vi /etc/profile  //设置环境变量,这个可以在安装hadoop后再操作
          添加:
          export JAVA_HOME=/usr/local/jdk
          export HADOOP_HOME=/usr/local/hadoop
          export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
 
[root@hadoop local]#  source  /etc/profile 使设置生效
 
 
/**************************************************************/
安装hadoop:
[root@hadoop local]# tar -zxvf hadoop-1.1.2.tar.gz
[root@hadoop local]# mv hadoop-1.1.2 hadoop
[root@hadoop local]# vi /etc/profile
          添加:
          export JAVA_HOME=/usr/local/jdk
          export HADOOP_HOME=/usr/local/hadoop
          export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
 
[root@hadoop local]#  source  /etc/profile 使设置生效
/**************************************************************/
配置hadoop:
修改hadoop配置文件
1.hadoop-env.sh
export JAVA_HOME=/usr/local/jdk/
 
2.core-site.xml   #指定NameNode主机名与端口号
<configuration>
     <property>
        <name>fs.default.name</name>
        <value>hdfs:// hadoop:9000 </value>
        <description> change your own hostname </description>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>
    </property> 
</configuration>
3.hdfs-site.xml  
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
</configuration>
 
4.mapred-site.xml   #指定JobTracker主机名与端口号
<configuration>
    <property>
        <name>mapred.job.tracker</name>
        <value> hadoop:9001 </value>
        <description>change your own hostname</description>
    </property>
</configuration>
 
5. 配置文件masters    #指定SencondaryNameNode的位置
     hadoop-master.dragon.org
   配置文件slaves    #指定DataNode和TaskTracker的位置
     hadoop-master.dragon.org
 
/**************************************************************/
启动 hadoop
[root@hadoop local]#  hadoop namenode -format  //配置完成后 格式化 (多次格式化hadoop是错误的,需要先删除/usr/local/hadoop/tmp 文件夹,再重新格式化)
[root@hadoop local]# cd hadoop/bin/
[root@hadoop bin ]#  ./start-all.sh   //stop-all.sh 关闭
[root@hadoop bin ]#  jps  //查看java进程
浏览 hadoop
http://hadoop:50070/dfshealth.jsp
http://hadoop:50030/jobtracker.jsp
/**************************************************************/ 
去除hadoop启动警告
vi /etc/profile
export HADOOP_HOME_WARN_SUPPRESS=1 
source  /etc/profile
/**************************************************************/
HDFS fs命令
-help [cmd]     //显示命令的帮助信息
-ls(r) <path>     //显示当前目录下所有文件 r表示递归显示
-du(s) <path>     //显示目录中所有文件大小
-count[-q] <path>     //显示目录中文件数量
-mv <src> <dst>     //移动多个文件到目标目录
-cp <src> <dst>     //复制多个文件到目标目录
-rm(r)          //删除文件(夹)
-put <localsrc> <dst>     //本地文件复制到hdfs
-copyFromLocal     //同put
-moveFromLocal     //从本地文件移动到hdfs
-get [-ignoreCrc] <src> <localdst>     //复制文件到本地,可以忽略crc校验
-getmerge <src> <localdst>          //将源目录中的所有文件排序合并到一个文件中
-cat <src>     //在终端显示文件内容
-text <src>     //在终端显示文件内容
-copyToLocal [-ignoreCrc] <src> <localdst>     //复制到本地
-moveToLocal <src> <localdst>
-mkdir <path>     //创建文件夹
-touchz <path>     //创建一个空文件
/**************************************************************/
HDFS的Shell命令练习
#hadoop fs -ls /  查看HDFS根目录
#hadoop fs -mkdir /test 在根目录创建一个目录test
#hadoop fs -mkdir /test1 在根目录创建一个目录test1
#echo -e 'hadoop second lesson' >test.txt
#hadoop fs -put ./test.txt /test
或#hadoop fs -copyFromLocal ./test.txt /test
#cd ..
#hadoop fs -get /test/test.txt .
或#hadoop fs -getToLocal /test/test.txt .
#hadoop fs -cp /test/test.txt /test1
#hadoop fs -rm /test1/test.txt
#hadoop fs -mv /test/test.txt /test1
#hadoop fs -rmr /test1 
/**************************************************************/
package hdfs;
 
import java.io.InputStream;
import java.net.URL;
import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
import org.apache.hadoop.io.IOUtils;
 
public class App1 {
       //http://hadoop:50075/browseDirectory.jsp?dir=/
       public static final String HDFS_PATH = "hdfs://hadoop:9000/hello";
       public static void main(String[] args) throws Exception {
             //下载文件方法一:
            URL. setURLStreamHandlerFactory( new FsUrlStreamHandlerFactory());
             final URL url = new URL( HDFS_PATH);
             final InputStream in = url.openStream();
            IOUtils. copyBytes( in, System. out, 1024, true);
      }
}
/**************************************************************/
package hdfs;
 
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
 
public class App2 {
       public static final String HDFS_PATH = "hdfs://hadoop:9000";
       public static final String DIR_PATH = "/d1000";
       public static final String FILE_PATH = "/d1000/f1000";
       public static void main(String[] args) throws Exception {
             final FileSystem fileSystem = FileSystem. get ( new URI( HDFS_PATH ), new Configuration());
             //创建文件夹
             //makeDirectory(fileSystem);
             //上传文件
             //uploadData(fileSystem);
            
             //下载文件
             //downloadData(fileSystem);
             //删除文件(夹)
             fileSystem.delete( new Path( FILE_PATH), true);
      }
       private static void makeDirectory( final FileSystem fileSystem ) throws IOException {
             fileSystem.mkdirs( new Path( DIR_PATH));
      }
       private static void uploadData( final FileSystem fileSystem ) throws IOException, FileNotFoundException {
             final FSDataOutputStream out = fileSystem.create( new Path( FILE_PATH ));
             final FileInputStream in = new FileInputStream( "G:/0.Hadoop/3.itcast--OK/传智播客hadoop课堂工具和笔记/hadoop课程全部软件/下载必看.txt" );
            IOUtils. copyBytes( in, out,1024, true);
      }
       private static void downloadData( final FileSystem fileSystem ) throws IOException, FileNotFoundException {
             final FSDataInputStream in = fileSystem.open( new Path( FILE_PATH ));
            IOUtils. copyBytes( in, System. out, 1024, true);
      }
 
}
/**************************************************************/
 
 
 
 
发布了31 篇原创文章 · 获赞 13 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/my_flash/article/details/104557790