首页 文章 精选 留言 我的

精选列表

搜索[基础搭建],共10000篇文章
优秀的个人博客,低调大师

CentOS中nginx负载均衡和反向代理的搭建

1: 修改centos命令行启动(减少内存占用): vim /etc/inittab id:5:initdefault: --> 修改5为3 若要界面启动使用 startx 2:安装jdk 1)解压:jdk-7u55-linux-i586.tar.gz [root@localhost jdk]# tar -zxvf jdk-7u55-linux-i586.tar.gz 2)复制:[root@localhost jdk]# cp -rf jdk1.7.0_55/ /usr/local/jdk 授权:[root@localhost jdk]# cd /usr/local/jdk [root@localhost jdk]# chmod u+x jdk/ 3)配置环境;[root@localhost bin]# vim /etc/profile 最后面插入:export JAVA_HOME=/usr/local/jdk/jdk1.7.0_79 export PATH=$JAVA_HOME/bin:$PATH 4)刷新配置文件:source /etc/profile 验证:java javac 3:安装tomcat 1)解压:tar -zxvf 2)授权:chmod u+x/usr/local/tomcats/tomcat1/apache-tomcat-7.0.47/bin 3)启动:进入tomcat目录bin 目录后: ./startup.sh 4)开放端口:vim /etc/sysconfig/iptables 5)关闭防火墙:chkconfig iptables off 6)重启防火墙: service iptables restart 7)修改端口号:vim conf/server.xml 8)查看进程:ps aux | grep tomcat 4:安装nginx 1)安装环境: yum -y install gcc-c++ yum -y install pcre pcre-devel yum -y install zlib zlib-devel yum -y install openssl openssl-devel 2)解压:tar -zxvf nginx-1.8.0.tar.gz 3)创建安装目录:[root@localhost local]# mkdir -p nginx [root@localhost local]# cd nginx/ [root@localhost nginx]# pwd /usr/local/nginx 4)创建临时目录:var]# mkdir -p temp/nginx 5)进入目录:cd nginx-1.8.0/ 6)修改参数: ./configure \ --prefix=/usr/local/nginx \ --pid-path=/var/run/nginx/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --with-http_gzip_static_module \ --http-client-body-temp-path=/var/temp/nginx/client \ --http-proxy-temp-path=/var/temp/nginx/proxy \ --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \ --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \ --http-scgi-temp-path=/var/temp/nginx/scgi 7)编译安装: make make install 8)启动: cd /usr/local/nginx/sbin/ ./nginx 9)查看进程:ps aux | grep nginx 10)快速停止:./nginx -s stop 11)完整停止:./nginx -s quit 此方式停止步骤是待nginx进程处理任务完毕进行停止。推荐使用 12)重启: ./nginx -s quit ./nginx 13)重新加载配置文件: ./nginx -s reload 5:配置虚拟主机: 1、nginx支持的三种虚拟主机的配置: 基于ip的虚拟主机 基于域名的虚拟主机 基于端口的虚拟主机 2、nginx配置文件的结构: 每个service就是一个虚拟主机 ...... events{ ...... } http{ ....... server{ ...... } server{ ...... } } 3、基于ip的虚拟主机配置: 修改配置文件: vim /usr/local/nginx/nginx-1.8.0/conf/nginx.conf server{ listen 80; server_name 192.168.31.88; location / { root html; index index.html index.htm; } } 4、基于域名的虚拟主机配置: 修改配置文件:vim /usr/local/nginx/nginx-1.8.0/conf/nginx.conf server{ listen 80; server_name www.nginxdns1.com; location / { root html_dns1; index index.html index.htm; } } server{ listen 80; server_name www.nginxdns2.com; location / { root html_dns2; index index.html index.htm; } } 5、基于端口的虚拟主机配置: 修改配置文件:vim /usr/local/nginx/nginx-1.8.0/conf/nginx.conf 监听端口:netstat -an | grep 80 server{ listen 88; server_name 192.168.31.88; location / { root html_port1; index index.html index.htm; } } server{ listen 89; server_name 192.168.31.88; location / { root html_port2; index index.html index.htm; } } 6、nginx 反向代理: 修改hosts:# nginx反向代理环境测试 192.168.31.88 www.nginxproxy1.com 192.168.31.88 www.nginxproxy2.com 开启不同虚拟机中的两台tomcat:192.168.31.88:8080 和 192.168.31.89:8081 修改配置文件: #代理tomcat1服务器 upstream tomcat_server1{ server 192.168.31.89:8081; } #代理tomcat2服务器 upstream tomcat_server2{ server 192.168.31.88:8080; } #配置虚拟主机: server{ listen 80; server_name www.nginxproxy1.com; location / { #root html_port1; proxy_pass http://tomcat_server1; index index.html index.htm; } } server{ listen 80; server_name www.nginxproxy2.com; location / { #root html_port2; proxy_pass http://tomcat_server2; index index.html index.htm; } } 7、nginx 负载均衡: 修改hosts :# nginx负载均衡环境测试 192.168.31.88 www.nginxbalance.com 开启不同虚拟机中的两台tomcat:192.168.31.88:8080 和 192.168.31.89:8081 修改配置文件: #代理tomcat2服务器 upstream tomcat_server_pool{ server 192.168.31.88:8080 weight=1; server 192.168.31.89:8081 weight=1; } #配置虚拟主机: server{ listen 80; server_name www.nginxbalance.com; location / { #root html_port1; proxy_pass http://tomcat_server_pool; index index.html index.htm; } } hosts文件配置: 1:nginx基于域名环境测试 192.168.31.88 www.nginxdns1.com 192.168.31.88 www.nginxdns2.com 2:nginx反向代理环境测试 192.168.31.88 www.nginxproxy1.com 192.168.31.88 www.nginxproxy2.com 3:nginx负载均衡环境测试 192.168.31.88 www.nginxbalance.com

