Linux 上环境配置
1.1 修改主机名
#Ubuntu-16.04/CentOS-7(vi /ect/hostname)
HOSTNAME=master
#CentOS6.5(vi /etc/sysconfig/network)
NETWORKING=yes
HOSTNAME=master
1.2 主机名和IP的映射关系(vi /etc/hosts)
#Ubuntu CentOS 一样
192.168.1.110 master
1.3 关闭防火墙
Ubuntu
#查看防火墙状态
sudo ufw status
#关闭防火墙
sudo ufw disable
CentOS
#查看防火墙状态
service iptables status
#关闭防火墙
service iptables stop
#查看防火墙开机启动状态
chkconfig iptables --list
#关闭防火墙开机启动
chkconfig iptables off
#重启
reboot now
2.1 配置jdk和hadoop环境变量(/ect/profile)
JAVA_HOME=/usr/java/jdk1.8.0_111
HADOOP_HOME=/usr/hadoop-2.7.3
CLASSPATH=.$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
或者
#java_env
export JAVA_HOME=/usr/java/jdk1.8.0_111
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#hadoop_env
export HADOOP_HOME=/usr/hadoop-2.7.3
export PATH=${HADOOP_HOME}/bin:$PATH
刷新配置
source /ect/profile
2.2 配置hadoop(修改hadoop-2.7.3/etc/hadoop/)
(1) vi hadoop-env.sh
#25行
export JAVA_HOME=/usr/java/jdk1.8.0_111
export HADOOP_HOME=/usr/hadoop-2.7.3
export PATH=$PATH:/usr/hadoop-2.7.3/bin
(2)vi core-site.xml
向<configuration></configuration>中加入
<!-- HDFS的NameNode地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<!-- hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/hadoop-2.7.3/tmp</value>
</property>
(3)vi hdfs-site.xml
<!-- hdfs副本数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/hadoop-2.7.3/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/hadoop-2.7.3/tmp/dfs/data</value>
</property>
(4)vi mapred-site.xml (mv mapred-site.xml.template mapred-site.xml)
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
(5)vi yarn-site.xml
<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
2.3 格式化namenode
hdfs namenode -format (hadoop namenode -format)
2.4 启动hadoop
执行./sbin/start-all.sh
若Ubuntu下出现ssh:connet to host localhost port 22:Connection refused 时执行 sudo apt-get install openssh-server;
安装成功后再执行./sbin/start-all.sh; 该启动脚本是:先启动hdfs, 在启动yarn.
分开启动:
./sbin/start-dfs.sh
./sbin/start-yarn.sh
2.5 验证是否启动成功
使用 jps 命令查看
8449 NameNode
8931 SecondaryNameNode
10548 Jps
5210 ResourceManager
8653 DataNode
8786 NodeManager
http://192.168.1.110:50070 (hdfs管理界面)
http://192.168.1.110:8088 (yarn管理界面)
3.1 测试HDFS
上传:
hadoop fs -put /home/fasight/test.c hdfs://server1:9000/test
或:hdfs dfs -put /home/fasight/test.c /
上传完成后可通过浏览器:http://192.168.1.110:50070 下进入 Browse the file system 查看是否上传成功
下载:
hadoop fs -get hdfs://server1:9000/test /home
或:hdfs dfs -get /test /home
通过浏览器直接下载
注意:须在C:\Windows\System32\drivers\etc\hosts文件追加192.168.175.132 master 来达到进行映射;
否则通过浏览器直接下载会出现:找不到 master 的服务器 DNS 地址。
3.2 测试MR
通过hadoop-2.7.3/share/hadoop/mapreduce示例程序测试:
hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /test /wc_result
通过jar包中的wordcount类对hdfs上的test文件进行统计,最后将结果输出到hdfs下的wc_result中(可通过浏览器查看结果)
3.3 配置ssh免登陆
#进入到我的home目录
cd ~/.ssh
#生成ssh免登陆密钥
ssh-keygen -t rsa (四个回车)
执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免登陆的机器上
root@master:~/.ssh# cp id_rsa.pub authorized_keys
或
ssh-copy-id master(或localhost)
ssh-copy-id 192.168.1.111 (将master的公钥发送到111机器上,之后master就可以免登陆到111)