ubuntu 10.10上hadoop的配置(完整版)

1、先装jdk。
    把jdk-6u23-linux-i586.bin 拷到某个目录下,如:/usr/local/jdk目录下面
    //运行bin,安装jdk(注意,安装时可能会提示权限不够,那是因为还没有执行权限,用chmod u+x,回车)
    ./jdk-6u23-linux-i586.bin
   
    //更改环境变量
    sudo gedit /etc/profile
加入如下内容:
export JAVA_HOME=/usr/local/jdk/jdk1.6.0_23
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH

    //更新
    source /etc/profile

    //用java和javac来测试一下是否已经安装配置成功了。

2、装完jdk后,把eclipse解压出来,重启一下电脑就可以运 行里面的eclipse主程序了。

3、可以用ailurus软件来安装 openJDK,这种方式装完之后可以不 配置环境。

4、增加一个hadoop用户组和一个hadoop用户
    sudo addgroup hadoop (增加一个新用户组)
    sudo adduser --ingroup hadoop hadoop (增加一个新用户到hadoop用户组中)
    su (切换到root用户)
    ls -l /etc/sudoers (这一步如果出问题的话,可以用如下的方法解决:
Ctrl+alt+F1进入到全命令窗口,用root用户登陆(如果登陆不了,可以用sudo passwd root这命令来为root用户添加/修改 登陆密码),运行chown 0440 /etc/sudoers,然后再按Ctrl+alt+F7返回)

5、chmod u+w /etc/sudoers
修改sudoers的权限,增加读权限
    ls -l /etc/sudoers(查看suoders的权限)
    gedit /etc/sudoers
在 root ALL=(ALL) ALL 后面添加:hadoop ALL=(ALL) ALL
    恢复sudoers的权限chmod u-w /etc/sudoers
    exit(退出root)

6、安装 openssh-server:
    sudo apt-get install openssh-server

   
7、建立 SSH KEY:
    su hadoop
    ssh-keygen -t rsa -P ""

8、启用 SSH KEY:
    cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

9、更新一下:
    sudo /etc/init.d/ssh reload
    (这里面如果出问题的话,切换到root用户,然后在terminate里面用su hadoop进入hadoop用户再执行这条语句)

10、验 证 SSH 的配置:
    ssh localhost(结果大致如下:)
The authenticity of host 'localhost (::1)' can't be established.
RSA key fingerprint is 52:9b:e2:62:93:01:88:e6:46:a8:16:68:52:91:8a:ea.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
……

11、安装配置 hadoop
    解压hadoop包,放到某个目录下,如usr/local/hadoop里面(就是说可以用/usr/local/hadoop/bin来访问里面的bin目录),把他的权限赋给hadoop用户。sudo chown -R hadoop:hadoop hadoop
    sudo gedit /usr/local/hadoop/conf/hadoop-env.sh
如果打不开,那么直接到/usr/local/hadoop/conf/目录下去找。打开后,在里面添加JAVA_HOME环境变量,如下:
    export JAVA_HOME=/usr/local/jdk/jdk1.6.0_23

12、sudo gedit conf/core-site.xml(同样的,打不开也可以到相应的目录下去找)
    在<configuration></configuration>里面添加下面的语句:
    <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:9000</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/tmp</value>
    </property>

13、sudo gedit conf/mapred-site.xml(同样的,打不开也可以到相应的目录下去找)
    在<configuration></configuration>里面添加下面的语句:
    <property>
        <name>mapred.job.tracker</name>
        <value>localhost:9001</value>
    </property>

14、格式化 namenode
    bin/hadoop namenode -format
(这边如果出问题的话,一般有下面几种情况:
(1)请进入到你安装hadoop的目录下:cd /usr/local/hadoop
(2)切换一下其它用户再试试。)

15、启动 命令:
    bin/start-all.sh
    (如果想关掉的话,用bin/stop-all.sh)
(这边出问题的话,可以试着用上面说到的方法试试)

16、验证hadoop是否启动成功了
    jps
    这个命令是用来查看当前的JVM运行了哪几个任务
    如果hadoop安装成功 并且启动成功的话,会出现下面几个任务
    6605 TaskTracker
    6707 Jps
    6447 JobTracker
    6385 SecondaryNameNode
    6109 NameNode