优秀的个人博客,低调大师

使用 Kafka 和 ELK 搭建测试日志系统(1)

本文仅供自己学习,不合适转载。 这是两篇文章的第一部分。 1. 安装 ELK 1.1 安装 ElasticSearch 在海航云上创建一个 Ubutu 16.4 虚机,2核4GB内存。 (1)执行以下命令,更新系统 sudo apt-get update -y sudo apt-get upgrade -y (2)安装 Java sudo add-apt-repository -y ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java8-installer -y (3)安装ES wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.2.deb sudo dpkg -i elasticsearch-5.2.2.deb 修改/etc/elasticsearch/elasticsearch.yml: 将network.host 修改为本机 ip 即 192.168.10.102 将http.port 修改为 9200 将cluster.name 修改为 elk-test 重启 ES并检查服务状态: root@elk:/home/ubuntu# service elasticsearch restart root@elk:/home/ubuntu# service elasticsearch status ● elasticsearch.service - Elasticsearch Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; disabled; vendor preset: enab Active: active (running) since Sat 2017-09-30 11:23:17 CST; 3s ago Docs: http://www.elastic.co Process: 3861 ExecStartPre=/usr/share/elasticsearch/bin/elasticsearch-systemd-pre-exec (code= Main PID: 3864 (java) Tasks: 15 Memory: 2.1G CPU: 4.511s 1.2 安装 Nginx 和 Logstash 创建另一台虚机,安装 Nginx 和 Logstash。 1.2.1 安装 Nginx apt-get install nginx Ubuntu安装之后的文件结构大致为: 所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下 程序文件在/usr/sbin/nginx 日志放在了/var/log/nginx中 并已经在/etc/init.d/下创建了启动脚本nginx 默认的虚拟主机的目录设置在了/var/www/nginx-default (有的版本 默认的虚拟主机的目录设置在了/var/www, 请参考/etc/nginx/sites-available里的配置) 启动并查看服务状态: root@elk:/home/ubuntu# /etc/init.d/nginx start [ ok ] Starting nginx (via systemctl): nginx.service. root@elk:/home/ubuntu# /etc/init.d/nginx status ● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2017-09-30 11:40:59 CST; 1min 8s ago Main PID: 4320 (nginx) CGroup: /system.slice/nginx.service ├─4320 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ├─4321 nginx: worker process └─4322 nginx: worker process Sep 30 11:40:59 elk systemd[1]: Starting A high performance web server and a reverse pro...r... Sep 30 11:40:59 elk systemd[1]: Started A high performance web server and a reverse prox...ver. Sep 30 11:42:06 elk systemd[1]: Started A high performance web server and a reverse prox...ver. Hint: Some lines were ellipsized, use -l to show in full. 为了测试起见,将端口修改为 88.修改文件/etc/nginx/sites-available/default,并重启 Nginx 服务: server { listen 88 default_server; listen [::]:88 default_server; 鉴于该服务器没有设置公网IP,在其路由器上设置端口转发规则,使得可以通过路由器的EIP的88端口访问到它上面的Nginx服务: 在浏览器上测试,Nginx 可用: 1.2.2 安装和配置 Logstash wget https://artifacts.elastic.co/downloads/logstash/logstash-5.2.2.tar.gz tar zxvf logstash-5.2.2.tar.gz ln -s logstash-5.2.2 logstash 创建文件 nginxlog2es.conf,内容如下。它会将 Nginx 的日志文件/var/log/nginx/access.log_json 中的日志发到 ES 服务器192.168.10.102:9200: input { file { path => "/var/log/nginx/access.log_json" codec => "json" } } filter { mutate { split => [ "upstreamtime", "," ] } mutate { convert => [ "upstreamtime", "float" ] } } output { stdout { codec => rubydebug } elasticsearch { hosts => ["192.168.10.102:9200"] index => "logstash-%{type}-%{+YYYY.MM.dd}" document_type => "%{type}" flush_size => 20000 idle_flush_time => 10 sniffing => true template_overwrite => true } } 修改 /etc/nginx/nginx.conf,添加: ## # Logging Settings ## log_format json '{"@timestamp":"$time_iso8601",' '"host":"$server_addr",' '"clientip":"$remote_addr",' '"size":$body_bytes_sent,' '"responsetime":$request_time,' '"upstreamtime":"$upstream_response_time",' '"upstreamhost":"$upstream_addr",' '"http_host":"$host",' '"url":"$uri",' '"xff":"$http_x_forwarded_for",' '"referer":"$http_referer",' '"agent":"$http_user_agent",' '"status":"$status"}'; access_log /var/log/nginx/access.log_json json; 重启 Nginx 服务,在浏览器上刷新页面,查看 Nginx 日志, {"@timestamp":"2017-09-30T12:44:19+08:00","host":"192.168.10.104","clientip":"140.206.84.10","size":0,"responsetime":0.000,"upstreamtime":"-","upstreamhost":"-","http_host":"120.132.124.103","url":"/index.nginx-debian.html","xff":"-","referer":"-","agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36","status":"304"} 启动logstash, nohup logstash/bin/logstash -f nginxlog2es.conf > /tmp/logstash.log 2>&1 & 刷新 Nginx 页面,能看到 logstash 收集到的 Nginx 日志: { "referer" => "-", "agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36", "http_host" => "120.132.124.103", "url" => "/index.nginx-debian.html", "path" => "/var/log/nginx/access.log_json", "upstreamhost" => "-", "@timestamp" => 2017-09-30T04:48:23.000Z, "size" => 0, "clientip" => "140.206.84.10", "host" => "192.168.10.104", "@version" => "1", "responsetime" => 0.0, "xff" => "-", "upstreamtime" => [ [0] 0.0 ], "status" => "304" } 1.3 安装 Kibana wget https://artifacts.elastic.co/downloads/kibana/kibana-5.2.2-linux-x86_64.tar.gz ln -s kibana-5.2.2-linux-x86_64 kibana 修改配置文件 kibana/config/kibana.yml, server.host: "192.168.10.102" elasticsearch.url: "http://192.168.10.102:9200" 启动 kibana, nohup kibana/bin/kibana > /tmp/kibana.log 2>&1 & 在浏览器里面输入http://120.132.124.103:5601/ 就可以打开 kibana 页面了。可以看到Nginx 的日志: 1.4 小结 从上面的步骤可以看出,ELK 的结构相对简单: Logstack 负责收集日志,并推送到 ES 中 ES 负责存储 Kibana 负责界面展示 ELK 的总体架构如下: 但是,这种架构有不少问题,其中问题之一是处理能力问题。bol.com 公司有如下的ELK架构演进路线: (1)初始架构(2013年) 问题是单实例的 logstash 有性能瓶颈。 (2)使用 redis 缓存以及多个 logstash 实例(2014年) 使用 redis 作为消息缓存,使用多实例 Logstash 增加处理性能。 参考链接: https://devops.profitbricks.com/tutorials/install-and-configure-apache-kafka-on-ubuntu-1604-1/ http://www.cnblogs.com/xiaoqi/p/elk-part1.html https://www.slideshare.net/TinLe1/elk-atlinked-in https://www.slideshare.net/renzotoma39/scaling-an-elk-stack-at-bolcom-39412550 https://www.elastic.co/blog/logstash-kafka-intro https://www.elastic.co/blog/just-enough-kafka-for-the-elastic-stack-part2 https://www.elastic.co/blog/just-enough-kafka-for-the-elastic-stack-part1 本文转自SammyLiu博客园博客,原文链接:http://www.cnblogs.com/sammyliu/p/7614209.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

