读书人

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

发布时间: 2012-11-05 09:35:12 作者: rapoo

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密钥。
??? 未完,待续。。。

读书人网 >其他相关

热点推荐