安装JDK 7.xx或者JDK 6.xxx
先从网站上下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
CentOS安装可以直接使用:JDK.rpm。例如:jdk-7u45-linux-x64.rpm
Ubuntu安装可以使用:JDK.tar.gz。例如:jdk-7u45-linux-x64.tar.gz
配置JAVA_HOME
exportJAVA_HOME='/usr/java/jdk1.7.0_45/'
配置用户组和用户
# sudogroupadd hadoop
#sudo useradd -n -m hduser -g hadoop #创建用户hduser,但是不创建可登陆用户
安排SSH服务并验证
#yuminstall ssh
执行$netstat -nat 查看22端口是否开启了。
测试:ssh localhost。
输入当前用户的密码,回车就ok了。说明安装成功,同时ssh登录需要密码。
(这种默认安装方式完后,默认配置文件是在/etc/ssh/目录下。sshd配置文件是:/etc/ssh/sshd_config):
参考文档:<http://blog.youkuaiyun.com/hguisu/article/details/7237395>
配置ssh用于Hadoop的管理
创建hduser的公钥和私钥
#ssh-keygen -t rsa -P ""
保存公钥到认证信息处
#cat /home/hduser/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
或者
#ssh-copy-id -i ~/.ssh/id_rsa.pub hduser@localhost
建议使用第二种。
验证hadoop的密码是否正确
#ssh localhost
注意:如果出现错误使用ssh-vvv localhost来诊断相关配置
注意:当不能无密码登录ssh的是有,查看authorized_keys的权限。
他的权限必须是600.命令:chmod 600 authorized_keys
注意:如果还不能解决问题,请吧SELinux关闭。
配置Hadoop的相关信息
配置hadoop环境变量
exportHADOOP_HOME=/usr/local/chd4.4/hadoop-2.0.0-cdh4.4.0
exportHADOOP_MAPERD_HOME=/usr/local/chd4.4/hadoop-2.0.0-cdh4.4.0
exportHADOOP_COMMON_HOME=/usr/local/chd4.4/hadoop-2.0.0-cdh4.4.0
exportHADOOP_HDFS=/usr/local/chd4.4/hadoop-2.0.0-cdh4.4.0
exportYARN_HOME=/usr/local/chd4.4/hadoop-2.0.0-cdh4.4.0
exportHADOOP_CONF_DIR=/usr/local/chd4.4/hadoop-2.0.0-cdh4.4.0/etc/hadoop
配置Hadoop的数据存储区域
cd /var
sudo mkdir chd4.4
sudo mkdir yarn_data
sudo mkdiryarn_data/hdfs
sudo mkdir yarn_data/hdfs/namenode #名字存储区域
sudo mkdir yarn_data/hdfs/datanode #数据存储区域
配置etc文件数据
cd $YARN_HOME
cd etc/hadoop
#我要修改必要的文件了
#第一个文件:yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce.shuffle</value>
<!-- 很多的配置都是mapreduce_shuffle,如果配置是这样的话,下面的配置,必须修改为
yarn.nodemanager.aux-services.mapreduce_shuffle.class
-->
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
#第二个文件:core-site.xml
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
#第三个文件:hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/var/chd4.4/yarn_data/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/var/chd4.4/yarn_data/hdfs/datanode</value>
</property>
#第四个配置文件:mapred-site.xml
注意:需要自己copy一个mapred-site.xml从mapred-site-template.xml中。
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
格式化hadoop文件
注意:现在hadoop命令不推荐使用hadoop -format,将这个功能交给了hdfs
bin/hdfs namenode-format
输出内容截屏:
13/12/07 22:28:43 INFOnamenode.NNStorage: Storage directory /var/chd4.4/yarn_data/hdfs/namenode hasbeen successfully formatted.
13/12/07 22:28:43 INFOnamenode.FSImage: Saving image file/var/chd4.4/yarn_data/hdfs/namenode/current/fsimage.ckpt_0000000000000000000using no compression
13/12/07 22:28:43 INFOnamenode.FSImage: Image file of size 121 saved in 0 seconds.
13/12/07 22:28:43 INFOnamenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
13/12/07 22:28:43 INFOutil.ExitUtil: Exiting with status 0
13/12/07 22:28:43 INFOnamenode.NameNode: SHUTDOWN_MSG:
启动Hadoop
步骤 | 操作内容 | 命令 |
步骤1 | 启动Hdfs。 HDFS主要分为两部分: namenode服务和datanode服务。
服务领域: Hadoop-daemon
| sbin/hadoop-daemon.sh start namenode sbin/hadoop-daemon.sh start datanode |
步骤2 | 启动yarn。
|
|
请大家注意启动的顺序
先启动hdfs的namenode服务
sbin/hadoop-daemon.shstart namenode
#注意:判断服务是否启动
/usr/java/jdk1.7.0_45/bin/jps
8448 Jps
8382 NameNode
然后启动hdfs的datanode服务
sbin/hadoop-daemon.shstart datanode
#注意:判断服务是否启动
/usr/java/jdk1.7.0_45/bin/jps
8567 Jps
8382 NameNode
8492 DataNode
启动MapReduce的资源管理器
sbin/yarn-daemon.shstart resourcemanager
#注意:判断服务是否启动
/usr/java/jdk1.7.0_45/bin/jps
8382 NameNode
8825 Jps
8492 DataNode
8613 ResourceManager
启动MapReduce的节点管理器
sbin/yarn-daemon.shstart nodemanager
#注意:判断服务是否启动
/usr/java/jdk1.7.0_45/bin/jps
9149 NodeManager
9247 Jps
8382 NameNode
8492 DataNode
8613 ResourceManager
最后启动MapReduce的JobHistoryServer
sbin/mr-jobhistory-daemon.shstart historyserver
#注意:判断服务是否启动
/usr/java/jdk1.7.0_45/bin/jps
9149 NodeManager
8382 NameNode
9302JobHistoryServer
9359 Jps
8492 DataNode
8613 ResourceManager
测试Hadoop配置信息
#构建测试的文档
mkdir in
cat in/file
geewu is fat man
kk is fat man
bug is thin woman
测试Hadoop应用
bin/hdfs dfs-copyFromLocal in /in
bin/hdfs dfs -ls /in
13/12/07 23:24:11WARN util.NativeCodeLoader: Unable to load native-hadoop library for yourplatform... using builtin-java classes where applicable
Found 2 items
-rw-r--r-- 1 hduser supergroup 49 2013-12-07 23:22 /in/file
drwxr-xr-x - hduser supergroup 0 2013-12-07 23:22 /in/in
注意:警告信息可以参考《YARN加载本地库抛出Unable to load native-hadoop library解决办法》解决
运行测试命令
bin/hadoop jarshare/hadoop/mapreduce/hadoop-mapreduce-examples-2.0.0-cdh4.4.0.jar wordcount/in /out
bin/hdfs dfs -cat/out/_temporary/1/task_1386484855558_0001_r_000000/part-r-00000
13/12/07 23:34:30 WARNutil.NativeCodeLoader: Unable to load native-hadoop library for yourplatform... using builtin-java classes where applicable
bug 1
fat 2
geewu 1
is 3
kk 1
man 2
thin 1
woman 1
通过web接口查看状态
DataNode的状态:http://localhost:50070/dfshealth.jsp
Node的Job状态:http://localhost:8088/cluster
停止Hadoop运行
sbin/hadoop-daemon.shstop namenode
sbin/hadoop-daemon.shstop datanode
sbin/yarn-daemon.shstop resourcemanager
sbin/yarn-daemon.shstop nodemanager
sbin/mr-jobhistory-daemon.shstop historyserver
参考网址:
源文档 <http://raseshmori.wordpress.com/2012/09/23/install-hadoop-2-0-1-yarn-nextgen/>