ubversion版本控制企业架构搭建之双机热备

1、前言 笔者公司需要一台svn服务器,但不幸的是公司给了一台破旧的服务器(本地用的,其他服务都跑在阿里云上),笔者担心没过多久服务器就挂点,故而想做svn的双机热备。 2、实践部分 2.1、环境 svnSer: ipaddress=10.168.0.176 hostname=svnSer svn-slaveSer: ipaddress=10.168.0.179 hostname=svn-slaveSer 2.2、svnSer安装配置(Master) In svnSer: 请参阅如下文章安装配置 http://cmdschool.blog.51cto.com/2420395/1715856 并增加如下配置 In svnSer: 1)定义svn备份管理员的用户名和密码 vim修改/var/local/svn/conf/passwd 增加如下定义: 1 bkuser = bkpwd 2)定义svn备份管理员的组、组成员和目录的组权限: vim修改/var/local/svn/conf/authz 1 2 3 4 5 [ groups ] admin_rw = bkuser [/] @admin_rw = rw 3)重启服务 1 /etc/init .d /svnserve restart 2.3、svn-slaveSer的安装配置(Slave) 2.3.1、step1 基本环境配置 In svn-slaveSer: 1)yum安装 1 yum -y install subversion 2)定义库文件夹 1 svnadmin create /var/local/svn 3)启动并设置服务开机启动 1 2 /etc/init .d /svnserve start chkconfig svnserve on 4)设置防火墙 vim编辑/etc/sysconfig/iptables 加入如下内容: 1 -A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT 5)重启防火墙 1 /etc/init .d /iptables restart 2.3.2、step2 In svn-slaveSer: 1 2 3 4 cd /var/local/svn/hooks/ cp pre-revprop-change.tmpl pre-revprop-change chmod 744 pre-revprop-change ll pre-revprop-change vim编辑/var/local/svn/hooks/pre-revprop-change 修改最后一行 修改前: 1 exit 1 修改后: 1 exit 0 注:允许修改注释 2.3.3、step3 获取Master的配置文件 In svn-slaveSer: 1)复制配置文件 1 scp 10.168.0.176: /var/local/svn/conf/ * /var/local/svn/conf/ 2)重启服务 1 /etc/init .d /svnserve restart 2.3.4、step4 初始化同步信息 In svn-slaveSer 1 svnsync init file : ///var/local/svn/ svn: //10 .168.0.176 /var/local/svn 以上步骤会询问你svn的账号和密码,输入前面定义的用户名和密码: 用户名:bkuser 密码:bkpwd 2.3.5、step5 同步测试 In svn-slaveSer: 1 svnsync sync file : ///var/local/svn/ 以上步骤会询问你svn的账号和密码,输入前面定义的用户名和密码: 用户名:bkuser 密码:bkpwd 成功后的同步结果: 2.3.5、step5 设置用户提交自动同步 In svnSer: 1 2 3 4 cd /var/local/svn/hooks/ cp post-commit.tmpl post-commit chmod 700 post-commit ll post-commit vim编辑/var/local/svn/hooks/post-commit 末尾删除如下内容: 1 2 3 REPOS= "$1" REV= "$2" mailer.py commit "$REPOS" "$REV" /path/to/mailer .conf 增加如下内容: 1 svnsync sync --non-interactive svn: //10 .168.0.179 /var/local/svn --username bkuser --password bkpwd 以上语句建议先执行一次测试可用再写入post-commit 2.3.6、step6 检查同步情况: 1)桌面新建两个文件夹,pojectA与pojectB 2)分别做如下检出: 注意:以上检出的IP地址分别对应svnSer与svn-slaveSer 3)以上都单击【OK】后检出完毕,记录当前的版本号。 4)更新projetA文件夹的内容并做提交操作并记录提交后的版本号。 5)projetB做更新操作,并查看更新后的版本号是否是刚由projectA提交的版本号。 本文转自 tanzhenchao 51CTO博客,原文链接:http://blog.51cto.com/cmdschool/1716033,如需转载请自行联系原作者