(其实到这里hadoop还没装完,为了下一节的操作,这里还得再配置一下hadoop_home,如下,在/etc/profile文件里面加上下面两句话:

export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$PATH

第一句用来添加$HADOOP_HOME变量,第二句是用来把$HADOOP_HOME变量加到$PATH中去。


17、跑几个例子
    bin/hadoop dfs -mkdir test-in(创建文件夹,其中,bin/hadoop是一个可执行的文件,dfs可能是第一个参数,-mkdir这是第二个参数,这里的命令和 linux下的一些命令相同,有一个不同的是删除文件:-rmr,而linux命令是:rmdir)

    下面,先建两个文件,等会儿用(请先进入到hadoop根目录下):
    echo "hello hadoop,this is lingyibin"> testFile1.txt(创建了一个文件,并往里面写入了一些测试数据)
    echo "this is the world of lingyibin.wellcome hadoop." > testFile2.txt
   
    然后把这两个文件拷到test-in里面(其实可以直接把这两个测试文件建在test-in里面,这里只是为了让大家熟悉-copyFromLocal这个参数)
    bin/hadoop dfs -copyFromLocal /testFile1.txt test-in
    bin/hadoop dfs -copyFromLocal /testFile2.txt test-in
export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
    用下面这个命令查看一下是否已经拷进入了。
    bin/hadoop dfs -ls test-in
   
    查看测试文件里面的内容
    bin/hadoop dfs -cat test-in/test_file1.txt
    bin/hadoop dfs -cat test-in/test_file*.txt

    创建一个文件夹
    bin/hadoop dfs -mkdir test-in2
    查看一下是否在
    bin/hadoop dfs -ls
    把它删除
    bin/hadoop dfs -rmr test-in2
    查看一下是否真删除了
    bin/hadoop dfs -ls
(上面这段命令只是为了让大家熟悉创建文件夹和删除文件夹的操作)

18、运行hadoop里面自带的例子,wordcount
    bin/hadoop jar hadoop-mapred-examples-0.21.0.jar wordcount test-in test-out(计算)
    bin/hadoop dfs -cat test-out/part*(查看结果)
这时会看到它把刚刚创建的两个文件里面单词出现的频率给统计出来了。

    运行第二个例子 grep,就是根据一个正则表达式来查找多个文件里面符合特定条件的一个字符串。
    bin/hadoop dfs -copyFromLocal conf/*.xml input(先拷)
    bin/hadoop jar hadoop-*-examples*.jar grep input output 'dfs[a-z.]+'
    bin/hadoop dfs -cat output/part*(查看结果)

    上面的操作有什么用呢?大家可能都能看懂上面的命令,但为什么要这么做,可能就有点迷茫了。
    其实hadoop操作的文件和文件夹是看不见的,就是说,你在本地任何目录里面都看不到用bin/hadoop dfs命令创建的文件或文件夹,那些都在云端(其实本次测试中确实只在本地,只是hadoop用自己的方式把它隐藏了),之后连接多台电脑时,就是一个真 正的小云朵了。这时的文件就真在云端了。
    我们可以用下面的操作把云端的文件取回本地:
    bin/hadoop dfs -get output output
    查看一下:
    cat output/par*
    结果和刚才的结果是一样的。

19、联机操作
    先配置一下:
    sudo gedit /etc/hosts
    在里面添加几行数据
    192.168.1.133 master(保证一个主机名对应一个 IP,这里192.168.1.133是本机地址,根据实际情况来改,下面的ip地址也是根据实际情况来定的。)
    192.168.1.144 slave1
    192.168.1.22 slave2
    192.168.1.158 slave3
    这之后就可以用master来代表本地主机了。slave1,slave2,slave3来代表其它结点

    可以先用本机直接连接其它装了ssh的机子:
    ssh hadoop@slave1
    然后再输入slave1的hadoop用户的密码就可以了
    这时终端会切换到slave1的hadoop用户,这时可以用命令行为所欲为了。
    比如:ls列出根目录里面的文件,进入桌面:cd 桌面,mkdir lingyibin。这时slave1的hadoop用户就会在桌面上创建一个lingyibin的文件夹了。rmdir lingyibin,这时就会把它删除了。

    接着,如果不想用密码登陆到slave 怎么办?用里面的rsa密钥。
    未完,待续。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值