优秀的个人博客,低调大师

在Ubuntu系统上搭建Hadoop 2.x(2.6.2)

前提条件 (1)Ubuntu操作系统(本教程使用的是Ubuntu 14.04) (2)安装JDK $ sudo apt-get install openjdk-7-jdk $ java -version java version "1.7.0_25" OpenJDK Runtime Environment (IcedTea 2.3.12) (7u25-2.3.12-4ubuntu3) OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode) $ cd /usr/lib/jvm $ ln -s java-7-openjdk-amd64 jdk (3)安装ssh $ sudo apt-get install openssh-server 添加Hadoop用户组和用户(可选) $ sudo addgroup hadoop $ sudo adduser --ingroup hadoop hduser $ sudo adduser hduser sudo 创建用户之后,使用hduser重新登陆ubuntu 安装SSH证书 $ ssh-keygen -t rsa -P '' ... Your identification has been saved in /home/hduser/.ssh/id_rsa. Your public key has been saved in /home/hduser/.ssh/id_rsa.pub. ... $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ ssh localhost 下载Hadoop 2.6.2 $ cd ~ $ wget http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.6.2/hadoop-2.6.2.tar.gz $ sudo tar vxzf hadoop-2.6.2.tar.gz -C /home/hduser $ cd /home/hduser $ sudo mv hadoop-2.6.2 hadoop $ sudo chown -R hduser:hadoop hadoop 配置Hadoop环境变量 (1)修改系统环境变量 $cd ~ $vi .bashrc 把下边的代码复制到vi打开的.bashrc文件末尾,如果JAVA_HOME已经配置过,那就不需要再配置了。 #Hadoop variables #begin of paste export JAVA_HOME=/usr/lib/jvm/jdk/ export HADOOP_INSTALL=/home/hduser/hadoop export PATH=$PATH:$HADOOP_INSTALL/bin export PATH=$PATH:$HADOOP_INSTALL/sbin export HADOOP_MAPRED_HOME=$HADOOP_INSTALL export HADOOP_COMMON_HOME=$HADOOP_INSTALL export HADOOP_HDFS_HOME=$HADOOP_INSTALL export YARN_HOME=$HADOOP_INSTALL #end of paste (2)修改hadoop环境变量 $ cd /home/hduser/hadoop/etc/hadoop $ vi hadoop-env.sh #必改的就一个,那就是修改JAVA_HOME,其他的可以不修改 export JAVA_HOME=/usr/lib/jvm/jdk/ 配置完成后,重新登陆Ubuntu(把terminal关掉,再打开) 输入下边的命令检查是否安装成功 $ hadoop version Hadoop 2.6.2 ... ... ... 配置Hadoop (1)core-site.xml $ cd /home/hduser/hadoop/etc/hadoop $ vi core-site.xml #把下边的代码复制到<configuration>和</configuration>中间 <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> (2)yarn-site.xml $ vi yarn-site.xml #把下边的代码复制到<configuration>和</configuration>中间 <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> (3)mapred-site.xml $ mv mapred-site.xml.template mapred-site.xml $ vi mapred-site.xml #把下边的代码复制到<configuration>和</configuration>中间 <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> (4)hdfs-site.xml $ cd ~ $ mkdir -p mydata/hdfs/namenode $ mkdir -p mydata/hdfs/datanode $ cd /home/hduser/hadoop/etc/hadoop $ vi hdfs-site.xml #把下边的代码复制到<configuration>和</configuration>中间 <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/hduser/mydata/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/hduser/mydata/hdfs/datanode</value> </property> 格式化一个新的分布式文件系统: $ cd ~ $ hdfs namenode -format 启动Hadoop服务 $ start-dfs.sh .... $ start-yarn.sh .... $ jps #如果配置成功的话,你会看到类似下边的信息 2583 DataNode 2970 ResourceManager 3461 Jps 3177 NodeManager 2361 NameNode 2840 SecondaryNameNode 运行Hadoop示例 hduser@ubuntu: cd /home/dhuser/hadoop hduser@ubuntu:/home/dhuser/hadoop$ hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.2.jar pi 2 5 #然后你会看到类似下边的信息 Number of Maps = 2 Samples per Map = 5 15/10/21 18:41:03 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Wrote input for Map #0 Wrote input for Map #1 Starting Job 15/10/21 18:41:04 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032 15/10/21 18:41:04 INFO input.FileInputFormat: Total input paths to process : 2 15/10/21 18:41:04 INFO mapreduce.JobSubmitter: number of splits:2 15/10/21 18:41:04 INFO Configuration.deprecation: user.name is deprecated. Instead, use mapreduce.job.user.name ... 本文转自ZH奶酪博客园博客,原文链接:http://www.cnblogs.com/CheeseZH/p/5051135.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

菜鸟也学hadoop(1)_搭建单节点的hadoop

其实跟官方的教程一样 只是 我想写下来 避免自己搞忘记了,,,,好记性不如烂笔头 首先确认自己是否安装了 java, ssh 以及 rsync 没有装的直接就 apt-get install 了嘛,,,java的不一定要用sun的 OPEN的也好 主要方便。。。。不是重点 看着搞啦 然后 就是ssh免密码登录 这点 主要是因为 hadoop 需要通过ssh来启动salve列表中的各个主机守护进程,因为 分布式集群管理的 所以不管你是用的单机伪分布 或是分布 它都不分管理模式的,因此这一步必须搞 也简单 就两道命令 /opt/hadoop# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #后面学到的新的做法 记录一下 On source host: cd ~ mkdir . ssh chmod 700 . ssh cd . ssh ssh -keygen -t rsa -b 1024 cat id_rsa.pub copy contents of id_rsa.pub On destination host: cd ~ mkdir . ssh chmod 700 . ssh cd . ssh vi authorized_keys paste contents of id_rsa.pub from evnoltp9 into authorized keys :wq! #chmod 600 authorized_keys chmod og-rxw $HOME/. ssh $HOME/. ssh /authorized_keys 另外要注意请务必要将服务器上 ~/.ssh权限设置为700 ~/.ssh/authorized_keys的权限设置为600 试一试 是否可以免密码登录 ssh localhost 这样就完成了第一步 echo $JAVA_HOME 看看jdk安装在哪里 然后copy一下路径 一会用上 vim ./conf/hadoop-env.sh 当中大概第九条 把那里的JAVA_HOME 指定一下 export JAVA_HOME=/usr/lib/jdk/jdk1.7.0_07 ##保存 配置 hadoop核心配置文件 vim ./conf/core-site.xml <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> ##hdfs入口 </property> </configuration> 配置 hadoop 的HDFS配置文件 vim ./conf/hdfs-site.xml <configuration> <property> <name>dfs.replication</name> <value>1</value> ##文件副本数量 但节点 一个就够了 </property> </configuration> 配置 hadoop 的 MapReduce配置文件 vim ./conf/mapred-site.xml <configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration> 这样 一个单节点的Hadoop就配置成功了 剩下的就是格式下文件系统 然后 启动就OK 了 首先是格式文件系统 hadoop namenode -format 接下来启动 start-all.sh 当然 你可以 单单启动 HDFS(start-dfs.sh) 也可以单单启动 MapReduce (start-mapred.sh) 验证是否成功 打开浏览器 localhost:50030 ##MapReduce WEB管理界面 localhost:50070 ##HDFS WEB管理界面 测试上传文件到 hdfs文件系统当中 hadoop fs -put 文件名 hdfs://localhost:9000/指定一个文件夹 或者 就放到根目录 刷新下 hdfs管理界面 就能看到那个文件了 测试 MapReduce 例子 用的 hadoop里面自带的例子 计算shell脚本当中的单词量 首先先上传 要计算的sh文件 hadoop fs -mkdir /input ##创建一个input文件夹 hadoop fs -put *.sh /input/ ##上传当前文件夹下所有的*.sh文件 到 hdfs 的 input 文件夹下 hadoop jar hadoop-examples-i.0.3.jar wordcount /input /output 开始计算 过程省略 仅仅使用于测试的 -----完成后 可以在 localhost:50070 文件管理系统当中发现一个output文件夹 点进入 在part-r-00000 当中记录了结果 前面是单词 后面是出现的次数 在localhost:50030 可以看到running jobs(这里显示 运行当中的) completed jobs (这里显示作业运行的统计)点进去可以看到一些 更详细的信息,自己研究啦 由于在 UBUNTU当中截图麻烦 我就不发图了 按照步骤一步一步来 亲测OK 我用的 UBUNTU 12.04 注:后面我看了书 hadoop实战 机械工业出版社的那本 说是不能用openJava 但是我原来看别人录制视频 说是可以, 我呢是用的 oracle的 大家如果用open的装不上 就用oracle的吧 没有实践过 本文转自 拖鞋崽 51CTO博客,原文链接:http://blog.51cto.com/1992mrwang/1011844

优秀的个人博客,低调大师

OpenStack部署之前,如何搭建一个测试环境

一、虚拟机安装 1、根据规划创建虚拟机 2、安装ubuntu14.04 二、网络配置 1、根据规划,在vmware workstation中创建好对应的虚拟网络 2、配置虚拟机的IP地址 3、在每台虚拟机的hosts文件中增加对应的hostname和IP地址对应关系 每个节点除了 IP 地址之外,还必须能够解析其他节点的名称。例如,controller1这个名称必须解析为 10.0.0.11,即控制节点上的管理网络接口的 IP 地址。 4、用于计算节点的虚拟机开启CPU VT选项 5、用于计算节点的虚拟机安装KVM 6、块存储节点对象存储节点各有2块100G的磁盘,分别配置为LVM 本文转自 TtrToby 51CTO博客,原文链接:http://blog.51cto.com/freshair/1883300

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册